【转帖】YUM详解
1. YUM简介
YUM,Yellowdog Updater Modified,主要功能是方便的添加/删除/更新RPM包,能自动解决包的倚赖性问题,便于管理大量系统的更新问题
2. YUM特点
(1) 可以同时配置多个资源库(Repository)
(2) 简洁的配置文件(/etc/yum.conf)
(3) 自动解决增加或删除rpm包时遇到的倚赖性问题
(4) 保持与RPM数据库的一致性
3. YUM安装
# rpm -ivh yum-xxx.noarch.rpm
4. YUM配置
yum的一切配置信息都储存在一个叫yum.conf的配置文件中,通常位于/etc目录下,这是整个yum系统的主要文件。
# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
retries=1
cachedir:yum缓存目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。
debuglevel:除错级别,0──10,默认是2。
logfile:yum的日志文件,默认是/var/log/yum.log。
pkgpolicy:包策略,一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。
distroverpkg:指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。
exactarch:有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用1686的包来升级。
retries:网络连接发生错误后的重试次数,如果设为0,则会无限重试。
tolerent:有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,如要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum不会出现错误信息。默认是0。
除了上述之外,还有一些可以添加的选项,如:
exclude=:排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。
gpgchkeck:有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认好像也是检查的。
5. YUM命令
(1) yum常用命令
# yum check-update //列出所有可更新的软件清单
# yum update //安装所有更新软件
# yum install *** //仅安装指定的软件
# yum update *** //仅更新指定的软件
# yum list //列出所有可安裝的软件清单
(2) YUM安装/删除软件
# yum install //用YUM安装软件包
# yum remove //用YUM删除软件包
(3) YUM查询软件信息
# yum search //使用YUM查找软件包
# yum list //列出所有可安装的软件包
# yum list updates //列出所有可更新的软件包
# yum list installed //列出所有已安装的软件包
# yum list extras //列出所有已安装但不在 Yum Repository 內的软件包
# yum list *** //列出所指定的软件包
# yum info //使用YUM获取软件包信息
# yum info updates //列出所有可更新的软件包信息
# yum info installed //列出所有已安裝的软件包信息
# yum info extras //列出所有已安裝但不在 Yum Repository 內的软件包信息
# yum provides //列出软件包提供哪些文件
(4) 清除YUM缓存
# yum clean packages //清除缓存目录(/var/cache/yum)下的软件包
# yum clean headers //清除缓存目录(/var/cache/yum)下的 headers
# yum clean oldheaders //清除缓存目录(/var/cache/yum)下旧的 headers
# yum clean, yum clean all (= yum clean packages; yum clean oldheaders) //清除缓存目录(/var/cache/yum)下的软件包及旧的headers