目前市面上大部分的Linux distro都是根基於Red Hat及Debian這兩大廠牌的改裝(SuSE是一個異類)。因此在套件管理上,Red Hat的RPM與Debian的DPKG就成為Linux套件管理上的兩大標準。
這邊也不討論類Unix作業系統在套件管理(軟體的安裝,移除,查詢)上所持的哲學與一般人常用的MS Windows系列有很大的不同而衍生出的困難了,直接就這兩個套件管理工具列出比較以利查詢。
以下整理列表來自Jamyy's Weblog:
安裝
目的 | rpm 用法 | dpkg 用法 |
安裝指定套件 | rpm -i pkgfile.rpm | dpkg -i pkgfile.deb |
查詢
目的 | rpm 用法 | dpkg 用法 |
顯示所有已安裝的套件名稱 | rpm -qa | dpkg -l (小寫 L) |
顯示套件包含的所有檔案 | rpm -ql softwarename (小寫 L) | dpkg -L softwarename |
顯示特定檔案所屬套件名稱 | rpm -qf /path/to/file | dpkg -S /path/to/file |
查詢套件檔案資訊 | rpm -qip pkgfile.rpm (顯示套件資訊) rpm -qlp pkgfile.rpm (小寫 L, 顯示套件內所有檔案) | dpkg -I pkgfile.deb (大寫 I ) dpkg -c pkgfile.deb |
顯示指定套件是否安裝 | rpm -q softwarename (只顯示套件名稱) rpm -qi softwarename (顯示套件資訊) | dpkg -l softwarename (小寫 L, 只列出簡潔資訊) dpkg -s softwarename (顯示詳細資訊) dpkg -p softwarename (顯示詳細資訊) |
移除
目的 | rpm 用法 | dpkg 用法 |
移除指定套件 | rpm -e softwarename | dpkg -r softwarename (會留下套件設定檔) dpkg -P softwarename (完全移除) |
在 Debian 使用 alien 處理 RPM 套件
alien 可處理 .deb、.rpm、.slp、.tgz 等檔案格式, 進行轉檔或安裝.
於 Debian 安裝非 Debian 套件時, 可使用 alien 進行安裝.
安裝 alien 套件: apt-get install alien
- 在 Debian 安裝 RPM 套件: alien -i quota-3.12-7.i386.rpm
- 製作成 deb 的套件格式: alien -d quota-3.12-7.i386.rpm
- 製作成 rpm 的套件格式: alien -r quota_3.12-6_i386.deb
APT與YUM
雖然RPM與DPKG有效的解決的軟體的安裝,移除與查詢的需求,但是在Linux上的套件管理還有一個很大的問題必須解決,就是各軟體間的相依性 (dependency)。RPM與DPKG只能做到檢查相依性,在安裝或移除時告知相依性的不滿足,皆下來就需要使用者自行去找出所需的套件來安裝。這 樣的確是有點不方便,因此產生了前端工具軟體 - APT及YUM。
APT
Debian開發,目前也有porting到其他版本,要在Red Hat系的Fedora或CentOS使用也是可以的。
使用方法:
- 編輯 /etc/apt/sources.list,設定所選用的版本,如stable,testing,unstable及套件來源站台或裝置。檔案詳細設定請參考:了解 Debian 系統的哲學
- 基本指令:
apt-setup | 設定/etc/apt/souces.list |
apt-get update | 軟體資料庫同步 |
apt-get install softwarename1 [softwarename2.....] | 安裝軟體 |
apt-get remove softwarename1 [softwarename2...] | 移除軟體(保留設定檔) |
apt-get --purge remove softwarename1 [softwarename2...] | 移除軟體(不保留設定檔) |
apt-cache search softwarename | 列出所有sofrwarename的套件 |
apt-upgrade [softwarename1 softwarename2...] | 更新套件,不指定套件名則更新所有可更新的套件 |
apt-get clean(autoclean) | 刪除系統暫存的deb(autoclean只會將比目前系統舊版的套件刪除) |
apt-get dist-upgrade | 轉換系統的版本(需在/etc/apt/sources.list指定stable,testing或unstable) |
YUM
YUM(Yellow dog Updater, Modified )是Yellow Dog Linux開發的。Yellow Dog Linux原本是一套完全源於Red Hat但運作於先前使用IBM PPC平台的MAC機器,原本以為這個版本已經消失,沒想到最新消息是他們推出了在Sony PS3上面運作的版本。CentOS及Fedora的基本預設安裝中即將YUM列入其內。如果沒記錯,要在Debian上使用YUM也是可以的。
使用方法:
- 編輯 /etc/yum.conf 檔案詳細設定請參考:簡易 APT/YUM 伺服器設定 註1
- 基本指令: (如果 yum 在工作過程中需要使用者回應,可加上 -y參數直接回答 yes )
yum install softwarename1 [softwarename2.....] | 安裝套件 |
yum update [softwarename1 softwarename2...] | 更新套件,不指定套件名則更新所有可更新的套件 |
yum list | 列出目前在 yum server 上面有的套件 |
yum info | 類似 rpm -qi |
yum clean | 移除下載到本機的 packages 或 headers |
yum remove softwarename1 [softwarename2.....] | 移除已經安裝的套件 |
註1:Red Hat近年來致力於將一個設定檔切割成很多小設定檔。以yum.conf為例,Red Hat將其分割成xxx.repo檔放置在/etc/yum.repos.d這個目錄下。並在yum.conf檔裡增加一行註解: PUT YOUR REPOS HERE OR IN separate files named file.repo in /etc/yum.repos.d。個人可視喜好決定。