yum指令

一、什么是yum及其作用

yum(Yellow dog Updater, Modified)它的作用就是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决

yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个 distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了 Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和 apt 相同。apt 原为 debian 的 deb 类型软件管理所使用,但是现在也能用到 RH 门下的rpm

一般这类软件通过一个或者多个配置文件描述对应的 repository 的网络地址,通过 http 或者 ftp 协议在需要的时候从 repository 获得必要的信息,下载相关的软件包。这样,本地用户通过建立不同的 repository 的描述说明,在有 Internet 连接时就能方便进行系统的升级维护工作。另外,如果需要使用代理,可以用http_proxy 和 ftp_proxy 这些 shell 里面标准环境变量的设定

repository是用yum-arch或者createrepo命令创建的,也可以用别人已有的repository 作为镜像,这里部探讨如何建立一个repository

二、安装Yum及相关软件包

1、安装yum软件包

方法一:到官方网站下载安装(http://yum.baseurl.org/
[root@Mylinux ~]# wget http://yum.baseurl.org/download/3.2/yum-3.2.25-0.src.rpm(yum包)
[root@Mylinux ~]# wget http://yum.baseurl.org/download/yum-utils/yum-utils-1.1.24-1.src.rpm(yum相关工具包)

方法二:使用本地系统光盘中的yum的RPM包
[root@Mylinux ~]# cd /cdrom/CentOS
[root@Mylinux CentOS]# rpm -ivh yum-3.2.22-20.el5.centos.noarch.rpm
[root@Mylinux CentOS]# rpm -ivh yum-utils-1.1.16-13.el5.noarch.rpm

2、安装yum的repo配置文件软件包(rpmforge-release软件包)

该软件包含类似yum的其它工具的配置文件:Apt、Smart、Yum、up2date、Red Carpet(http://dag.wieers.com/rpm/packages/rpmforge-release/),当然你也可以使用光盘中的centos-release-5-4.el5.centos.1.i386.rpm,因为它包含yum的repo配置文件

方法一:到官方网站 (https://rpmrepo.org/RPMforge)下载rpmforge-release包
[root@Mylinux ~]# wget http://rh-mirror.linux.iastate.edu/pub/dag/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
[root@Mylinux ~]# rpm   -ivh   rpmforge-release-0.3.6-1.el5.rf.i386.rpm

方法二:直接使用光盘上的centos-release安装包
[root@Mylinux ~]# cd /cdrom/CentOS
[root@Mylinux CentOS]# rpm   -ivh   centos-release-5-4.el5.centos.1.i386.rpm

三、yum配置文件详解(yum.conf与*.repo)

1、实例一:yum + rpmforge-release
(yum-3.2.22-20.el5.centos.noarch.rpm 、yum-utils-1.1.16-13.el5.noarch.rpm、rpmforge-release-0.3.6-1.el5.rf.i386.rpm)

(1)安装完yum软件包后,会生成 一个yum的主配置文件:/etc/yum.conf

(2)安装完rpmforge-release软件包后,会生成两个yum的repo配置文件: mirrors-rpmforge (repository server的网址列表)和rpmforge.repo

注意:由于mirrors-rpmforge 文件中的所有网址列表中的网站的子目录repodata子目录中找不到那三个重要的文件,所以会报错!

2、实例二:yum + centos-release
(yum-3.2.22-20.el5.centos.noarch.rpm  、yum-utils-1.1.16-13.el5.noarch.rpm、centos-release-5-4.el5.centos.1.i386.rpm,默认安装完centos(rhel的克隆版)后,就已经把这两个软件包安装上了)

1)yum主配置文件:/etc/yum.conf(即:yum的全局设置文件,一般没有必要去修改)

yum.conf配置文件
[main]
cachedir=/var/cache/yum yum缓存的目录,该目录用于存储下载的RPM软件包和RPM数据库,例如:当你安装一个软件包时,在这个目录下对应的子目录( base/packages )中先下载这个软件包,然后再进行安装软件包,但是安装完后,它不会自动删除这个下载的软件包,所以占空间,但可以手动删除
keepcache=1 值可以是1和0,表示是否要缓存已安装成功的那些RPM包及头文件,默认值为1,表示缓存这些RPM包和头文件,作用:下一次安装相同的RPM包的时,yum就不用下载了,直接可以从缓存(/var/cache/yum…)安装些RPM包
reposdir 设置.repo配置文件所存放的目录,默认是: /etc/yum.repos.d、             /etc/yum/repos.d
assumeyes=0 值可以是1和0,表示是否安装RPM包时直接自动确认应答,而不用手动确认,默认值为0:表示要手动确认
alwaysprompt=1 值可以是1和0,表示是否安装RPM包时总是要手动确认,默认值为1:表示要手动确认
retries=2 网络连接发生错误后的重试次数,如果设为0,则会无限重试
debuglevel=2 除错级别:0-10
logfile=/var/log/yum.log yum的日志文件
pkgpolicy=newest 包的策略:newest和last,作用:如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest
distroverpkg=redhat-release 指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release(例如:centos-release、rpmforge-release等),也可以是安装的任何针对自己发行版的rpm包
tolerant=1 也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装:1.i386.rpm、2.i386.rpm、3.i386.rpm这三个包,而其中3.i386.rpm在此之前已经安装了,如果现在你将tolerant的值设为1,则yum不会出现错误信息。默认是0
exactarch=1 可选值有两个1和0,表示是否只升级和你安装软件包cpu体系一致的包,默认值为1:表示如果你已经安装了一个i386的包,那么就不会再安装相同的i686的包
obsoletes=1 该参数主要与升级有关
gpgcheck=1 是否进行gpg校验,默认是进行检验的
plugins=1 当要使用plugin(例如:python)时,plugins的值要设置成1
metadata_expire=1800 Metadata的过期时间,单位为秒
exclude=…. 排除某些软件在升级名单之外,可以用通配符(例如:*与?),列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用