YUM命令简述


发布于 2017-07-22 / 14 阅读 / 0 评论 /
Yum全称Yellow dog Updater Modified

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