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。