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。