1. 程式人生 > >dpkg安裝軟體 與Linux軟體包依賴介紹

dpkg安裝軟體 與Linux軟體包依賴介紹

linux軟體包依賴關係:是一個軟體的安裝,需要安裝另外一個軟體進行支援的一種現象。在windows也存在,但因為很多基礎dll都被windows集成了,所以並不明顯。但在linux體系中,因為多個開源軟體開發者並不成為一個體系,因而依賴關係向來比較複雜,解決依賴關係也是讓很多人比較頭疼的問題。
linux中,採用apt或者yum等常常能自動解決依賴關係,但往往我們也需要一些軟體源裡不存在的軟體進行安裝。LD源自ubuntu,而ubuntu又基於debian,故LD中,這些無法用apt來安裝的軟體我們一般用dpkg來安裝,dpkg可以提示是否符合依賴關係,但不會自動解決。“dpkg ”是“Debian Package ”的簡寫。為 “Debian” 專門開發的套件管理系統,方便軟體的安裝、更新及移除。

安裝這類軟體,首先我們先看是否存在適用於ubuntu 32位的deb包(比如virtualbox,我們不想裝ose版,就可以去http://www.virtualbox.org/下載ubuntu的32位版,注意副檔名,檔名應為*.deb)。
下載後,用dpkg進行安裝:

dpkg -i package.deb ###安裝包
dpkg -r package ###刪除包
dpkg -P package ###刪除包(包括配置檔案)
dpkg -L package ###列出與該包關聯的檔案
dpkg -l package ###顯示該包的版本
dpkg --unpack package.deb ###解開 deb 包的內容
dpkg -S keyword ###搜尋所屬的包內容
dpkg -l ###列出當前已安裝的包
dpkg -c package.deb ###列出 deb 包的內容
dpkg --configure package ###配置包
dpkg-reconfigure package   ###重新配製一個已經安裝的包裹
dpkg-reconfigure --frontend=dialog debconf ###如果安裝時選錯了配置資訊,這裡可以改回來.
dpkg --force-all --purge ###有些軟體很難解除安裝,而且還阻止了別的軟體的應用,就可以用這個,不過有點冒險.

更多選項可通過 dpkg -h 查詢,有些指令需要超級使用者許可權才能執行,故執行時,一般需 在dpkg 前加sudo (例:sudo dpkg -i package.deb)。

dpkg配置及快取資訊:系統中所有的包資訊都在/var/lib/dpkg下.其中/var/lib/dpkg/info目錄中儲存了各個軟體包的資訊及管理檔案. 提供這些資訊僅供瞭解,一般不需要更改。

每個檔案的作用如下:
".conffiles" 檔案記錄軟體包的配置列表.
".list" 檔案記錄了軟體包的檔案列表,使用者可在檔案當中找到軟體包檔案的具體安裝位置.
".md5sums" 檔案記錄了md5資訊,用來進行包的驗證的.
".config" 檔案是軟體包的安裝配置指令碼.
".postinst" 指令碼是完成Debian包解開之後的配置工作,通常用來執行所安裝軟體包相關的命令和服務的重新啟動.
".preinst" 指令碼在Debain解包之前執行,主要作用是是停止作用於即將升級的軟體包服務直到軟體包安裝或和升級完成.
".prerm" 指令碼負責停止與軟體包關聯的daemon服務,在刪除軟體包關聯檔案之前執行.
".postrm" 指令碼負責修改軟體包連結或檔案關聯,或刪除由它建立的檔案.

/var/lib/dpkg/available是軟體包的描述資訊.
包括當前系統中所有使用的Debian安裝源中所有的軟體包,還包括當前系統中已經安裝和未安裝的軟體包.