在上一篇博客《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、如果作为个人使用的话,最简单的办法是,挂载光盘镜像使用。
以VMware虚拟机为例:
先关联光盘镜像,挂载光盘镜像就可以使用。
其中:.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服务端的步骤。