How-To:用 yum 進行軟體安裝移除與更新

Last Update - 06 / 26 / 2009 By DarkRanger .


環境


Fedora 10

Kernel = 2.6.27.5-117.fc10


一 般而言,Linux 最為常見的安裝檔格式是 debrpm,前者主要用在 DebianUbuntu 系統上,後者則主要用在 FedoraopenSUSE 系統上。由於 deb/rpm 這類套件在設計上就像是變形金剛(Transformers)中的組合機器人,也就是說一個完整的軟體往往不是只安裝一個套件就好,而是要多個套件都裝起 來才能夠運作,並且這些套件彼此都有「相依性」(dependency)的需求,例如要安裝 A 套件前必須先安裝 B 套件等等。要安裝軟體就得先把所需的套件一一找齊再一次裝起來,這對使用者是相當麻煩的。因此就出現了 aptyum 這類套件管理工具,讓使用者可以利用簡單的指令安裝想要的軟體,工具就會自動下載該軟體所需的套件並安裝,除了安裝軟體以外,連軟體的移除、更新可用簡單 的指令解決。

本文所介紹的 yum 就是針對 rpm 的套件管理工具,基本上現今有使用 rpm 做為安裝檔的 Linux 系統都已內建 yum。雖然 yum 本身是文字介面,但因為其操作非常簡單,進行的又是極重要的軟體管理工作,因此 DR 強烈建議 Fedora(或者其它 rpm based 的 Linux)
的使用者都應該要學習如何使用 yum。


1. yum 基本觀念操作

首先,yum 需要網路才能運作(除非經過特別設定),因為它必須連到線上的套件伺服器才能獲得資料清單並進行檔案下載。再來, yum 跟 rpm 指令一樣,需要 root 權限才能操作。以安裝 VLC 播放軟體為例,以下是基本的操作方式:

查詢套件(若找到會列出套件的一些資料):

# yum search vlc

安裝套件:

# yum install vlc

更新套件:

# yum update vlc

移除套件:

# yum remove vlc

許多 yum 操作會詢問使用者是否確定執行(y/n),如果希望 yum 自動確定而無須詢問,可加入 -y 參數,例如:

# yum -y install vlc

要順利安裝 vlc
這個套件還需要許多其它的套件才行,yum 會自動下載所需的套件並安裝,這就是它的方便之處。另外 yum 還有兩個較常用的指令:

所有已安裝的套件更新(就是系統更新了):

# yum update

清除所有 yum 快取資料(適用於 yum 異常時);

# yum claen all


2. yum 群組指令操作

許多套件會被設為各個群組(Groups),例如「開發工具」、「桌面環境」、「伺服器」等,只要用群租指令就可以把該群組收納的軟體統統裝起來,以下是操作範例:

列出已知群組(會分為已安裝 Installed 和未安裝 Available):

# yum grouplist

群組安裝 LXDE 桌面環境:


# yum groupinstall "LXDE"

群組移除:

# yum groupremove "LXDE"


3. yum 進階設定

由於網路上的鏡像(mirror)站台眾多,有時候會發生 yum 連結到較慢的站台而導致速度緩慢,為了讓 yum 可以自動偵測並連結較快速的站台,請先安裝下列套件:

# yum install yum-plugin-fastestmirror

yum 的設定檔是在 /etc/yum.conf,可以在當中寫入一些特別設定,例如若希望 yum 預設不更新系統核心(kernel)的話,可寫入以下內容:

exclude=kernel*

4. 安裝擴充套件庫

很多時候,桌面使用者所想要的軟體並沒有辦法在 Fedora 的官方套件庫中取得,例如前面所提到的 VLC
,它其實是由第三方的 RPM Fusion 套件庫所提供,因此若要在 Fedora 系統上有良好的桌面體驗,安裝其它的擴充套件庫是必須的工作。RPM Fusion 是由原本三個各自維護的套件庫所合併而成:LivnaFreshrpmsDribble,合併之後它頓時成了 Fedora 最大(也可能是最完善)的擴充套件庫,所以 DR 建議  Fedora 的桌面使用者都應該安裝 RPM Fusion ,安裝方式很簡單,使用以下指令安裝即可:

# rpm -Uvh http://rpm.livna.org/livna-release.rpm http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm  http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

看完以上指令可能會有一個問題:就是既然前面提到 RPM Fusion 保含了 Livna 套件庫,那為什麼還需要安裝 Livna 套件庫?這是因為 Livna 有一個用來支援 DVD 播放的套件(libdvdcss)沒有被收納到 RPM Fusion 裡,而原因是 libdvdcss 在部份歐洲國家是違反專利權的。

除了 RPM Fusion 外,另一個可以考慮使用的是 ATrpms 這個套件庫,ATrpms 也是個相當大型的套件庫,它之所以沒有和 RPM Fusion 合併,是因為兩者的套件設計思維不同,RPM Fusion 不會更動、取代任何 Fedora 官方的套件,ATrpms 則否。由於 ATrpms 和 RPM Fusion 之間還是有雷同甚至相衝突的套件,因此 DR 建議平常只啟用其中一個套件庫,像 DR 自己平常只啟用 RPM Fusion,需要安裝 ATrpms 才有的套件時才啟用該套件庫。至於 ATrpms 的安裝方式,因為它沒有提供 rpm,所以請手動建立在 /etc/yum.repos.d/ 目錄新建
atrpms.repo 這個文字檔案,然後寫入以下內容:

[atrpms]
name=Fedora $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/f$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
enabled=0
gpgcheck=1

預設是關閉的,只要將 enabled0 改為 1 便是啟用,或者在 yum 操作時加入 --enablerepo=atrpms 這個參數,例如:

# yum --enablerepo=atrpms install vlc


5. 套件搜尋的訣竅

最後來談,使用者常常會有個問題:「想要安裝某軟體,但是不知道它的套件名稱,或者不知道它是由哪個套件庫所提供的,因此不知道該怎麼用 yum 安裝它?」

DR 第一個解決方法就是
Google,請用「軟體名稱+系統版本」的方式去搜尋,例如:「Avidemux fedora」,也可以另外加入一些關鍵字,例如:「Kdenlive fedora 10 yum」或者「yum install Kdenlive fedora」。通常這樣就可以找到所需的資訊。

另一個方法是利用 rpm.pbone.net 這個網站搜尋,它可以清楚找出該軟體位於哪個套件庫,並且它也可以直接輸入檔案名稱,如此就可知道該檔案是由哪個套件提供。
 


參考網站:

http://linux.vbird.org/linux_basic/0520rpm_and_srpm.php

http://linux.vbird.org/linux_server/0220upgrade.php

http://rpmfusion.org

http://atrpms.net

http://rpm.livna.org

http://rpm.pbone.net

http://www.fedorafaq.org

http://linux.duke.edu/projects/yum/




Back to DarkRanger.no-ip.org