dpkg — Debian 套件管理底層工具
Debian 底層套件管理,用於安裝 .deb 檔案與查詢已安裝套件。
語法
dpkg [選項] 動作
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-i, --install |
安裝 .deb 套件檔案 | sudo dpkg -i package.deb |
-r, --remove |
移除套件(保留設定檔) | sudo dpkg -r nginx |
-P, --purge |
完整移除套件及設定檔 | sudo dpkg -P nginx |
-l [樣式] |
列出所有已安裝的套件(可加篩選樣式) | dpkg -l "nginx*" |
-L 套件名 |
列出套件安裝的所有檔案 | dpkg -L nginx |
-S 檔案路徑 |
查詢某個檔案屬於哪個套件 | dpkg -S /usr/bin/grep |
-s 套件名 |
顯示套件的詳細狀態資訊 | dpkg -s nginx |
--get-selections |
列出所有套件及其安裝狀態 | dpkg --get-selections |
--configure -a |
修復設定失敗的套件 | sudo dpkg --configure -a |
使用範例
範例 1:安裝 .deb 套件
安裝從廠商網站下載的 .deb 套件(若有依賴問題,再執行 sudo apt -f install)。
$ sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt -f install # 修復依賴
Selecting previously unselected package google-chrome-stable.
Setting up google-chrome-stable (124.0.6367.78-1) ...
範例 2:查詢哪個套件提供了某個指令
找出 /usr/bin/grep 是由哪個套件安裝的。
$ dpkg -S /usr/bin/grep
grep: /usr/bin/grep
範例 3:列出套件安裝的所有檔案
查看 curl 套件安裝了哪些檔案到系統中。
$ dpkg -L curl
/usr/bin/curl
/usr/share/doc/curl
/usr/share/man/man1/curl.1.gz
範例 4:確認套件是否已安裝
查看套件的安裝狀態(ii=已安裝,un=未安裝)。
$ dpkg -l nginx
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst
+++-===================-==============-============================
ii nginx 1.18.0-6ubun2 amd64 small, powerful, scalable web/proxy server
常見錯誤與排錯
dpkg: dependency problems prevent configuration of package
- 原因
- 安裝的 .deb 需要的依賴套件未安裝。
- 解法
- 執行 sudo apt -f install 自動解決依賴問題。