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 Regex
(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