🗄
VPS

如果你仍在维护一台运行CentOS 5的服务器或VPS,并在执行yum update时遇到以下错误:

http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=os
Error: Cannot find a valid baseurl for repo: base

不必惊慌——软件包还在。你只需将软件仓库配置指向正确的存档镜像(Vault Mirror)。本指南涵盖2026年仍可用的所有镜像以及完整修复方案。

快速总结:将baseurl改为http://archive.kernel.org/centos-vault/5.11/代替旧的mirrorlist。vault.centos.org强制使用HTTPS,而CentOS 5的旧版yum/curl无法处理现代TLS。

为何CentOS 5上的yum会失效

CentOS 5于2017年3月31日终止支持。此后,CentOS项目关闭了公共镜像服务器,将所有软件包移至存档仓库(Vault)。你系统中的/etc/yum.repos.d/CentOS-Base.repo仍指向mirrorlist.centos.org,而该地址已不再提供CentOS 5的条目——因此yum立即报错。

此外,vault.centos.org现在强制将HTTP重定向至HTTPS。CentOS 5内置的旧版curl和openssl无法协商现代TLS加密套件(TLS 1.2/1.3),因此即使URL正确,连接也会失败。

CentOS 5.11是CentOS 5的最终版本(2014年9月发布)。存档仓库路径为vault.centos.org/5.11/或archive.kernel.org/centos-vault/5.11/。

2026年仍可用的镜像

目前有两个来源仍提供CentOS 5软件包:

镜像基础URL协议与CentOS 5兼容
archive.kernel.orghttp://archive.kernel.org/centos-vault/5.11/HTTP✓ 推荐
vault.centos.orghttps://vault.centos.org/5.11/仅HTTPS✗ TLS版本过旧

archive.kernel.org/centos-vault是CentOS 5的推荐选择。它通过纯HTTP提供内容,旧版yum客户端无需任何SSL/TLS改动即可下载。

用sed快速修复(最快方法)

以root身份执行以下命令:

# 第一步:备份原始软件仓库配置文件
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

# 第二步:注释掉所有mirrorlist行
sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-Base.repo

# 第三步:将baseurl指向kernel.org存档仓库
sed -i 's|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=http://archive.kernel.org/centos-vault/5.11|g' /etc/yum.repos.d/CentOS-Base.repo

# 第四步:清理缓存并验证
yum clean all
yum repolist

注意:若你的.repo文件中的baseurl与上述模式不匹配(自定义配置或格式不同),请参考下一节手动编辑。

手动修复(若sed模式不匹配)

使用vi /etc/yum.repos.d/CentOS-Base.repo打开文件并更新为以下内容:

[base]
name=CentOS-5.11 - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://archive.kernel.org/centos-vault/5.11/os/$basearch/
gpgcheck=1
gpgkey=http://archive.kernel.org/centos-vault/RPM-GPG-KEY-CentOS-5

[updates]
name=CentOS-5.11 - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://archive.kernel.org/centos-vault/5.11/updates/$basearch/
gpgcheck=1
gpgkey=http://archive.kernel.org/centos-vault/RPM-GPG-KEY-CentOS-5

[extras]
name=CentOS-5.11 - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://archive.kernel.org/centos-vault/5.11/extras/$basearch/
gpgcheck=1
gpgkey=http://archive.kernel.org/centos-vault/RPM-GPG-KEY-CentOS-5

[centosplus]
name=CentOS-5.11 - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://archive.kernel.org/centos-vault/5.11/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://archive.kernel.org/centos-vault/RPM-GPG-KEY-CentOS-5

然后执行:

yum clean all
yum repolist
yum update

先测试镜像连通性

修改配置前,先验证镜像是否可以访问:

curl -I http://archive.kernel.org/centos-vault/5.11/os/x86_64/
# 应返回 HTTP/1.1 200 OK

# 检查服务器架构
uname -m
# x86_64 = 64位,i686 = 32位

对于32位系统,请将所有URL和软件仓库文件中的x86_64替换为i386。

预期的yum repolist输出:你应看到repo: base、updates、extras及其软件包数量(base通常列出约2,000到3,000个软件包)。

修复GPG密钥错误

若遇到GPG密钥错误,如GPG key retrieval failed,执行:

# 直接从存档仓库导入GPG密钥
rpm --import http://archive.kernel.org/centos-vault/RPM-GPG-KEY-CentOS-5

# 或临时跳过gpgcheck(不推荐用于生产环境)
yum --nogpgcheck install [软件包名]

若服务器完全没有网络访问,请手动下载RPM软件包并使用rpm -ivh package.rpm安装。

替代方案:CentOS 5 Docker镜像

对于构建或测试环境,使用Docker镜像比维护一套实体CentOS 5安装更为简洁:

# 拉取已预配置存档仓库的镜像
docker pull astj/centos5-vault
docker run -it astj/centos5-vault /bin/bash

# 32位版本
docker pull themattrix/centos5-vault-i386

这些Docker镜像的/etc/yum.repos.d/已预先指向存档仓库——无需任何配置修改,直接执行yum install即可。

何时应迁移出CentOS 5

CentOS 5已超过八年未获安全补丁,存在大量严重的未修补漏洞。请根据你的用途考量:

最接近的迁移目标是AlmaLinux 9或Rocky Linux 9,两者均支持至2032年,且基于与CentOS相同的RHEL源码树构建——应用迁移比迁移至Ubuntu或Debian简单得多。

常见问题解答

2026年还能使用CentOS 5的软件包吗?

可以——所有历史软件包均保存于vault.centos.org/5.11/和archive.kernel.org/centos-vault/5.11/。但自2017年3月终止支持以来未发布任何安全补丁。仅适合用于遗留系统或测试容器。

为何CentOS 5上yum提示"cannot find a valid baseurl for repo: base"?

因为CentOS在终止支持后关闭了公共镜像服务器,将所有软件包移至存档仓库(Vault)。你的/etc/yum.repos.d/CentOS-Base.repo仍指向mirrorlist.centos.org,而该地址已不再提供CentOS 5的条目,因此yum无法解析任何软件包URL。

vault.centos.org与archive.kernel.org/centos-vault有何区别?

vault.centos.org是官方CentOS存档,但强制使用HTTPS,而CentOS 5的旧版yum/curl无法处理现代TLS加密套件。archive.kernel.org/centos-vault提供相同内容但使用纯HTTP,旧版yum客户端无需任何SSL/TLS变更即可连接。

修复yum后还能安装新软件包吗?

可以——yum install和yum update将正常工作。但可用软件包仅限于2017年终止支持时存在的版本,不会出现更新版本,因为存档仓库是一个冻结快照。

我应该从CentOS 5迁移出去吗?

应该,尤其是生产服务器。建议迁移至AlmaLinux 9、Rocky Linux 9或Ubuntu 22.04/24.04,这些系统均在积极接收安全更新。CentOS 5已有超过八年未修补的漏洞,不应处理面向公网的工作负载。

通过AsiaGB将CentOS 5迁移至现代VPS

AsiaGB VPS支持AlmaLinux、Rocky Linux、Ubuntu和Debian,搭载SSD存储,99%正常运行时间保障。告别老旧的CentOS 5,轻松完成迁移。

查看VPS套餐

查看泰国VPS主机全部套餐 →