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