在上一篇部落格《Linux軟體包的管理--RPM包管理器》中詳細講述了RPM,但是存在一個問題?就是RPM不能自動解決軟體包之間的依賴性。是以就出現了增強版的RPM管理器-YUM。
以下講解以CentOS6系列為例。
一、YUM介紹
YUM(Yellowdog Updater Modified)是一種C/S架構,它為什麼就能自動解決依賴性關系呢?這取決于 YUM 服務端的RPM倉庫,在這個倉庫裡放着我們經常用到的rpm格式的軟體包。
1、yum倉庫的組成
組成
内容
資料
存放各個rpm包
中繼資料
包名、版本資訊、依賴關系、包分組資訊、依賴關系清單。
在centos6中遵循sqlite格式,生成的中繼資料目錄是repodata。
2、yum用戶端如何通路服務端
以更新為例:

3、如何配置yum的服務端和用戶端
1)在伺服器端
首先:在伺服器端要確定有可用的yum倉庫。yum倉庫其實就是檔案伺服器。repodata目錄所在的父目錄就是一個yum倉庫。
其次:伺服器端必須通過某種手段将yum倉庫共享出去,可以讓用戶端使用,常見的共享方式有:ftp,http,nfs。如果是本地使用(用戶端和服務端是同一台機器),也可以使用file方式。
2)yum用戶端
提供repo配置檔案,指明倉庫通路路徑及各種屬性。主配置檔案(中心配置檔案):/etc/yum.conf。
一個後幾個相關的倉庫的配置儲存成一個檔案,檔案名都以.repo結尾,儲存在/etc/yum.repo.d目錄中。
下面介紹一下檔案格式(以163鏡像為例):
配置好這些準備工作,就可以使用yum工具了。
三、yum工具的使用
這裡以網際網路163鏡像為例示範。
1、列出所有可用repo
yum repolist {enabled|disabled|all}
2、列出rpm包
yum list {all|installed|available}
3、包的描述資訊
yum info package_name
4、列出所有的包組資訊
yum grouplist
5、顯示包組的資訊:例如組中包含的程式包清單
yum groupinfo "GROUP NAME"
6、清理緩存
yum clean {all|packages|metadata|expire-cache|rpmdb|plugins}
7、安裝程式包
yum install package_name
重新安裝:
yum reinstall package_name
8、更新
yum check-update: 檢查可用的更新包
yum update package_name 更新軟體
yum downgrade package_name 降級使用的,退回原來的版本
9、解除安裝
yum remove|erase package_name
10、查詢某檔案是由哪個包安裝生成的
yum whatprovides|provides /path/to/somefile
11、安裝包組
yum groupinstall "GROUP NAME"
12、解除安裝包組
yum groupremove "GROUP NAME"
四、自制yum倉庫
1、如果作為個人使用的話,最簡單的辦法是,挂載CD光牒鏡像使用。
以VMware虛拟機為例:
先關聯CD光牒鏡像,挂載CD光牒鏡像就可以使用。
其中:.repo中的baseurl使用file就可。例如:baseurl=file:///media/centos
2、自建yum倉庫伺服器
以ftp為例,步驟:
(1) 安裝ftp程式,并啟動服務
# rpm -ivh vsftp-版本号
或者
# yum install vsftpd -y
啟動服務
# service vsftpd start
# chkconfig vsftpd on
(2) ftp的共享目錄為/var/ftp/pub
建立子目錄,存放某相關的所有rpm包(建議)
(3) 為倉庫生成中繼資料檔案,以使能夠作為倉庫使用
# rpm -ivh createrepo-版本号
# yum install createrepo -y
# createrepo /path/to/rpm_repo/ 生成repo的中繼資料目錄 例如:createrepo /var/ftp/pub/Packages
(4) 配置yum用戶端使用此倉庫即可
總結:本文主要介紹yum工具的使用,簡單介紹了自制yum服務端的步驟。