这篇博客记录一下linux系统下YUM软件源的配置,操作环境为centos6

一、Yum

Yum是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum的工作需要两部分来合作,一部分是yum服务器,还有就是client的yum工具。
yum服务器所有要发行的rpm包都放在yum服务器上以提供别人来下载,rpm包根据kernel的版本号,cpu的版本号分别编译发布。yum服务器只要提供简单的下载就可以了,ftp或者httpd的形式都可以。yum服务器有一个最重要的环节就是整理出每个rpm包的基本信息,包括rpm包对应的版本号,conf文件,binary信息,以及很关键的依赖信息。在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张”清单”,这张”清单””就是描述每个rpm包的spec文件中信息。
yum client端client每次调用yum install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的配置文件(即yum源),这些配置文件指定了yum服务器的地址。yum会定期去”更新”yum服务器上的rpm包”清单”,然后把”清单”下载保存到yum自己的cache里面,根据/etc/yum.conf里配置(默认是在/var/cache/yum下面),每次调用yum装包的时候都会去这个cache目录下去找”清单”,根据”清单”里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,然后再去yum服务器下载rpm包安装。(前提是不存在rpm包的cache)

二、软件源配置

各大开源镜像站汇总:https://zhuanlan.zhihu.com/p/54573023

配置文件需要放在/etc/yum.repos.d下,并需要以.repo结尾

1
2
3
4
5
6
7
8
9
10
[root@localhost yum.repos.d]# ll
总用量 44
-rw-r--r--. 1 root root 1664 1023 2020 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 1023 2020 CentOS-CR.repo
-rw-r--r--. 1 root root 649 1023 2020 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 1023 2020 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 1023 2020 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 1023 2020 CentOS-Sources.repo
-rw-r--r--. 1 root root 8515 1023 2020 CentOS-Vault.repo
-rw-r--r--. 1 root root 616 1023 2020 CentOS-x86_64-kernel.repo

我们可以选用现有的repo文件,用阿里云开源镜像站做个示范,选择自己需要的repo文件,下载到/etc/yum.repos.d目录,下载完成后需要对yum的缓存进行清除和更新

1
2
3
wget -O /etc/yum.repos.d/CentOS-Base-163.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
yum clean all #清除缓存
yum makecache #生成缓存

我们也可以自己写配置文件,以gitlab镜像源配置为例

1
2
3
4
5
6
7
8
9
10
11
vim /etc/yum.repos.d/gitlab-ce.repo

#文件内容
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

yum clean all #清除缓存
yum makecache #生成缓存