初接觸 Linux 的使用者最困惑的往往是「軟體怎麼裝?裝哪去了?怎麼砍掉?」。Windows 的「下一步、下一步、完成」直覺模式在 Linux 不存在,取而代之的是三大主流套件格式與對應的管理機制。本文系統拆解 tarball、RPM、DEB 三大格式的特性、命名慣例與操作指令,建立清晰的軟體管理認知框架。
| 格式 | 典型副檔名 | 發源發行版 | 核心特性 | 管理工具 |
|---|---|---|---|---|
| tarball (源碼/二進制打包) | .tar.gz, .tar.bz2, .tar.xz, .tgz | 通用 (Slackware、Arch、Gentoo 等) | 無資料庫、無相依解析、需手動編譯或解壓、最高彈性 | tar, make, checkinstall, src2pkg |
| RPM (Red Hat Package Manager) | .rpm | Red Hat、Fedora、CentOS、openSUSE、Mageia | 二進制預編譯、內建相依關係、資料庫追蹤、支援簽名驗證 | rpm, dnf, yum, zypper |
| DEB (Debian Package) | .deb | Debian、Ubuntu、Linux Mint、Kali、Deepin | 二進制預編譯、相依解析最成熟、控制檔靈活、支援觸發器 | dpkg, apt, aptitude, synaptic |
幾乎所有 Linux 套件遵循統一命名規範:
軟體名稱-版本號-修訂號-架構.格式
nginx-1.24.0-1.el9.x86_64.rpmvim_9.0.1234-1ubuntu2.2_amd64.debffmpeg-6.0.tar.xz主版本.次版本.修訂版本 (Major.Minor.Patch),如 2.4.7:
# 查詢已安裝套件 rpm -qa | grep nginx rpm -qi nginx # 詳細資訊 rpm -ql nginx # 檔案清單 rpm -qf /etc/nginx/nginx.conf # 反查檔案屬於哪個套件 # 安裝/升級/移除 (推薦使用 dnf/yum 自動解決相依) dnf install nginx dnf upgrade nginx dnf remove nginx # 低階 rpm 指令 (不解決相依) rpm -ivh nginx-1.24.rpm # 安裝 rpm -Uvh nginx-1.24.rpm # 升級 rpm -e nginx # 移除 # 驗證套件完整性 rpm -V nginx # 比對檔案屬性 rpm --checksig nginx-1.24.rpm # 驗證 GPG 簽名
# 查詢 dpkg -l | grep nginx dpkg -L nginx # 檔案清單 dpkg -S /etc/nginx/nginx.conf # 反查 # 高階 apt (推薦) apt update apt install nginx apt upgrade nginx apt remove nginx apt purge nginx # 連同配置檔一併刪除 # 低階 dpkg dpkg -i nginx_1.24_amd64.deb dpkg -r nginx dpkg -P nginx # 完全移除
# 解壓 tar -xvf software-1.2.3.tar.gz cd software-1.2.3 # 標準三部曲 (GNU Autotools) ./configure --prefix=/usr/local make sudo make install # 或使用 checkinstall 生成 rpm/deb 再安裝 # 非標準建構系統 (CMake, Meson, Cargo 等) cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local cmake --build build sudo cmake --install build
alien -r package.deb (deb→rpm)、alien -d package.rpm (rpm→deb),僅限二進制相容場景,生產環境慎用。理解三大格式的設計哲學——tarball 給開發者最大自由、RPM 給企業穩定相依管理、DEB 給社群最強相依解析——並熟練對應高階工具 (dnf/apt) 與低階指令 (rpm/dpkg),即能在任何 Linux 發行版上輕鬆掌控軟體生命週期。