yum 是用來管理 rpm 套件的工具,可以自動處理相依性的問題,在 Linux 系統上時常被使用,以下是 yum 指令的基本用法與範例。
列出套件
list 可列出「已安裝」與「未安裝」的套件列表:
# yum list
若要列出 可以安裝(但未安裝)的套件列表,可使用:
# yum list available
若要列出 「已安裝」的套件列表,可用:
# yum list installed
若要列出 「可更新」的套件列表,可用:
# yum list updates
有些套件雖然被安裝在系統中,但是沒有被收錄在套件庫內(例如手動安裝的 RPM 套件),若要列出這種套件可使用:
# yum list extras
列出「最近安裝」的套件列表:
# yum list recent
搜尋套件
要搜尋套件,可使用 search,例如搜尋有 httpd 字眼的套件:
# yum search httpd
要找尋有包含特定檔案的套件,可使用 provides,例如搜尋有包含 /etc/sysconfig/nfs 這個檔案的套件列表,則可使用:
# yum provides /etc/sysconfig/nfs
安裝套件
安裝 rpm 套件可用 install 指令,並指定要安裝的套件名稱,例如安裝 Apache 網頁伺服器:
# sudo yum install httpd
也可一次安裝多個套件:
# sudo yum install pkg1 pkg2 pkg3
指定套件版本
如果要指定安裝套件版本,首先可以使用 --showduplicates 列出可用的版本:
# yum --showduplicates list httpd
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
* base: ftp.tc.edu.tw
* epel: free.nchc.org.tw
* extras: ftp.tc.edu.tw
* updates: ftp.tc.edu.tw
ce_stable 5/5
Installed Packages
httpd.x86_64 2.4.6-40.el7.centos.4 @updates
Available Packages
httpd.x86_64 2.4.6-40.el7.centos base
httpd.x86_64 2.4.6-40.el7.centos.1 updates
httpd.x86_64 2.4.6-40.el7.centos.4 updates
套件版本資訊可「直接加在套件名稱」後面:
# sudo yum install PKGNAME-VERSION
例如:
# sudo yum install httpd-2.4.6-40.el7.centos
更新套件
若需更新系統的 RPM 套件,可用 update 指令。並指定套件名稱,例如更新 httpd 套件:
# sudo yum update httpd
若不指定套件名稱,則會更新系統上 「所有已安裝」的套件:
# sudo yum update
若要更新套件至指定的版本,可以改用 update-to 。
另外一個升級指令是 upgrade,其作用跟 update 類似,不過 upgrade 會連同淘汰的套件也一起更新:
# sudo yum upgrade
通常在更新 Linux 發行板時,適合使用 upgrade 來升級套件。
檢查可更新的套件
check-update 可列出系統上所有可更新的 RPM 套件列表,這指令不是互動式的,可在指令稿中使用:
# yum check-update
移除套件
若要移除套件可使用 remove 指令,並加上要移除的套件名稱:
# sudo yum remove httpd
erase 的作用與 remove 相同:
# sudo yum erase httpd
移除沒有用的套件
由於套件的相依性問題,有些套件在某些狀況下會被自動安裝,而當系統經過了一段時間、做了一些變動之後,可能會留下一些沒有用的套件,這時候可以用 autoremove 自動移除這些套件:
# sudo yum autoremove
套件資訊
deplist 可以列出指定套件的相依性套件列表:
# yum deplist httpd
套件群組
在 yum 的套件系統上,相關的套件會被歸納在同一個群組中,除了以單一套件的方式搜尋與安裝之外,也可以用群組的方式一次安裝所有相關的套件,這樣的好處是可以把相類關的工具一次安裝好,比較不容易遺漏。
grouplist 可以列出所有可用的群組:
# yum grouplist
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: ftp.tc.edu.tw
* epel: free.nchc.org.tw
* extras: ftp.tc.edu.tw
* updates: ftp.tc.edu.tw
Available Environment Groups:
最小型安裝
基礎架構伺服器
運算節點
檔案和列印伺服器
MATE 桌面
基本網站伺服器
虛擬主機
含有 GUI 的伺服器
GNOME 桌面環境
KDE Plasma Workspaces
[略]
Available Groups:
CIFS 檔案伺服器
Eclipse
FCoE 儲存體客戶端
Fedora 軟體打包員
Haskell
Legacy UNIX 相容性
Milkymist
[略]
系統上有很多種套件群組,若要安裝套件群組可以使用 groupinstall:
sudo yum groupinstall 'MATE 桌面'
若要更新套件群組,可以使用 groupupdate:
sudo yum groupupdate 'MATE 桌面'
若要移除套件群組,可以使用 groupremove:
sudo yum groupremove 'MATE 桌面'
套件庫
repolist 可以列出目前啟用的套件庫:
# yum repolist
若要列出所有可用的套件庫,則執行:
# yum repolist all
如果要從未啟用的套件庫安裝套件,可以加上 --enablerepo 參數:
# sudo yum --enablerepo=epel-testing install vim-X11.x86_64
清理暫存檔
clean 指令可以用來清理快取用的暫存檔,若要清理暫存的 RPM 標頭檔則執行:
# yum clean headers
若要清理暫存的 RPM 套件檔則執行:
# yum clean packages
若要清理所有的暫存檔則執行:
# yum clean all