前言
本篇包含該書的第三章部分內容,主要是介紹Debian/Ubuntu系的套件管理系統: apt及dpkg。
套件管理一般分為兩種:
1. 將程式碼放上網路,並讓使用者下載後編譯使用。書中舉例Gentoo
2. 編譯好二進位檔(又稱binary)並放上網路,讓使用者下載後直接用。案例是apt及dpkg。
dpkg是透過.deb檔案將套件安裝至系統上的,apt則是將dpkg再包一層的套件管理系統。
透過不同管理套件系統安裝的套件無法互通,若透過.deb裝的套件/軟體請透過dpkg管理。反之亦然。
apt
指令 | 用途 |
apt update | 為避免伺服器壓力過大,apt會在電腦中 儲存一份資料源的目錄,裡頭紀載著未安裝的套件。 此指令可以手動將伺服器上套件名單同步至電腦中。 |
apt install {PACKAGE_NAME} | 安裝指定套件。 |
apt search {KEYWORD} | 搜尋套件。值得一提的是KEYWORD可以是regex,例如 ^git$。 |
apt list (--upgrade) | 列出套件。--upgrade會列出可以升級的套件。 |
apt autoremove | 升級全部可升級的套件。 |
api remove {PACKAGE_NAME} | 移除指定套件。 |
dpkg
目的是讓開發者可以將一個版本的套件包裝成一個.deb檔案,讓使用者可以選擇使用體驗版或是已經不維護的版本。
指令 |
用途 |
dpkg -I(--info) {FILE_NAME} | 印出該套件的基本資訊(像是meta data), 其中包括:作者、套件名稱、功能......等等。 |
dpkg -c(--content) {FILE_NAME} | 印出該檔案的檔案內容。 |
dpkg -i(--install) {FILE_NAME} | 安裝該檔案中的套件。 |
dpkg -l(--listfile) {PACKAGE_NAME} | 印出該套件的檔案內容(同上述-c)。 |
dpkg -L(--list) {PACKAGE_NAME} | 印出(搜尋)目前擁有的套件。PACKAGE_NAME可以為regex |
dpkg -r(--remove) {PACKAGE_NAME} | 移除指定套件。 |
gdebi {FILE_NAME} | 會連同相依套件一起安裝的-i。 |
後記
平常只會用到apt install,趁這個機會把apt跟dpkg相關的指令看過,想必日後用得上。