福否阿卡 · 博客福否阿卡 · 博客

福否阿卡
一个励志成为全栈的90后小伙子~

Linux 下的 yum 源详解

Linux 下的 yum 源详解

YUM是什么?

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

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

YUM客户端的配置文件?

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

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

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

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

如下图所示:

其中这四个文件中,默认只有第一个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服务器额外附加或者是升级是用到的软件仓库,分别指向不同的路径软件仓库。

原文地址:http://blog.51cto.com/11970509/2104170

--END--

本文由福否阿卡创作,文章地址:https://blog.suyc.cn/index.php/archives/13.html

采用知识共享署名3.0国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。

发表评论:抢沙发

    昵称 (必填)
  • 邮箱 (必填)
  • 网址