Centos Linux 更换源,原官方源已经不再提供服务
前言
CentOS 7的生命周期已经在2024年6月30日终止(End of Life,EOL),官方将不再对该版本进行问题修复、功能更新以及其他形式的维护支持。这意味着使用 CentOS 7 的用户将面临安全漏洞无法得到修补的风险,同时随着其他软件的更新,可能会出现不兼容的情况。
随着 CentOS 7的生命周期结束,http://mirrorlist.centos.org 也不再提供服务。因为 http://mirrorlist.centos.org 是 CentOS 系统中用于寻找可用软件包镜像的关键服务,意味着 CentOS 用户将无法通过该服务获取最新的镜像列表,会影响软件包的管理功能。
在 CentOS 7中再使用 yum 安装软件包或者编译基于 CentOS 的 Docker 镜像时,会报如下错误:
Could not resolve host: mirrorlist.centos.org
使用 nslookup 看下 http://mirrorlist.centos.org 会发现的确不再提供服务,如下
PS C:\Users\Bingo> nslookup mirrorlist.centos.org 服务器: public1.114dns.com Address: 114.114.114.114 DNS request timed out. timeout was 2 seconds. *** public1.114dns.com 找不到 mirrorlist.centos.org: Non-existent domain
解决方案
CentOS 旧版本的软件包和已不再维护的 CentOS 版本都会被存储到 http://vault.centos.org,所以只需要将 repo 文件的 baseurl 由 http://mirrorlist.centos.org 改为 http://vault.centos.org 即可
1、备份旧的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.old
2、查看Centos系统版本
[root@1drk384l6e8r9t3 ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core)
3、新建新的CentOS-Base.repo并粘贴如下配置保存(自己替换成上一步查询到的版本)
vim /etc/yum.repos.d/CentOS-Base.repo # 粘贴如下配置信息并保存 [base] name=CentOS-$releasever - Base baseurl=http://vault.centos.org/7.9.2009/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever - Updates baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-$releasever - Extras baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
4、清理缓存并生成新的缓存
sudo yum clean all sudo yum makecache
5、运行 yum repolist
命令,确保新源已生效
sudo yum repolist
显示如下
[root@1drk384l6e8r9t3 ~]# sudo yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile repo id repo name status base/x86_64 CentOS-7 - Base 10,072 extras/x86_64 CentOS-7 - Extras 526 updates/x86_64 CentOS-7 - Updates 6,173 repolist: 16,771