是的,centos已全面终止支持:centos 7于2024年6月30日、centos 8于2021年12月31日结束生命周期,官方源路径失效导致404;当前主流替代方案为rocky linux、almalinux和ubuntu lts等。

直接换源或清缓存基本解决不了问题——404 根本不是网络连不通,而是你请求的路径压根不存在了。系统还在找 centos/7/os/,但官方早把这目录删了。
确认系统是否已 EOL(生命周期结束)
CentOS 6、7、8 全部已停止维护,Rocky Linux 8/9 也完成域名迁移。执行 cat /etc/redhat-release 看清版本:
- CentOS 6 → 只剩搜狐镜像可用,
mirrors.sohu.com/centos/6/是最后能用的路径 - CentOS 7(2024-06-30 EOL)→ 必须切到
vault.centos.org或阿里云centos-vault镜像 - CentOS 8(2021-12-31 EOL)→ 官方源彻底下线,
baseurl中的$releasever解析为 8 后,所有/centos/8/路径全部 404 - Rocky Linux 8/9 →
dl.rockylinux.org已停用,必须改用rockylinux.org域名下的新路径
检查 baseurl 是否含未解析变量
报错里出现 %24releasever(即 URL 编码后的 $releasever),说明变量没被替换,yum 直接把字面量发出去了。常见原因:
-
centos-release或rockylinux-release包损坏或缺失:运行rpm -q centos-release或rpm -q rockylinux-release,若无输出,先重装对应包 - repo 文件里写死了
baseurl=http://xxx/centos/$releasever/...,但系统没装centos-release,$releasever就不会展开 - 部分镜像站(如旧版腾讯云)不支持变量重写,只认具体数字路径,比如
/centos/7.9.2009/
临时验证:手动把 $releasever 换成实际值(如 7 或 7.9.2009),用 curl -I 测试该 URL 是否返回 200。
别盲目 clean all,先看错在哪一层
yum clean all && yum makecache 对 EOL 系统无效,因为元数据根本不在那了。真正要做的:
- 先停用所有非必要 repo:
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo,再逐个启用调试 - 禁用
mirrorlist,改用baseurl:注释掉mirrorlist=行,取消注释baseurl=行 - 检查 GPG 密钥路径是否同步失效:Vault 源的
gpgkey地址也要改成centos-vault或rockylinux.org对应路径,否则gpgcheck=1会卡在密钥下载阶段 - IPv6 问题仍存在:某些镜像站(如 163)对 IPv6 支持不稳定,
curl -4能通但yum默认走 IPv6,可临时加ip_resolve=4到 repo 文件中
Rocky Linux 和 CentOS 替代品的处理差异
Rocky Linux 不是 CentOS 的“复刻”,它的 repo 结构和密钥体系已独立演进:
- 不能直接复用 CentOS 的
.repo文件,哪怕只是改个域名 - 必须安装
rockylinux-release包:dnf install -y rockylinux-release,它会自动覆盖/etc/yum.repos.d/rocky.repo - 清华、阿里云等国内镜像站的 Rocky 源地址格式已变,例如阿里云是
https://mirrors.aliyun.com/rocky/$releasever/BaseOS/$basearch/os/,注意路径中多了BaseOS一级 - 若用
dnf(Rocky 8+ 默认),别混用yum命令,二者缓存位置不同,dnf clean all才清得干净
最易被忽略的一点:EOL 系统切 Vault 源后,yum update 虽然能跑通,但不会再有任何安全更新——这不是配置问题,是事实。











