马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
2024 年 7 月 CentOS 7 进入 EOL,官方停止维护之后,mirror.centos.org 那个熟悉的地址直接访问不到了,yum 装包和更新会一堆 404。换阿里云源试过之后,有些工具库还是拉不到——原因是那些老版本的仓库文件本身就还指着已经下线的 mirrorlist 地址。这里给一套通用解法:把仓库指向归档站 vault.centos.org,同时把 mirrorlist 关掉、启用 baseurl。
问题出在哪
CentOS 7 停止维护后,官方把新版本仓库挪到了 vault.centos.org,原来的 mirror.centos.org 对新系统不再提供内容。而 /etc/yum.repos.d/ 下各仓库的 .repo 文件里写的是:
mirrorlist=https://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock
这个 mirrorlist 地址已经不返回可用节点列表,yum 顺着它去找镜像就全部落空。换成阿里源之后部分库仍然失败,就是因为阿里镜像只接管了部分仓库,而 baseurl 那一行还是空的、mirrorlist 还开着,yum 不会真正走到配置好的baseurl 上。
处理思路
一句话概括:**把地址指向归档站,同时关掉 mirrorlist、打开 baseurl**。两者必须一起改,只改地址而 mirrorlist 还在,yum 依旧跟着空列表走。
| 要改的点 | 改前 | 改后 |
| mirrorlist.centos.org | 指向已下线的列表服务 | 删掉或注释掉 |
| mirrorlist 行 | 启用(未注释) | 注释掉 |
| vault.centos.org | 不存在的地址 | 作为 baseurl 指向 |
| baseurl 行 | 被 mirrorlist 顶掉或空着 | 启用(去掉注释) |
第一步:进仓库目录看清楚
/etc/yum.repos.d/ 是 yum 源仓库配置的存放位置,进去先看一眼有哪些文件:
cd /etc/yum.repos.d/
ls -lh
常见会看到 CentOS-Base.repo、epel.repo、以及各第三方源。第三方源(epel、docker 等)同样有地址失效的问题,一并处理才不会装一半报错。
第二步:全局替换失效地址
在这个目录里做一次全局替换,把 mirror.centos.org 和 mirrorlist.centos.org 都换成归档站 vault.centos.org。用 vscode 全局搜索替换最省事,命令行可以这样:
sudo sed -i 's#mirror.centos.org#vault.centos.org#g' /etc/yum.repos.d/*.repo
sudo sed -i 's#mirrorlist.centos.org#vault.centos.org#g' /etc/yum.repos.d/*.repo
顺手备份一份原始的,出问题好回滚:
sudo cp CentOS-Base.repo CentOS-Base.repo.bak
第三步:注释 mirrorlist,启用 baseurl
接着把全部 .repo 文件里的 mirrorlist 行注释掉,同时把 baseurl 行前面去掉注释。下面是其中一个例子的形状:
[baseos]
name=CentOS-7 - Base
baseurl=https://vault.centos.org/7.9.2009/os/x86_64/
#mirrorlist=https://vault.centos.org/?release=7&arch=x86_64&repo=os&infra=stock
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centos7
关键点:baseurl 必须指向具体的路径(比如 /7.9.2009/os/x86_64/),而 mirrorlist 那行前面加 #。用编辑器批量改比手敲可靠,改完 cat 出来核对一遍。
第四步:清缓存重建索引
改完必须刷新 yum 缓存,否则它还在用旧的索引:
sudo yum clean all
sudo yum makecache
如果这两步之后 yum repolist 能看到仓库、yum install 包名 能正常解析,就说明源已经通了:
yum repolist
yum update -y
如果还不行
- epel 源单独报错。EPEL 也要按同样思路换到归档地址,或者直接用对应系统的新版本源(Alma / Rocky 的 EPEL)。
- gpg 校验失败。镜像站的 GPG key 路径可能和原来不同,要么对齐 key 位置,要么临时把
gpgcheck=0(不推荐长期使用,安全性差)。
- 架构或版本目录写死。确认 baseurl 里的大版本号和实际系统版本对得上(CentOS 7 一般是 7.9.2009)。
- 干脆换系统。CentOS 7 已经不收安全更新,长期看迁移到 Rocky / Alma / 新版 Ubuntu 才是根治办法,改源只是续命。
整体记住三件事:地址换 vault、mirrorlist 注释掉、baseurl 启用,然后 clean all + makecache。能装包只是第一步,CentOS 7 已 EOL 意味着不再有安全补丁,生产环境建议尽快规划迁移。
qidao123.com企服评测-应用市场 编辑提示
本文由齐道123 IT 运维社区整理,记录 CentOS 7 官方源下线后通过 vault 归档站恢复 yum 可用性的通用做法。操作前请先备份 /etc/yum.repos.d/ 下的原始配置;文中 gpgcheck=0 仅为临时排障建议,长期应保持 GPG 校验开启。CentOS 7 已停止维护,仅在自有或已授权主机上执行,并建议同步规划向受支持发行版的迁移。
|