1.YUM概述
Yum全称Yellow dog Updater Modified,是一个在Fedora、RedHat、CentOS中的shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,可以自动处理依赖关系,并且一次性安装所有依赖的软件包,无需繁琐地一次次下载、安装。
Yum提供了查找、安装、卸载某一个、一组甚至全部软件包的命令,而且命令简介而又好记。
Yum是杜克大学为了提高RPM软件包安装效率而开发的一种软件包管理器,起初由yellow dog这一发行版的开发者Terra Soft研发,用python编写完成,当时叫做yup(yellow dog updater),后经杜克大学的Linux@Duke开发团队进行改进,遂有此名。
Yum的宗旨是自动化地升级、安装、卸载rpm包,收集rmp包的相关信息,检查依赖性并自动提示用户解决。
Yum的关键之处是要有可靠的repository,也就是软件的仓库,它可以是http站点、ftp站点、本地软件池,但必须包含rpm的header,header包括了rpm包的各种信息,包括描述、功能、提供的文件、依赖关系等。正是收集了这些header并加以分析,才嫩自动化地完成余下的任务。
2.YUM配置
Yum的理念是使用一个中心仓库(Repository)管理一部分甚至一个distribution的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、卸载等操作,减少了Linux用户一直头疼的dependencies的问题。这一点上,yum和apt相同,apt原为debian的deb类型软件管理所使用,但是现在也能用到RedHat门下的rpm。
Yum可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm包时遇到的依赖性问题,保持与rpm数据库的一致性。
Yum的配置文件分为两部分:main和repository。
2.1.main
Main部分定义了全局配置选项,整个yum配置文件应该只有一个main,常位于/etc/yum.conf中。内容例如下所示:
[main]
cachedir=/var/cache/yum //yum缓存目录,yum在此存储下载的rpm包和数据库,默认设置为/var/cache/yum
keepcache=0 //安装完成后是否保留软件包,0表示不保留(默认值),1表示保留。
debuglevel=2 //Debug信息输出等级,范围是[0-10],默认值为2。
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,也可以是安装的任何针对自己发行版本的rpm包。
tolerant=1 //有1和0两个枚举值,默认值为1,1表示yum只会安装和系统架构匹配的软件包。例如yum不会将i686的软件包安装在适合i386的系统中。
retries=6 //网络连接发生错误后的重试次数,如果为1,表示会无限重试。默认为6.
obsoletes=1 //这是一个update参数,相当于upgrade表示是否允许更新陈旧的rpm包。1表示允许。
plugins=1 //是否启用插件,1表示启用(默认值),0表示不启用。
exclude=selinux* //排除某些软件在升级名单之外,可以使用通配符,列表中各个项目要用空格分隔,这个对于安装了诸如美化包、中文补丁的朋友特别有用。
gpgcheck=0 //有1和0两个枚举值,分别代表是否进行gpg(GNU Private Guard)校验,以确定rpm包的来源是有效和安全的。默认值为0.
2.2.repository
Repository部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d/目录下的各个配置文件中。
每个repository服务器配置都遵循如下格式:
[serverid]
name=some name for this server
baseurl=path to repository
基本包含3个参数:
(1)serverid:用于区别各个不同的repository,必须有一个独一无二的名称。
(2)name:对repository的描述,支持像$releasever $basearch这样的变量。
(3)baseurl:服务器设置中最重要的部分,只有设置正确,才能获取软件。支持http://、ftp://、file://三种协议。baseurl中可以配置多个url。
(4)enabled:是否启用该源,1表示启用,0表示禁止。
2.3.常用配置变量
在配置中,有一些变量可使用。
(1)$releasever:代表发行的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
(2)$arch:cpu架构体系,如i686、athlon等。
(3)$basearch:cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。
3.Yum组的管理
yum进行安装的时候可以一组一组的进行安装,先来看看有那些组yum grouplist。可用的组有这么多。
输入“yum grouplist”命令,得到如下信息,
图中主要包含以下信息:
(1)Available Environment Groups:首先是可用的环境分组。
(2)Compute Node 计算节点
(3)Infrastructure Server 基础设施服务器
(4)File and Print Server 文件和打印服务
(5)Cinnamon Desktop Cinnamon桌面
(6)Installed Groups:已安装的组,开发工具
(7)Development Tools
(8)Available Groups:可用的组。
如果我们想以组的方式来安装,加入我想安装安全工具:
输入:yum groupinstall "Security Tools"
看到这里询问是否要安装,当然是N不安装了。如果想直接安装,不询问的话,这里也在后面加上选项 –y。
yum groupremove group1 删除程序组group1
4.Yum常用命令
Yum有以下常用的用法。
(1)清除缓存目录下的软件包,清空的是(/var/cache/yum)下的缓存
yum clean packages
(2)清除缓存目录下的 headers
yum clean headers
(3)清除缓存目录下旧的 headers
yum clean oldheaders
(4)清除缓存目录下的软件包及旧的headers
yum clean或yum clean all
等同于“yum clean packages; yum clean oldheaders”,
(5)显示所有已经安装和可以安装的程序包,这些列表里面的包的来源就是/etc/yum.repo.d。
yum list
(6)显示安装包信息rpm
yum list rpm
显示installed ,这里是包名,版本和仓库名
(7)列举可获得包
yum list httpd
这里是available,说明还没有安装。
(8)显示安装包rpm的详细信息
yum info rpm
(9)安装httpd包
yum -y install httpd
如果你不加-y他会问你要不要安装。如果你想自己来控制有些包是否安装,这里不要加-y,如果你想自动安装,不进行交互,这里加入-y。这个就是yum 的安装了,非常简单。
(10)删除程序包httpd
yum remove httpd
也就是卸载。
(11)查看程序rpm依赖情况
yum deplist rpm
(12)检查可更新的程序
yum check-update
(13)全部更新,升级所有包
yum update
包括升级软件和系统内核,这就是一键升级。他可以更新CentOS的内核到最新版本。
(14)更新指定程序包package1
yum update package1
(15)升级指定程序包package1
yum upgrade package1