Linux軟件安裝管理之——dpkg與apt-*詳解

【Linux軟件安裝管理系列】— — 傳送門:

— —《Linux軟件安裝管理之——源碼安裝詳解

— —《Linux軟件安裝管理之——RPM與YUM詳解

— —《Linux軟件安裝管理之——dpkg與apt-*詳解》

一、序言

? ? ? ? 上一篇文章《Linux軟件安裝管理之——源碼安裝詳解》詳細介紹了Linux平臺下的源碼包安裝原理,雖然使用源代碼進行軟件編譯可以具有定制化的設置,但對于Linux distribution的發行商來說,則有軟件管理不晚的問題,畢竟不是每個人都會進行源代碼編譯的。這個問題將會嚴重的影響linux平臺上軟件的發行與推廣。

? ? ? ? 為了解決上述的問題,廠商先在他們的系統上面編譯好了我們用戶所需要的軟件,然后將這個編譯好并可執行的軟件直接發布給用戶安裝。不同的 Linux 發行版使用不同的打包系統,一般而言,大多數發行版分別屬于兩大包管理技術陣營: Debian 的”.deb”,和 Red Hat的”.rpm”。也有一些重要的例外,比方說 Gentoo, Slackware,和 Foresight,但大多數會使用這兩個基本系統中的一個。

? ? ? ? 這里將要介紹的是Debian系列發行版的dpkg與apt-*的詳細使用方法,如需要了解Red Hat系列發行版的包管理系統可查看我的另一篇文章:《Linux軟件安裝管理之——RPM與YUM詳解》。

? ? ? ? 注:本人系統版本【Ubuntu 12.04 LTS】


二、dpkg

1、簡介

? ? ? ? dpkg - package manager for Debian ?(debian系統的包管理工具)。

? ? ? ? dpkg is a tool to install, build, remove and manage Debian packages,dpkg是Debian的一個底層包管理工具,主要用于對已下載到本地和已安裝的軟件包進行管理。

? ? ? ? dpkg這個機制最早由Debian Linux社區所開發出來的,通過dpkg的機制,Debian提供的軟件就能夠簡單的安裝起來,同時能提供安裝后的軟件信息,實在非常不錯。只要派生于Debian的其它Linux distributions大多使用dpkg這個機制來管理,包括B2D,Ubuntu等。


2、deb軟件包名規則

格式為:Package_Version-Build_Architecture.deb

如:nano_1.3.10-2_i386.deb

* 軟件包名稱(Package Name): nano

* 版本(Version Number):1.3.10

* 修訂號(Build Number):2

* 平臺(Architecture):i386


3、dpkg軟件包相關文件介紹

/etc/dpkg/dpkg.cfg? dpkg包管理軟件的配置文件【Configuration file with default options】

/var/log/dpkg.log? dpkg包管理軟件的日志文件【Default log file (see /etc/dpkg/dpkg.cfg(5) and option --log)】

/var/lib/dpkg/available? 存放系統所有安裝過的軟件包信息【List of available packages.】

/var/lib/dpkg/status ? 存放系統現在所有安裝軟件的狀態信息

/var/lib/dpkg/info ? 記安裝軟件包控制目錄的控制信息文件


4、dpkg數據庫

? ? ? ? dpkg 使用文本文件作為數據庫來維護系統中軟件,包括文件清單, 依賴關系, 軟件狀態, 等等詳細的內容,通常在 /var/lib/dpkg 目錄下。 通常在 status 文件中存儲軟件狀態和控制信息。 在 info/ 目錄下備份控制文件, 并在其下的 .list 文件中記錄安裝文件清單, 其下的 .mdasums 保存文件的 MD5 編碼。

例:查詢dpkg數據庫(顯示所有已安裝的Deb包)

dpkg -l

? ? ? ? 如上圖,每條記錄對應一個軟件包,注意每條記錄的第一、二、三個字符,這就是軟件包的狀態標識,后邊依此是軟件包名稱、版本號和簡單描述。

還有 77% 的精彩內容
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。