前往
大廳
主題

你終究要學會Linux(二) : 套件管理:apt & dpkg

新手方 | 2022-07-06 21:41:08 | 巴幣 12 | 人氣 1297

前言


本篇包含該書的第三章部分內容,主要是介紹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相關的指令看過,想必日後用得上。

創作回應

更多創作