前边几篇有关yum的文章一直在提到一个概念“yum源”,那么什么叫做yum源呢?就是我们使用yum install或者yum  update或者yum info或者yum list的时候,yum怎么知道去哪个地方去获取要安装的rpm包,肯定是linux里面已经指定好了的,这个指定的地方就是就是个网址,它指定了yum去哪里找寻rpm包来进行安装、更新、或者获取查询的rpm包的信息。也就是说yum源就是yum命令获取rpm包的地方。也被称作yum仓库,就像java里面的maven也要有个仓库一样。

        yum的配置文件有两种,一个是主配置文件(/etc/yum.conf),一个是各个仓库的配置文件,在/etc/yum.repos.d/目录下。主配置文件里面的配置针对各个仓库的配置文件(/etc/yum.repos.d/)都生效,各个仓库的配置文件里面的配置可以覆盖主配置文件,也就是说优先级比主配置文件yum.conf高。

一、我们先来聊聊主配置文件yum.conf,"cat/etc/yum.conf"得到内容如下:

[main]
cachedir=/var/cache/yum/$basearch/$releasever   #yum 缓存的目录,yum 在此存储下载的rpm 包和数据库
keepcache=0  #安装完成后是否保留软件包,0:不保留,1:保留
debuglevel=2  #调试信息输出等级,范围为0-10,缺省为2
logfile=/var/log/yum.log  #yum 日志文件位置。
exactarch=1   #1:yum只会安装和系统架构(i386,i686等叫做系统架构)匹配的软件包  0:和系统架构不匹配的包也可能被安装。
obsoletes=1  #
gpgcheck=1
plugins=1   #是否启用插件,1:允许,0:不允许。我们一般用yum-fastestmirror这个插件。
installonly_limit=5  
bugtracker_url=                &ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

这里我只是解释了一下这个文件里面我知道的选项的含义 ,我们并不需要对这个文件做更改。

二、各个仓库的配置文件(/etc/yum.repos.d/)

我们来看看前边文章里面提到的两个问题:

 

 

    1.第一张图片的红框里面为什么会重现aliyun(阿里云),163(网易)的网址?我的centos是6.5的,难道安装好centos之后就会默认从这里下载rpm包?

    2.第二张图片里面的Repository以及该列下边的updates、base是什么意思?对,updates、base都是仓库名,这里就牵涉到了yum源的知识。

先来看看仓库Repository列下面的updates、base在哪里配置,切换到仓库配置文件所在目录下:

[[email protected] yum.repos.d]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# ls
CentOS-Base.repo   CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo

我们要说的只有“CentOS-Base.repo”和“CentOS-Media.repo”两个文件,其他两个不常用。

查看“CentOS-Base.repo”文件内容,摘录如下:

[base]  #yum安装时使用的仓库名,就是上边图片中Repository列中显示的名字
name=CentOS-$releasever - Base  #描述性文字
#可用的地址列表
mirrorlist= 
#yum源的地址可以通过一个地址列表mirrorlist指定,也可以单独指定一个地址作为yum源
#baseurl= 
#1:对下载的rpm包进行检查,0:不进行安全性检查
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#类似base
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

    哦,明白了,原来Repository列下边的updates、base都是yum仓库的名字啊,每个仓库的地址是通过mirrorlist指定个地址集合或者baseurl指定一个地址来设置的。那上边的第二个问题就解决了,那么第一个问题呢,也就是为什么会出现aliyun(阿里云),163(网易)的网址呢?

这里我们看base仓库的mirrorlist网址"http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os "里面的$releasever指定的操作系统的版本,是个整数,我的linux是centos6.5,这里$releasever的值就是6了;$basearch指的是系统的架构,我的是32位机器,因此这里时i386,那么我们拼出的网址就是“http://mirrorlist.centos.org/?release=6&arch=i386&repo=os”,访问一下:

[yum]03.yum源的两类配置文件解析

哦,原来如此,yum还是比较智能,它会在配置文件给出的地址集合中选择速度最快的来下载rpm包,因此才出现了上面的网易和阿里云,前面提出的第一个问题也就解决了。好,这就是yum源的原理,希望你看后不再对yum命令如雾里看花一般。接下来的文章我们来看看如何配置本地yum源和如何指定具体的国内yum源。

相关文章:

  • 2021-09-08
  • 2022-01-01
  • 2021-11-05
  • 2021-12-07
  • 2021-11-29
  • 2022-12-23
  • 2021-09-11
猜你喜欢
  • 2021-12-19
  • 2022-12-23
  • 2021-11-19
  • 2022-02-09
  • 2022-12-23
  • 2021-12-14
  • 2021-10-14
相关资源
相似解决方案