yum (全稱Yellow dog Update)命令是 RedHat 和 Fedora 以及 SUSE 中基於 rpm 軟件包管理器。全稱 Yellowdog Updater,Modified。起初是由yellow dog 這一發行版的開發者Terra Soft 研發,用python 寫成,那時還叫做yup(yellow dog updater),后經杜克大學的Linux@Duke 開發團隊進行改進,遂有此名。yum 可以交互和自動化地更新與管理 rpm 軟件包,能夠從指定的 yum 存儲倉庫自動下載 rpm 包並安裝,可以自動處理依賴性關系。提供查找、安裝、刪除、更新等操作命令。
1 檢查和更新軟件包
可以列出軟件包、整體更新軟件包、個體更新軟件包
1.2 檢查系統上已安裝的軟件包是否有可用的更新
yum check-update
例如:yum check-update 部分輸出如下:

1.2.1 更新軟件包
可以單個軟件包、多個、全部更新,如果更新的包的任何依賴項本身有更新可用,那么依賴的軟件包也會被更新。
更新單個軟件包
yum update package_name
類似的更新包組
yum group update group_name
更新所有包及依賴項。
yum update
2 查找包及獲取相關信息
Yum使您能夠對軟件包執行完整的操作集,包括搜索軟件包、查看有關軟件包的信息、安裝和刪除。
2.1 根據包名查找
yum search package_name1 package_name2 ...
2.2 列出所有已安裝和可用的包的信息
yum list all
2.3 列出所有已安裝的包
yum list installed
# 或列出指定名字的包
yum list installed *vim*
2.4 列出所有可安裝的已啟用存儲庫中的所有包
yum list available
3 列出yum倉庫信息
列出系統上每個啟用的存儲庫的存儲庫ID、名稱和包的數量
yum repolist
列出更詳細的存儲庫信息,存儲庫大小,存儲庫鏈接地址,存儲庫配置文件等
yum repolist -v yum repoinfo
列出禁用和啟用的存儲庫:yum repolist all,也可以針對啟用狀態和禁止狀態進行過濾:yum repolist disabled、yum repolist enabled

4 顯示軟件包信息
包括顯示軟件包的大小、官網URL、描述、來源存儲庫、版本號。類似 rpm -q --info package_name 命令。
yum info package_name
顯示軟件包的其它信息
這個命令提供了額外的信息,包括包的校驗和(算法用於生產,如sha - 256),在命令行上給出的命令被調用安裝包(如果有的話),reason=user表明它是由用戶安裝,reason=dep意味着它被引入作為一個依賴項
yumdb info package_name
5 yum 包組
包組是服務於一個公共目的的包的集合,例如系統工具或聲音和視頻。安裝包組將獲取一組相關的包,從而大大節省了時間。yum組命令是一個頂級命令,它涵蓋了在yum中作用於包組的所有操作。
smmary參數用於查看已安裝組、可用組、可用環境組以及已安裝和可用語言組的數量:
yum groups summary
列出存儲庫中所有包組
yum groups list
列出特定組中包含的包信息
等於yum groupinfo group_name
yum group info group_name
每個包組都有一個名稱和一個組ID (groupid)。列出所有包組的名稱及其組id(顯示在括號中)

安裝包組,可以通過將包組的完整組名(不包含groupid部分)傳遞給組安裝命令來安裝包組。
yum group install "group name"
也可以通過groupid進行安裝
yum group install groupid
移除包組
yum group remove "group name"
6 yum history
yum history命令查看yum事務的時間軸、發生的日期和時間、受影響的包的數量、這些事務是成功還是中止,以及事務之間是否更改了RPM數據庫。此外,此命令可用於撤消或重做某些事務。所有的歷史數據都存儲在/var/lib/yum/history/目錄的歷史數據庫中。
查看yum的歷史操作記錄
yum history list all

也可以根據ID僅顯示指定范圍
yum history list start_id..end_id

查看某個id的詳細信息,包括執行的命令、安裝更新的軟件包、執行時間等。
yum history info id

yum history重復或取消某個歷史操作
重復執行指定的id,該命令將重復執行該id的命令
yum history redo id
取消某個歷史id的,如果該id是執行安裝軟件包的命令,那么將remove掉該軟件包
yum history undo id
將事務歷史存儲在單個SQLite數據庫文件中。啟動新的事務歷史記錄文件
yum history new

7 yum的配置文件
yum 的配置文件分為兩部分:main 和 repository
- main 部分定義了全局配置選項,整個yum 配置文件應該只有一個main。常位於/etc/yum.conf 中。
- repository 部分定義了每個源/服務器的具體配置,可以有一到多個。常位於/etc/yum.repo.d 目錄下的各文件中。

/etc/yum.conf配置參數說明
- assumeyes=value
提示確認操作,默認是0。如果是1,則當yum install package_name等命令時則不會提示確認操作。這個過程不用輸入“y”確認安裝。
cachedir=directory
yum存儲其緩存和數據庫文件的目錄。
- debuglevel=value
yum生成的調試輸出的詳細信息。value是1到10之間的整數。設置更高的調試級別值將導致yum顯示更詳細的調試輸出。debuglevel=2是默認值,而debuglevel=0禁用調試輸出。
- exactarch=value
默認1表示開啟,在更新包時考慮准確的體系結構。通過此設置,yum不會安裝用於32位體系結構的包來更新已經安裝在系統上的具有64位體系結構的包。
- gpgcheck=value
默認gpgcheck=1,在所有存儲庫中的所有包上啟用GPG簽名檢查,包括本地包安裝。啟用gpgcheck后,將檢查所有包的簽名。在對應的.repo文件中為單個存儲庫設置gpgcheck=value將覆蓋默認值(如果它位於/etc/yum. conf中)。
- keepcache=value
默認0,安裝成功后,不要保留標題和包的緩存。1:成功安裝后保留緩存。
- logfile=value
默認/var/log/yum.log,日志輸出保存位置。記錄軟件包更新、安裝、移除等。
- plugins=value
plugins=1全局啟用所有yum插件。仍然可以通過在插件的配置文件中設置enabled=0來禁用特定的yum插件。
repository配置說明
在[repository]部分中,repository是惟一的存儲庫ID,如my_personal_repo(不允許使用空格),允許您定義單獨的yum存儲庫。位置/etc/yum.repos.d/*
repo配置參數實例
[root@web ~]# cat /etc/yum.repos.d/CentOS-Base.repo [base] name=CentOS-$releasever enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-$releasever enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/ gpgcheck=1
serverid 是用於區別各個不同的repository,必須有一個獨一無二的名稱;
name 是對repository 的描述,支持像$releasever $basearch這樣的變量;
baseurl 是服務器設置中最重要的部分,只有設置正確,才能從上面獲取軟件。它的格式是:
- 如果存儲庫通過HTTP可用,請使用:http://path/to/repo
- 如果存儲庫在FTP上可用,請使用:ftp://path/to/repo
- 如果存儲庫是機器本地的,那么使用:file:///path/to/local/repo
- 如果特定的在線存儲庫需要基本的HTTP身份驗證,則可以通過將用戶名和密碼前綴為URL來指定用戶名和密碼:http://user:password@www.example.com/repo/
- 通常這個URL是一個HTTP鏈接:baseurl=http://path/to/repo/releases/$releasever/server/$basearch/os/
8 yum-config-manager添加yum倉庫
yum-config-manager命令需要安裝yum-utils軟件包。
添加第三方yum源倉庫
[root@abvi17j5 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 已加載插件:fastestmirror adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo
僅下載不安裝:
yum install --downloadonly --downloaddir=/tmp lrzsz
