YUM的全称为 Yellowdog Update Modifier,其主要目的是为了解决RPM包安装时的依赖关系的问题。YUM只是一个用于软件安装的前端工具,其主要的服务对象还是RPM软件包。
YUM采用C/S架构,即客户端与服务器的模式,下面分别进行说明。
1、工作原理
1)获取仓库元数据
yum会先将仓库的元数据缓存于本地的/var/cache/yum目录中。
2)安装程序包
yum客户端程序在本地分析元数据文件,并结合本地系统环境(已安装的包)做出要安装的程序包的决策。
3)获取程序包
根据决策联系yum仓库,下载各程序包缓存于本地后,一并进行安装。
2、配置客户端
1)主配置文件(中心配置文件):/etc/yum.conf。
通常不需要进行修改,保持其默认配置即可。
2)提供repo配置文件,指明仓库访问路径及各种属性信息。
在目录/etc/yum.repos.d/目录中创建.repo文件,其格式如下:
[REPOID] 任意字符即可;
name=自定义 任意字符即可;
baseurl=ftp:// 指明yum仓库的位置,支持服务器的类型包括ftp,nfs,http,file;
file:/// 当用多个yum仓库时,可在每一行指定一个baseurl;
enabled={0|1} 是否启用此repo的配置,默认为enabled=1;
gpgcheck={0|1} 是否启用校验;
gpgkey=URL 如启用校验,应指明密钥的位置;
cost={1..n} 默认为1000,指定访问此仓库的开销;
3、yum客户端命令的使用
1)列出所有可用repo
yum repolist {enable|disabled|all}
2)列出rpm包
yum list {all|install|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
8)重新安装程序包
yum reinstall package_name
9)升级
检查可用的升级包
yum check-update
升级软件包
yum update package_name
指定软件包升级的版本
yum downgrade package_name
10)卸载
yum remove|erase package_name
11)查询某文件是由哪个包安装生成的
yum provides filename
12)安装包组
yum groupinstall “group name”
13)卸载包组
yum groupremove “group name”
1、yum仓库类型
base库:通常为系统发行版所提供的程序包。
updates库:为软件提供更新程序包。
epel库:提供额外的程序包。
2、yum仓库的服务器类型
ftp服务器
http服务器
nfs服务器
file本地服务器
3、自建yum仓库
yum仓库所在的目录中必须是repodata目录所在的目录,下面来举例说明:
1)基于光盘镜像的repo
在CentOS 6的光盘镜像中已经制作好了repodata目录,我们只需将yum源的路径指向挂载目录即可。
此方法适合于创建本地的yum仓库。
2)基于服务器的repo
下面以http服务为例创建yum仓库:
(1)安装httpd程序,并启动服务;
(2) 在httpd的文档根目录/var/www/html中创建子目录,用于存放某相关rpm包;
(3) 为仓库生成元数据文件,以使用能够作为仓库使用
(4) 配置yum客户端使用此仓库
使用yum安装hadoop进行测试: