Linux 軟體安裝方式依發行版族群分為三大體系,各有優缺點與適用場景。理解其運作機制,能選擇最適合的部署策略。
1. 原始碼編譯安裝 (Source Compile) — 最基礎、最彈性
./configure [選項] # 檢查環境、生成 Makefile,常用 --prefix=/usr/local/軟體名
make # 編譯原始碼
make install # 安裝到系統 (需 root)
- 檔案副檔名:
.tar.gz, .tar.bz2, .tar.xz (原始碼套件)。
- 優點:可自訂編譯參數、最佳化針對 CPU 指令集、安裝任意版本、無相依性地獄 (自行解決)。
- 缺點:需安裝編譯工具鏈 (gcc, make, autotools)、編譯耗時、手動處理相依套件、升級/移除需保留原始碼目錄或手動追蹤檔案。
- 適用:無預編譯套件、需客製化功能、嵌入式/高效能優化場景。
2. RPM 套件管理 (Red Hat 族群) — 預編譯二進制套件
- 全名:Red Hat Package Manager。
- 檔案副檔名:
.rpm (二進制套件)、.src.rpm (原始碼套件,SRPM)。
- 核心指令:
rpm -i 安裝, -e 移除, -U 升級, -q 查詢, -V 驗證。
- 特點:套件內含檔案清單、相依性資訊、安裝/移除腳本;資料庫位於
/var/lib/rpm。
- 痛點:相依性地獄 ——
rpm -i 遇缺少相依套件會失敗,需手動先裝相依套件。
3. YUM 高階套件管理器 (解決 RPM 相依性) — 自動解析相依
- 原理:以儲存庫為基礎,自動下載並安裝目標套件及所有相依套件。
- 核心指令:
yum install/remove/update/search/info 套件名。
- 儲存庫設定:
/etc/yum.repos.d/*.repo 定義遠端/本地儲存庫來源。
- 本質:前端工具,後端仍呼叫
rpm 執行實際安裝。
4. Debian/Ubuntu 族群:DPKG + APT
| 層級 | 工具 | 檔案副檔名 | 核心指令 |
| 底層 | dpkg | .deb | dpkg -i 安裝, -r 移除, -l 列出 |
| 高層 | APT (apt-get / apt) | .deb (從儲存庫) | apt install/remove/update/upgrade/search/show |
- APT 自動解析相依性,從設定的儲存庫 (
/etc/apt/sources.list, /etc/apt/sources.list.d/) 下載安裝。
apt 為較新的高層介面,輸出更友善,建議優先使用。
族群對照表
| 發行版族群 | 代表發行版 | 底層套件 | 高層管理器 |
| Red Hat 系 | RHEL, CentOS, Fedora, Rocky, AlmaLinux | RPM (.rpm) | YUM / DNF (Fedora 22+) |
| Debian 系 | Debian, Ubuntu, Linux Mint, Kali | DPKG (.deb) | APT (apt-get / apt) |
| SUSE 系 | openSUSE, SLES | RPM (.rpm) | Zypper |
| Arch 系 | Arch, Manjaro | pacman (.pkg.tar.zst) | pacman (整合底層/高層) |
| Gentoo 系 | Gentoo | 原始碼 (ebuild) | Portage (emerge) |
選擇建議
- **生產環境穩定優先**:使用發行版官方儲存庫的高層管理器 (yum/dnf/apt/zypper/pacman)。
- **需要最新版/特定版本**:啟用第三方儲存庫 (EPEL, PPA, Copr) 或使用 Flatpak/Snap/AppImage 通用套件格式。
- **極致效能/客製化**:原始碼編譯 (Gentoo 風格)。
- **容器化部署**:Dockerfile 中使用套件管理器安裝,或直接複製預編譯二進制檔。