yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http 或ftp 站点,也可以是本地软件池,但必须包含rpm 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。
yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。
yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。
yum 可以同时配置多个资源库(Repository)(/etc/yum.repos.d/),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。
yum可以通过rpm卸载和安装或是升级,例如在配置网络yum源时升级通过rpm升级
命令
yum [参数] [命令] [软件名]
参数:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
命令:要进行的操作。
package:操作的对象。
yum常用命令
yum install <软件名> 安装指定的软件
yum remove <软件名> 卸载删除指定的软件
yum info <软件名> 显示安装包的信息
yum update 更新所有的软件
yum update <软件名> 更新指定的软件
yum search <关键字> 查找包含关键字的软件包
yum list 列出所有可安装的软件
yum check-update 列出所有可更新的软件
yum groups or yum grouplist 查看所有的可以批量安装的程序组
yum groupinstall
yum groupupdate
yum groupinfo
yum repolist 查看开启的资源库
yum repolist all 查看所有的资源库
yum provides <软件名> 列出包中的文件
yum makecache 建立缓存
其中如果没有缓存的情况下执行yum repolist,yum makecache,yum list都会建立缓存
关于清除缓存
yum 会把下载的软件包和header存储在cache中,而不会自动删除。假如我们觉得他们占用了磁盘空间,能够使用yum clean指令进行清除,更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包
缓存目录/var/cache/yum
yum clean or yum clean all 清除缓存目录下的软件包以及旧的headers
yum clean packagename 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的headers
yum clean oldheaders 清除缓存目录下旧的headers
关于yum源
[root@localhost yum.repos.d]# cp rhel-source.repo rhel6.repo //配置文件必须以.repo结尾 [root@localhost yum.repos.d]# vim rhel6.repo [rhel-6] //中括号里内容要求唯一,但不要出现特殊字符 name=Red Hat Enterprise Linux 6 //此为描述信息,可以看情况填写 baseurl=file:///media/ //此项为yum软件仓库位置,本地yum源指向光盘挂载点 enabled=1 //此项为是否开启,1为开启0为不开启 gpgcheck=1 //此项为是否检查签名,1为监测0为不检测 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //签名认证信息的路径
关于/etc/yum.conf
[main] cachedir=/var/cache/yum
//yum 缓存的目录,yum 在此存储下载的rpm 包和数据库,默认设置为/var/cache/yum keepcache=0
//安装完成后是否保留软件包,0为不保留(默认为0),1为保留 debuglevel=2
//Debug 信息输出等级,范围为0-10,缺省为2 logfile=/var/log/yum.log
//yum 日志文件位置。用户可以到/var/log/yum.log 文件去查询过去所做的更新。 pkgpolicy=newest
//包的策略。一共有两个选项,newest 和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository 中同时存在,yum 应该安装哪一个,如果是newest,则yum 会安装最新的那个版本。如果是last,则yum 会将服务器id 以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。
distroverpkg=redhat-release
//指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm 包。 tolerant=1
//有1和0两个选项,表示yum 是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum 不会出现错误信息。默认是0。 exactarch=1
//有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包,例如,yum 不会将i686的软件包安装在适合i386的系统中。默认为1。 retries=6
//网络连接发生错误后的重试次数,如果设为0,则会无限重试。默认值为6.
obsoletes=1
//这是一个update 的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。 plugins=1
//是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件。 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum # Note: yum-RHN-plugin doesn't honor this. metadata_expire=1h installonly_limit = 5 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d