Debian軟件包常用管理命令整理
- 2020 年 1 月 27 日
- 筆記
在Debian及其衍生的系統中,我們需要經常使用的軟件包管理命令,對系統進行管理,以便系統達到預期的狀態。Debian系統中,常用的軟件包命令有 apt、apt-get、dpkg、apt-cache等,這裡我們着重列舉常見的一些用法。
軟件包查詢(不需要sudo權限)
$ apt-cache search pkg_keyword #列出匹配關鍵字的軟件包 $ apt search pkg_keyword #列出匹配關鍵字的軟件包,包括了版本信息 $ apt list pkgname #查找該軟件包,會顯示版本信息 $ apt-cache show pkgname #查詢軟件包詳細信息 $ apt show pkgname #查詢軟件包詳細信息 $ apt-cache depends pkgname #查詢軟件包依賴關係 $ apt-cache rdepends pkgname #查詢被哪些軟件包依賴 $ apt-cache showpkg pkgname #同上 $ apt-cache policy pkgname #查詢軟件包的安裝狀態和版本 $ apt-cache stats #查看軟件庫的統計信息
軟件包安裝
$ sudo apt-get install pkgname $ sudo apt install pkgname $ sudo apt install -f #自動修復依賴 $ sudo apt-get install -f
在安裝軟件包之前,我們一般會執行 apt-get update,更新 apt-get 緩存中的軟件包信息,獲取最新軟件包列表。軟件的安裝源,是由 /etc/apt/sources.list 和 /etc/apt/sources.list.d/ 目錄下的 .list 文件定義的。
$ sudo apt-get upgrade #更新系統所有已安裝軟件包,只更新包會忽略依賴關係 $ sudo apt upgrade $ sudo apt-get upgrade -u #-u 列出可升級軟件列表 $ sudo apt-get upgrade -s #模擬升級 $ sudo apt-get dist-upgrade #根據依賴關係更新系統所有已安裝軟件包 $ sudo apt-get --reinstall install pkgname #只升級指定的軟件包 $ sudo apt-get source pkgname #只下載源碼包 $ sudo apt-get check #檢查破損的依賴關係 $ sudo apt-get autoclean #自動清楚apt-get緩存
軟件包卸載
$ sudo apt-get remove pkgname #刪除已安裝的軟件包(保留配置文件) $ sudo apt-get purge pkgname #卸載軟件,同時刪除配置文件 $ sudo apt-get autoremove pkgname #徹底自動卸載軟件,刪除該軟件包及所依賴的,以及不再使用和未使用的軟件包
在清理本地緩存時,我們會用到 apt 的 clean 命令。值得一提的是,apt-get autoclean 和 apt-get clean 是略微有區別的。
APT的底層包管理器是dpkg, dpkg 安裝軟件包時, 會將 *.deb 放在 /var/cache/apt/archives 中。apt-get autoclean 只會刪除 /var/cache/apt/archives 已經過期的deb。使用 apt-get clean 會將 /var/cache/apt/archives 的 所有 deb 刪掉。
dpkg工具管理deb格式軟件包
$ dpkg -l #列出所有安裝的deb軟件包 $ dpkg -l|grep nginx #查詢nginx是否已安裝 $ dpkg -s zip #查看軟件包zip的狀態和詳細信息 $ dpkg -S openssh-server #查看軟件包openssh-server包含的所有文件 $ dpkg -S /path/to/file #查看某文件對應的軟件包名 $ sudo dpkg -i pkgname.deb #安裝.deb軟件包,需要自己解決依賴關係 $ sudo dpkg -r pkgname #卸載deb格式的軟件包(保留配置文件),需要自己解決依賴關係 $ sudo dpkg -P pkgname #卸載deb格式的軟件包(不保留配置文件),需要自己解決依賴關係 $ sudo dpkg -P package-name #清除軟件包的所有文件(removes everything, including conffiles)
使用PPA源安裝軟件包
所有的PPA都寄存在launchpad.net網站上,該網站由Canonical公司架設。
ppa:user/ppa-name #ppa源語法格式
sudo add-apt-repository ppa:user/ppa-name #添加ppa源
sudo add-apt-repository -r ppa:user/ppa-name #刪除ppa源
注意,任何人都可以上傳軟件包到ppa,所有盡量避免使用ppa,如果必須使用,應選用可以信任的,有固定團隊維護的ppa。