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。