CentOS 7 已于 2024-06-30 EOL(停止维护),官方源
mirrorlist.centos.org已下线,默认的阿里云源文件 (mirrors.aliyun.com/repo/Centos-7.repo) 仍指向旧地址,会导致yum makecache报Could not resolve host或404。解决方案:切换到阿里云的 Vault 归档仓库(
mirrors.aliyun.com/centos-vault/),这是阿里云为 EOL 系统维护的镜像。
1. 备份原 repo
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/backup/CentOS-Base.repo.bak
2. 写入 Vault 版 repo 文件
cat > /etc/yum.repos.d/CentOS-Base.repo <<'EOF'
[base]
name=CentOS-7 - Base - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-7 - Updates - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-7 - Extras - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
EOF
💡
7.9.2009是 CentOS 7 的最终版本号,固定这个版本可以避免 Vault 仓库路径变动导致 yum 失效。如果你想锁到更老的版本(比如7.6.1810),把上面三处路径里的7.9.2009替换即可。
3. 清理缓存并重建
yum clean all
yum makecache
执行完 yum makecache 没有报错,出现 Metadata Cache Created,即表示源切换成功。
4. 验证
# 测试 base 源是否可用
yum repolist
# 期望输出里能看到 base/7 和 extras/7 等条目
# repolist: XXXX
# repo id repo name status
!base/7/x86_64 CentOS-7 - Base enabled: XXXX
!extras/7/x86_64 CentOS-7 - Extras enabled: XXX
!updates/7/x86_64 CentOS-7 - Updates enabled: XXXX
5. 可选:同步 EPEL 源
CentOS 7 的 EPEL 源也迁到了 Vault:
cat > /etc/yum.repos.d/epel.repo <<'EOF'
[epel]
name=Extra Packages for Enterprise Linux 7 - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/epel-archive/7/$basearch
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel-archive/RPM-GPG-KEY-EPEL-7
EOF
yum clean all
yum makecache
常见问题
| 报错 | 原因 | 修复 |
|---|---|---|
Could not resolve host: mirrorlist.centos.org |
还残留老 repo | 确认 /etc/yum.repos.d/CentOS-Base.repo 已是 Vault 版本,删掉其他 .repo |
404 Not Found |
版本号路径错误 | 把 7.9.2009 改成 Vault 里实际存在的目录 |
GPG key retrieval failed |
gpgkey 路径变了 | 用本文提供的 RPM-GPG-KEY-CentOS-7 路径 |
No package xxx available |
该包没归档到 Vault | 升级到 CentOS Stream / Rocky / AlmaLinux,或自建 yum 仓库 |
长期建议
Vault 源是短期过渡方案,阿里云不一定永久保留归档目录。生产环境建议:
- 升级到 CentOS Stream 8/9 — RHEL 滚动更新分支,持续维护
- 迁移到 Rocky Linux 或 AlmaLinux — RHEL 1:1 兼容二进制,社区活跃
- 新业务直接上容器化 — 减少对宿主 OS 包管理的依赖
相关阅读
- centos7源更换为国内163源 — 2023 年的 163 源方案,EOL 后 163 也可能失效,仅供参考