yum概述
Linux系统维护中令管理员很头疼的就是软件包之间的依赖性了,往往是你要安装A软件,但是编译的时候告诉你X软件安装之前需要B软件,而当你安装Y软件的时 候,又告诉你需要Z库了,好不容易安装好Z库,发现版本还有问题等。由于历史原因,RPM软件包管理系统对软件之间的依存关系没有内部定义,造成安装RPM软件时经常出现令人无法理解的软件依赖问题。其实开源社区早就对这个问题尝试进行解决了,不同的发行版推出了各自的工具,比如Yellow Dog的YUM,Debian的APT等。开发这些工具的目的都是为了要解决安装R PM时的依赖性问题,而不是额外再建立一套安装模式。这些软件也被开源软件爱好者们逐渐移植到别的发行版上。目前,APT和YUM都可以运行在Red Hat系统上。目前yum是Red Hat/Fedora系统上默认安装的更新系统。yum特点自动解决包的倚赖性问题能更方便的添加/删除/更新RPM包便于管理大量系统的更新问题可以同时配置多个资源库(Repository)简洁的配置文件(/etc/yum.conf)保持与RPM数据库的一致性有一个比较详细的log,可以查看何时升级安装了什么软件包等使用方便yum是CentOS/Fedora系统自带的,因此它能使用CentOS官方的软件源,完成各种官方发布的各种升级。对于第三方软件源的支持,yum也不差,大多数支持apt的repository,也能支持yum 。配置yum客户的更新源在.repo文件中,配置语法是分段的,每一段配置一个软件仓库,配置语法如下:[repositoryid]name=Some name for this repositorybaseurl=url://server1/path/to/repository/url://server2/path/to/repository/url://server3/path/to/repository/mirrorlist=url://path/to/mirrorlist/repository/enabled=0/1gpgcheck=0/1gpgkey=A URL pointing to the ASCII-armoured GPG key file for the repository其中:repositoryid : 用于指定一个仓库name: 用于指定易读的仓库名称baseurl : 用于指定本仓库的URL,可以是如下的几种类型:http — 用于指定远程 HTTP 协议的源ftp — 用于指定远程 FTP 协议的源file — 用于本地镜像或 NFS 挂装文件系统mirrorlist : 用于指定仓库的镜像站点enabled : 用于指定是否使用本仓库,默认值为1,即可用gpgcheck : 用于指定是否检查软件包的 GPG 签名gpgkey : 用于指定GPG签名文件的URL在name baseurl中经常使用如下的变量:$releasever — 当前系统的版本号$basearch — 当前系统的平台架构文件中以“#”开头的行是注释行若指定mirrorlist,系统将从CentOS的镜像站点中选择离您最近的仓库并非所有的国内镜像都在CentOS的镜像站点列表中,可以直接使用baseurl直接指定离您最近的仓库baseurl 可以指定多个 UR L,系统会依次检查您列出的仓库,以便在某个服务器宕机时可以使用另外的服务器为了加快更新,在确保更新服务器及线路良好的情况下,在baseurl中只指定一个URL既可设置网络更新源下面是一个CentOS-Base.repo文件的实例,在此文件中没有设置mirrorlist ,使用baseurl只指定了一个URL。[base]name=CentOS-$releasever - Basebaseurl=http://centos.candishosting.com.cn/$releasever/os/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5[updates]name=CentOS-$releasever - Updatesbaseurl=http://centos.candishosting.com.cn/$releasever/updates/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5[addons]name=CentOS-$releasever - Addonsbaseurl=http://centos.candishosting.com.cn/$releasever/addons/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5[extras]name=CentOS-$releasever - Extrasbaseurl=http://centos.candishosting.com.cn/$releasever/extras/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5[centosplus]name=CentOS-$releasever - Plusbaseurl=http://centos.candishosting.com.cn/$releasever/centosplus/$basearch/gpgcheck=1enabled=0gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5设置本地更新源为了使用安装光盘作为更新源,可以修改CentOS-Media.repo 文件,下面是一个配置实例。[c5-media]name=CentOS-$releasever - Mediabaseurl=file:///media/CentOS/file:///media/cdrom/file:///media/cdrecorder/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-beta为了使用 c5-media仓库,需将CentO S-Base .repo文件中的base仓库使用enabled=0设置成不可用。若本地磁盘空间有足够空间,您也可以将安装光盘复制到本地磁盘的一个目录中yum命令简介下面是一些较常见的用法。命令功能yum check-update 检查可更新的所有软件包yum update 下载更新系统已安装的所有软件包yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级yum install <packages> 安装新软件包yum update <packages> 更新指定的软件包yum remove <packages> 卸载指定的软件包yum groupinstall <groupnames> 安装指定软件组中的软件包yum groupupdat <groupnames> 更新指定软件组中的软件包yum groupremove <groupnames> 卸载指定软件组中的软件包yum grouplist 查看系统中已经安装的和可用的软件组yum list 列出资源库中所有可以安装或更新以及已经安装的rpm包yum list <regex> 列出资源库中与正则表达式匹配的可以安装或更新及已经安装的rpm包yum list available 列出资源库中所有可以安装的rpm包yum list available <regex> 列出资源库中与正则表达式匹配的所有可以安装的rpm包yum list updates 列出资源库中所有可以更新的rpm包yum list updates <regex> 列出资源库中与正则表达式匹配的所有可以更新的rpm包yum list installed 列出资源库中所有已经安装的rpm包yum list installed <regex> 列出资源库中与正则表达式匹配的所有已经安装的rpm包yum list extras 列出已经安装的但是不包含在资源库中的rpm包yum list extras <regex> 列出与正则表达式匹配的已经安装的但是不包含在资源库中的rpm包yum list recent 列出最近被添加到资源库中的软件包yum search <regex> 检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值yum provides <regex> 检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值yum clean headers 清除缓存中的rpm头文件yum clean packages 清除缓存中rpm包文件yum clean all 清除缓存中的rpm头文件和包文件yum deplist <packages> 显示软件包的依赖信息当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于 /var/cache /yum 目录下,所需时间可能较长。还可以使用 yum info 命令列出包信息,yum info 可用的参数与 yum list 的相同。yum 命令还可以使用 -y 参数用于用 yes 回答命令运行时所提出的问题。