Linux上的套件管理 (rpm, dpkg, yum, apt)

目前市面上大部分的Linux distro都是根基於Red Hat及Debian這兩大廠牌的改裝(SuSE是一個異類)。所以在套件管理上,Red Hat的RPM與Debian的DPKG就成為Linux套件管理上的兩大標準。php

這邊也不討論類Unix做業系統在套件管理(軟體的安裝,移除,查詢)上所持的哲學與通常人經常使用的MS Windows系列有很大的不一樣而衍生出的困難了,直接就這兩個套件管理工具列出比較以利查詢。html

如下整理列表來自Jamyy's Weblog前端

安裝linux

目的 rpm 用法 dpkg 用法
安裝指定套件 rpm -i pkgfile.rpm dpkg -i pkgfile.deb

查詢web

目的 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 (顯示詳細資訊)

移除ide

目的 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 alienui

  • 在 Debian 安裝 RPM 套件: alien -i quota-3.12-7.i386.rpmurl

  • 製做成 deb 的套件格式: alien -d quota-3.12-7.i386.rpmspa

  • 製做成 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 [softwarename1softwarename2...] 更新套件,不指定套件名則更新全部可更新的套件
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 [softwarename1softwarename2...] 更新套件,不指定套件名則更新全部可更新的套件
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。個人可視喜愛決定。

參考文件:

  1. 鳥哥的 Linux 與 ADSL 私房菜:簡易 APT/YUM 伺服器設定

  2. Debian 無痛起步法:瞭解 Debian 系統的哲學

  3. Jamyy's Weblog:rpm vs. dpkg 經常使用參數對照

相關文章
相關標籤/搜索