yum install 卡在正在解析主机,十分钟不动,最后报 Cannot find a valid baseurl。CentOS 7 的官方源早就不能用了,换源是绕不过去的一步。

CentOS 7 在 2024 年 6 月底停止维护,官方镜像陆续下线,原来的 mirrorlist 地址多半 404。国内阿里云、清华、中科大等镜像站还保留归档,换源就是把 /etc/yum.repos.d/ 里的仓库地址指过去。网上搜 centos7换源,出来的大多是这些镜像站提供的 repo 文件。

先备份再动手

进 /etc/yum.repos.d/,把 CentOS-Base.repo 复制一份改名 .bak。改坏了还能还原,这一步别省。目录里如果还有 CentOS-Sources、CentOS-CR 这类文件,一起备份或删掉,避免它们继续指向失效地址。

替换仓库地址的四步

下载镜像站提供的 CentOS 7 repo 文件,覆盖 CentOS-Base.repo;没有现成文件就手动改 baseurl,把 mirrorlist 行注释掉。然后 yum clean all 清缓存,yum makecache 重建元数据。最后 yum repolist 看仓库列表,能列出 base、updates、extras 就基本成功了。

404 了就找 vault 归档

镜像站把 7 移进归档目录后,普通地址会返回 404。把 baseurl 里的 centos 路径改成 centos-vault,或者直接用镜像站给出的 vault 地址。EPEL 源同样要换,装 epel-release 后检查 /etc/yum.repos.d/epel.repo 的地址是否可用;报 Could not resolve host 则是 DNS 问题,和源本身无关,先 ping 一下域名再说。

换完源先验证再装软件

yum makecache 能跑完,只说明元数据下载成功。再执行 yum install -y vim 这类小包试试,看依赖解析和下载是否正常。如果卡在某个包上,多半是该仓库的镜像不同步,换个镜像站重试;装完用 yum history 能回滚出问题的那次操作。

CentOS 7 换源能救急,但系统已经没有安全更新。新项目直接上 Rocky、Alma 或 Ubuntu LTS,老机器留在内网跑稳定业务,别暴露到公网。