必须更换国内Yum源,CentOS 7官方源已停更,CentOS 8/Stream及Rocky、AlmaLinux等默认源在国内常超时或404;需按版本选对应阿里云repo文件,备份原配置后下载新源并执行yum clean all && yum makecache刷新缓存,最后用yum repolist验证是否启用国内域名源。

直接换源是必须操作,不是可选项。CentOS 7 官方源已停更,CentOS 8/Stream、Rocky、AlmaLinux 等默认源在国内常超时或返回 404,不换就卡在 yum makecache 或报错。
确认系统版本再选对应源文件
不同发行版和版本用的 repo 文件不同,错配会导致 yum repolist 显示空或提示仓库重复:
- CentOS 7:用
https://mirrors.aliyun.com/repo/Centos-7.repo - CentOS 8:用
https://mirrors.aliyun.com/repo/Centos-8.repo(它会覆盖 BaseOS/AppStream/PowerTools) - RHEL 8/9、Rocky 8/9、AlmaLinux 8/9:不能只改 CentOS-Base.repo,需分别配置
baseos和appstream的独立 repo 文件 - 不确定版本?运行
cat /etc/redhat-release或rpm -q centos-release
三步连做:备份 → 覆盖 → 清缓存
顺序不能颠倒,缺一不可:
- 先备份全部 repo:
sudo mkdir -p /etc/yum.repos.d/backup && sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ - 再下载新源(以 CentOS 7 为例):
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo - 最后强制刷新:
sudo yum clean all && sudo yum makecache
只改文件不清理缓存,yum 仍读旧元数据;只清缓存不换文件,照样失败。
验证是否真正生效
运行 yum repolist,检查输出是否满足以下三点:
- 仓库 URL 中包含
aliyun、tuna或ustc等国内域名 - 状态列为
enabled,不是disabled或空白 - 不出现
repomd.xml not found或0 packages等提示
如果 yum install httpd 仍报 404,大概率缺 EPEL 源:sudo yum install epel-release -y。
CentOS 8+ 用户注意多 repo 冲突
系统默认自带多个 repo 文件(如 CentOS-AppStream.repo、CentOS-PowerTools.repo),仅替换 CentOS-Base.repo 不够。建议统一用阿里云提供的完整版:Centos-8.repo 会自动覆盖所有必要仓库。若手动编辑,需确保每个 .repo 文件中的 baseurl 都指向国内地址,并禁用 mirrorlist 行(加 # 注释)。











