写在前面

为什么要更换yum源

很多时候CentOS默认的yum源不一定都是国内镜像,所以导致yum在线安装和更新速度都不是很理想,这时候就需要把CentOS默认的yum源更换为国内镜像站点。而国内主要的Linux开源软件源为网易和阿里

为什么要安装EPEL源

通过yum源安装某些安装包时,会发现某些形如没有可用的安装包的提示,这就说明在yum源中没有对应的安装包。其实,在Linux操作系统可用的软件源并不仅仅只有yum,其中另一个更为出名的就是EPEL(企业版Linux软件附加包"Extra Packages for Enterprise Linux",是Fedora的一个项目),下面是一段 Fedora 对 EPEL 项目的说明:
EPEL-Fedora Project WiKi

企业版 Linux 附加软件包(以下简称 EPEL)是一个 Fedora 特别兴趣小组,用以创建、维护以及管理针对企业版 Linux 的一个高质量附加软件包集,面向的对象包括但不限于 红帽企业版 Linux (RHEL)、 CentOS、Scientific Linux (SL)、Oracle Linux (OL) 。
EPEL 的软件包通常不会与企业版 Linux 官方源中的软件包发生冲突,或者互相替换文件。EPEL 项目与 Fedora 基本一致,包含完整的构建系统、升级管理器、镜像管理器等等。

【注】:

1、本篇操作主要针对的是CentOS7的用户,CentOS其他用户只需修改下载新的yum源配置文件时的链接即可,对于其他操作系统的用户仅供参考
2、以下所有操作都需要在root权限下进行
3、期间会耗费将近1G的流量,建议在wifi下尝试(流量多的无所谓)

更换yum源

进入yum配置文件所在文件夹

cd /etc/yum.repos.d/

备份系统自带的yum源配置文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.save

只需添加后缀区分开来就行,旨在若更换yum失败只需恢复自己的备份就行(即去掉后缀)

下载新的源配置文件到该目录下

阿里源的下载方式:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

网易源的下载方式:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

清空系统所有yum源

yum clean all

生成新的yum缓存

yum makecache

至此,yum已更换成功

相关报错

在改动过/etc/yum.repos.d目录下的文件后,再用yum下载软件包的时候,可能会出现以下报错:

Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration

分析上面的报错,主要还是软件源文件出现了问题,在进入源的配置文件(/etc/yum.repos.d/)后,使用查看指令,会发现有很多以.repo文件名结尾的:

ll //查看当前目录下的文件详细信息

centos9无法更新安装源 centos安装源错误_CentOS


从对报错的内容分析来看,应该是存在重复的软件源,所以可以尝试着删除多余的软件源

有如下步骤:

1、在尝试删除之前,先对当前目录下所有文件进行备份

zip centos7-repo.zip /etc/yum.repos.d/*

2、然后执行删除

rm -rf CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo

3、把CentOS7-Base-163.repo中的内容复制进CentOS-Base.repo,即覆盖写入

cp -p CentOS7-Base-163.repo CentOS-Base.repo

4、删除CentOS7-Base-163.repo

rm -rf CentOS7-Base-163.repo

5、重新加载缓存

yum clean all
yum makecache

至此,对该错误的解决已经完成,此时,再用yum指令时就不会出现类似错误

安装EPEL源

安装EPEL源

yum install -y epel-release

安装完成后,在/etc/yum.repos.d/目录下会多出来两个文件,这两个文件就是EPEL源的配置文件,如下:

epel.repo
epel-testing.repo

查看epel.repo文件中的内容就可以发现其中的地址指向的是:https://mirrors.fedoraproject.org/,而epel-testing.repo这个文件中的软件源的地址也是指向的是https://mirrors.fedoraproject.org/
为了加快软件安装速度,我们也可以将其更改为国内的EPEL源。

进入目录

cd /etc/yum.repos.d/

下载阿里云EPEL源

wget http://mirrors.aliyun.com/repo/epel-7.repo

备份官方提供的EPEL源配置文件

cp -p epel.repo epel.repo.bak
cp -p epel-testing.repo epel-testing.repo.bak

下面三步是为了防止安装epel源后出现形如本文中第二版块的yum源配置文件重复而引起的报错:

删除epel-testing.repo文件

rm -rf epel-testing.repo

将epel-7.repo中的内容覆盖写入到原来的epel.repo文件中

cp -p epel-7.repo epel.repo

删除epel-7.repo文件

rm -rf epel-7.repo

重新生成缓存

yum clean all
yum makecache

至此,EPEL源安装及更换站点完成