Linux 的yum詳解
- 2019 年 10 月 5 日
- 筆記
Linux 的yum詳解:
rpm包在安裝過程中經常會出現一些依賴關係,這就是yum安裝方式誕生的背景。
YUM 全稱yellowdog Update Modifier
yum最大的好處就是一站式解決軟體包的安裝,可以自動安裝所需依賴環境。
yum的配置文件:
/etc/yum.conf # 為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo # 為倉庫的指向提供配置
yum快取地址:
/var/cache/yum/
yum安裝卸載的記錄文件:
/var/log/yum.log
1.yum源的配置
默認系統安裝好後,在/etc/yum.repo.d/目錄下有幾個CentOS-Base開頭的幾個repo文件。
yum源可以分為2種:網路源和本地源。
網路源的好處是軟體包更新較快,但是容易受網路頻寬的影響。
本地源用的是已經下載好的軟體包,不用受網路影響,但包更新可能不夠及時。
網路源的安裝請網上搜索相應的repo文件。
本地源的配置在下文中會詳細說明具體操作步驟。
這裡先對repo文件格式做個大體的說明:
[Media] 便於識別的ID,同一系統上的repo文件中該欄位不能重名
name=testrepo
baseurl=http://xxxxxxx或者file:///xxx 或ftp://xxx
gpgcheck=0 # 0表示關閉gpg校驗,1表示啟用gpg校驗
enabled=1 表示啟用該repo源
gpgkey=http://xxxxxxx/RPM-GPG-KEY-CentOS-6 # 啟用gpgcheck後,需要加這條。不啟用gpgcheck的話,這條可以刪掉。
2.yum命令的用法:
從使用角度對yum命令進行分類:
- 顯示倉庫列表
yum repolist [all|enabled|disabled]
- 軟體包的搜索
yum list all # 顯示所有軟體包
yum list all|grep httpd # 搜索所有含httpd的軟體包
yum list available # 顯示所有可用的軟體包
yum list installed # 顯示已經安裝的軟體包
yum list updates # 顯示有更新的軟體包
yum search httpd # 列出所有包名或者summary內容中包含httpd的包
- 軟體包的安裝
yum install httpd # 安裝httpd軟體包及相關依賴包
yum reinstall httpd # 重新安裝軟體包
- 軟體包的卸載
yum remove httpd # 卸載軟體包和依賴環境
yum erase httpd # 卸載軟體包和依賴環境
- 軟體包的升級、降級
yum update httpd #更新httpd軟體包
yum update # 全部更新
yum downgrade package # package降級安裝
- 軟體包的資訊查看
yum info httpd # 查看httpd軟體包資訊
yum groupinfo group1 # 顯示程式組group1資訊
- 查看指定包的依賴關係
yum deplist httpd # 查看httpd依賴哪些包
- 查看yum事物歷史
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
- 安裝及升級本地程式包:
yum localinstall rpmfile1 [rpmfile2] [...] # 本地安裝軟體包
yum localupdate rpmfile1 [rpmfile2] [...] # 本地升級軟體包
- 包組的管理命令
yum groupinstall group1…
yum groupupdate group1 ...
yum grouplist # 列出所有的包租
yum groupremove group1 # 移除某個包組
yum groupinfo group1 # 顯示某個包組的資訊
- 其它命令
yum check-update # 檢查可用的升級
yum clean all # 清理yum所有的快取
yum make cache # 建立yum快取
3.yum的命令行選項
--nogpgcheck:禁止進行gpg check;
-y: 自動回答為「yes」;
-q:靜默模式;
--disablerepo=repoidglob:臨時禁用此處指定的repo;
--enablerepo=repoidglob:臨時啟用此處指定的repo;
--noplugins:禁用所有插件;
4.yum倉庫的手動創建
為了下面實驗結果的直觀起見,我先將/etc/yum.repo.d/文件夾下原有的內容都重命名為xxx.repo.bak
方法1:直接掛載光碟構建yum源倉庫
mount /dev/cdrom /media
在/etc/yum.repos.d/目錄下,建立local.repo文件:
[local]
name=local source
baseurl=file:///media
enabled=1
gpgcheck=1
gpgkey=/media/RPM-GPG-KEY-CentOS-6
保存並退出。
yum clean all
yum install xxx # 安裝個軟體測試下yum源能否正常工作。
方法2:本地網路源倉庫
http://172.16.249.118是區域網的一台伺服器,上面做了yum源。【如下圖】

在/etc/yum.repos.d/目錄下,建立http.repo文件:
[httpd]
name=httpd source
baseurl=http://172.16.249.118
enabled=1
gpgcheck=1
gpgkey=http://172.16.249.118/RPM-GPG-KEY-CentOS-6
方法3:createrepo命令創建repo源文件,再掛載
yum倉庫的建立需要用到createrepo程式。
假設在/tmp/demo下有一些軟體包,需要創建包倉庫。

cd /tmp/demo
create -o ../ ./ #注釋:-o 指定生成的repo的路徑為上層目錄, ./ 是表示將當前目錄的文件創建yum倉庫。

在/etc/yum.repos.d/目錄下,建立repo文件:
test.repo
[local]
name=test.repo
baseurl=file:///tmp
enabled=1
gpgcheck=1
yum clean all # 清除yum快取
yum repolist # 查看當前有哪些repo文件

已經可以找到剛才新建的yum源了。
也可以yum install 安裝個軟體測試下是否yum源可以正常工作。