5.2.1 yum简介在RedHat Enterprise Linux(RHEL从5.0版开始采用yum)、CentOS和Fedora等发行版中,采用了一种叫做yum的软件包管理工具。Yum(Yellow dog Updater Modified)用python语言写成。yum的宗旨是收集rpm软件包的相关信息,检查依赖关系,自动化的升级、安装、删除rpm软件包。
yum的关键之处是要有可靠的repository(仓库),repository管理一部分甚至一个Linux发行版的应用程序的依赖关系,根据计算出来的依赖关系进行相关软件包的升级、安装、删除等操作,解决了Linux用户一直头痛的依赖关系问题。
repository可以是http或ftp站点,也可以是本地软件池,但必须包含rpm的header,header包括了rpm包的各种信息,包括描述、功能、提供的文件、依赖性等。正是收集了这些 header并加以分析,才能自动化地完成升级、安装软件包等任务。
5.2.2 yum的使用
实例5-5 yum的使用认识yum的配置文件yum.conf
如图5-14所示,yum的全局性配置信息都储存在配置文件/etc/yum.conf中,对其中配置参数的说明如下:
cachedir:yum缓存的目录,yum将下载的rpm软件包存放在cachedir指定的目录。
debuglevel:除错级别,0—10,默认是2。
logfile:yum的日志文件。
pkgpolicy:包的策略,一共有两个选项,newest和last,pkgpolicy的作用是如果设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个呢?如果是newest,那么yum会安装最新的那个版本;如果是last,那么yum会将服务器id以字母表排序,并选择最后那个服务器上的软件安装。默认是newest。
distroverpkg:指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。
tolerent:有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,如果设为1,那么yum不会出现错误信息。默认是0。
exactarch:有1和0两个选项,表示是否只升级和要安装的软件包的cpu体系一致的包,如果设为1,并且已经安装了一个i386的rpm,那么yum不会用i686的包来升级。
修改yum源(repository)
首先将/etc/yum.repos.d下的文件都移到备份目录里,然后在/etc/yum.repos.d目录中创建/etc/yum.repos.d/centos-5.repo文件,如图5-15所示。所有repository的设置都遵循如下格式:
[updates]
name=CentOS-5-Updates
baseurl=http://mirror.tini4u.net/centos/5.2/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.tini4u.net/centos/RPM-GPG-KEY-CentOS-5
其中:
updates是用于区别各个不同的repository,必须有一个独一无二的名称。
name是对repository的描述。
baseurl是服务器设置中最重要的部分,只有设置正确,才能获取软件包。它的格式是:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
其中url支持的协议有http://、ftp://和file://三种。baseurl后可以跟多个url,可以改为速度比较快的镜像站点,但是baseurl只能有一个,也就是说不能像如下格式:
baseurl=url://server1/path/to/repository/
baseurl=url://server2/path/to/repository/
baseurl=url://server3/path/to/repository/
其中url指向的目录必须是这个repository目录(即“repodata”目录)的父目录,它也支持$releasever $basearch这样的变量。$releasever是指当前发行版的版本。$basearch是指cpu体系,如i386体系、alpha体系。
 注意:
每个镜像站点中“repodata”文件夹的路径可能不一样,设置baseurl之前一定要首先登录相应的镜像站点,查看“repodata”文件夹所在的位置,然后才能设置baseurl。
url之后可以加上多个选项,如gpgcheck、enable等,其中gpgcheck,的含义和[main]部分相同,但只对此服务器起作用;在repository的描述文件中设置enable=0可以禁止yum使用这个repository。如果没有使用enable选项,那么相当于enable=1。
第4步:导入key
使用yum之前,先要导入每个repository的GPG key,yum使用GPG对软件包进行校验,确保下载包的完整性,所以要到各个repository站点找到GPG key文件,文件名一般是RPM-GPG-KEY.txt之类的文本文件,将他们下载,然后用rpm --import xxx.txt命令将他们导入,也可以执行如下命令导入GPG key:
#rpm --import http://mirror.tini4u.net/centos/RPM-GPG-KEY-CentOS-5
其中“http://mirror.tini4u.net/centos/RPM-GPG-KEY-CentOS-5”是GPG key文件URL。
第5步:使用yum
yum 的基本操作包括软件的安装(本地、网络),升级(本地、网络),卸载,查询。
(1)用yum安装、删除软件用yum安装、删除软件的命令见表5-7。
如果要使用yum安装firefox,可以执行命令:yum install firefox。
如果本地有rpm软件包,比如xxx.rpm,可以执行# yum localinstall xxx.rpm命令来安装。
 注意:
如果不是root,可以执行su -c 'yum install firefox'命令。
(2)用yum检查、升级软件用yum检查、升级软件的命令见表5-8。
(3)用yum搜索、查询软件用yum搜索、查询软件的命令见表5-9。
(4)清除yum缓存
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果觉得他们占用了磁盘空间,可以对他们进行清除。清除yum缓存的命令见表5-10。
 注意:
不建议yum在开机时自动运行,因为它会让系统的速度变慢,可以执行ntsysv命令,在出现的TUI(文本用户窗口)中取消yum即可,如果需要更新软件包,可以采用手动更新。