Ubuntu 方便宜用,最值得讓人稱道的便是其安裝軟件的方式, 一條命令: sudo apt-get install xxx 就幾乎能幫你搞定所有的軟件安裝難題。但是有時你可能有這樣的需求,查看某個軟件包是否安裝、安裝在哪..., 那我們就來介紹一下 Ubuntu 的軟件包管理方式。
一、Ubuntu 采用 Debian 的軟件包管理器 dpkg 來管理軟件包, 類似 RPM. 系統中所有 packages 的信息都在 /var/lib/dpkg/
目錄下, 其子目錄 /var/lib/dpkg/info 用于保存各個軟件包的配置文件列表:
(1).conffiles 記錄了軟件包的配置文件列表
(2).list 保存軟件包中的文件列表, 用戶可以從 .list 的信息中找到軟件包中文件的具體安裝位置.
(3).md5sums 記錄了軟件包的md5信息, 這個信息是用來進行包驗證的.
(4).prerm 腳本在 Debian 包解包之前運行, 主要作用是停止作用于即將升級的軟件包的服務, 直到軟件包安裝或升級完成.
(5).postinst 腳本是完成 Debian 包解開之后的配置工作, 通常用于執行所安裝軟件包相關命令和服務重新啟動.
/var/lib/dpkg/available 文件的內容是軟件包的描述信息, 該軟件包括當前系統所使用的 Debian 安裝源中的所有軟件包,
其中包括當前系統中已安裝的和未安裝的軟件包.
/var/cache/apt/archives 目錄是在用 apt-get install 安裝軟件時,軟件包的臨時存放路徑
/etc/apt/sources.list 存放的是軟件源站點, 當你執行 sudo apt-get install xxx 時,Ubuntu 就去這些站點下載軟件包到本地并執行安裝
二、相關命令使用示例:
(1)查看某軟件包的安裝內容
dpkg -L xxx
(2)查找軟件庫中的軟件包
apt-cache search 正則表達式
(3)顯示系統安裝包的統計信息
apt-cache stats
(4)顯示系統全部可用軟件包的名稱
apt-cache pkgnames
(5)顯示某軟件包的詳細信息
apt-cache show xxx
(6)查找某文件屬于哪個包
apt-file search xxx
(7)查看已經安裝了哪些軟件包
dpkg -l
(8)查詢某軟件依賴哪些軟件包
apt-cache depends xxx
(9)查詢某軟件被哪些軟件包依賴
apt-cache rdepends xxx
(10)增加一個光盤源
sudo apt-cdrom add
注: 顧名思義, 就是安裝更新軟件包時讓其優先從Ubuntu 光盤上找(如果你不能上網安裝/更新, 但有 Ubuntu 的 DVD ISO, 這會對你非常有用)
(11)系統升級
sudo apt-get update
(12)清除所有已刪除軟件包的殘馀配置文件
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
(13)編譯時缺少h文件的自動處理
sudo auto-apt run ./configure
(14)查看安裝軟件時下載軟件包的臨時存放目錄
ls /var/cache/apt/archives
(15)備份當前系統安裝的所有軟件包的列表
dpkg --get-selections | grep -v deinstall > ~/somefile
(16)從上面備份的安裝包的列表文件恢復所有包
dpkg --set-selections < ~/somefile
sudo dselect
(17)清理舊版本的軟件緩存
sudo apt-get autoclean
(18)清理所有軟件緩存
sudo apt-get clean
(19)刪除系統不再使用的孤立軟件
sudo apt-get autoremove
(20)查看軟件包在服務器上面的地址
apt-get -qq --print-uris install ssh | cut -d\' -f2