YUM是什么?

      yum(全称为Yellowdog Updater Modified)是一个在CentOS、RedHat和Fedora操作系统中使用的Shell前端软件包管理器。yum主要管理基于rpm的软件包,Centos先将发布的软件放置到YUM服务器内,然后分析这些软件的依赖属性问题,将软件内的记录信息写下来(header)。然后再将这些信息分析后记录成软件相关性的清单列表。这些列表数据与软件所在的位置可以称为仓库(repository)。当客户端有软件安装的需求时,客户端主机会向网络上面的YUM服务器的仓库网址上下载清单,然后通过清单列表的数据与本机RPM数据库已存在的软件数据相比较,就可以安装所有需要的具有依赖属性的软件了。

图片.png

在YUM源服务器中有一张数据表,里边记录了仓库中所有rpm包的名称,版本以及包与包之间的依赖关系,当客户端向服务器请求下载软件包时,服务器会先将这张表发送给客户端。客户端会检索这张表查看是否有自己需要的安装包,并检查依赖关系,如果有依赖关系,客户端会先检查本地有没有依赖关系所需要的文件,如果没有的话向服务器请求并下载缓存至本地。


YUM客户端的配置文件?

repo文件是CentOS、RedHat和Fedora操作系统中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件源。

yum客户端有两个配置文件:

 /etc/yum.conf:为所有仓库提供公共配置,包括yum下载的RPM包的缓存目录,日志所在位置,是否允许更新不同版本的RPM包等等。

/etc/yum.repos.d/*.repo为仓库的指向提供配置。

如下图所示:

图片.png

其中这四个文件中,默认只有第一个Centos-Base.repo文件的YUM源连接时启动的,其他三个文件默认不启动。

repo文件详解?

repo文件是CentOS、RedHat和Fedora操作系统中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件源。

我们以Centos-Base.repo仓库基础配置文件为例

一个标准的centos的repo文件内容如下:

[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

各个选项说明如下:

[base]:代表仓库的名字,中括号一定要存在,里面的名称可以随意,但是不能有两个相同的容器名称。

name:说明一下仓库的意义。

mirrorlist:这个是仓库的镜像站点列表。一般情况下默认是使用此选项。

baseurl:这个最重要,因为后面接的就是仓库的实际地址。mirrorlist是由yum程序自行去找镜像站点,baseurl则是指定固定的一个仓库网址。一个repo文件可以定义多个软件源。

enable=1:就是让这个容器启动,如果不想启动可以使用enable=0.

gpgcheck=1:指定是否需要查阅RPM文件内的数字证书。

gpgkey:就是数字证书的公钥文件所在的位置。


在Centos-Base.repo中还定义的其它的名称的仓库,如:[updates]、[extras]、[centosplus]等等,这些仓库都为YUM服务器额外附加或者是升级是用到的软件仓库,分别指向不同的路径软件仓库。


EPEL源的创建:

         EPEL是企业版 Linux 附加软件包的简称,EPEL是一个由Fedora特别兴趣小组创建、维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目。一般情况下Centos跟RedHat不提供epel源。


首相先下载epel源的软件包:

使用yum install epel-release

也可以使用:

  wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm


当下载成功后yum.repos.d目录下出现关于epel的两个配置文件:

图片.png

清除缓存并生成新的缓存:

yum clean all

yum makecache

列出所有可用仓库:

yum repolist 这是可以看到系统中epel源仓库已加载成功。

图片.png


这时可以使用epel源下载软件,如一些好用体积小的工具htop,glances等等。