centos7修改源

CentOS 7 默认的修改 yum 源指向 mirror.centos.org,国内访问速度慢得让人想砸键盘。修改我见过一台刚装好的修改虚拟机,执行 yum update 跑了四十多分钟还没完,修改最后卡在某个包上直接超时。修改换源这事没什么技术含量,修改但不做,修改后续装软件就是修改折磨自己。

先备份原有源文件。修改这一步别偷懒,修改改坏了还能滚回来:

cd /etc/yum.repos.d/ mkdir backup mv *.repo backup/

有人习惯用 cp 而不是修改 mv,留一份原件在目录里。修改也行,修改但 yum 会同时读取所有 .repo 文件,修改新旧混在一起容易出冲突。修改我倾向直接移走,干净。

接下来选一个国内镜像站。阿里云、腾讯云、清华 TUNA、中科大 USTC 都行。阿里云的覆盖最广,二三线城市的机房延迟也低。清华的更新频率高,适合追新版本。我平时用阿里云居多,下面以它为例。

下载对应版本的 repo 文件:

wget -O /etc/yum.repos.d/CentOS-Base.repo \ http://mirrors.aliyun.com/repo/Centos-7.repo

注意 URL 里是 Centos-7.repo,大小写别搞错。Linux 下文件名区分大小写,centos-7.repo 会返回 404。这个坑我踩过,当时盯着终端愣了几秒才反应过来。

文件下载完,打开看一眼。阿里云的 repo 文件里 baseurl 指向 mirrors.aliyun.com,gpgcheck 保持为 1,没问题。有个细节:文件里同时定义了 base、updates、extras 三个仓库,CentOS 7 还有 centosplus 和 fasttrack,阿里云默认没启用,不用管。

清理缓存并重建:

yum clean all yum makecache

makecache 这一步会从新源拉取元数据。如果之前没清缓存,yum 可能仍然用旧的 mirror.centos.org 地址去请求,然后报一堆 Cannot find a valid baseurl 错误。顺序不能反。

看到 Metadata Cache Created 就算成了。测一下速度:

yum install -y vim

正常情况下几秒内完成。如果还是慢,检查 /etc/resolv.conf 里的 DNS 设置,有些内网环境 DNS 解析镜像站域名会绕路。

另外提一句,CentOS 7 在 2024 年 6 月已经停止维护,官方源彻底关闭。现在换源必须用 vault 归档地址或者国内镜像的 centos-vault 路径。阿里云和清华都提供了对应的归档源,把 repo 文件里的 mirrorlist 注释掉,baseurl 改成 vault 地址即可。如果还在用默认源,yum 会直接报 Could not resolve host: mirror.centos.org,不是网络问题,是源本身没了。

换源之后建议跑一次 yum update,把系统补丁打齐。CentOS 7 虽然停更了,但国内镜像站仍然同步着最终的归档版本,日常使用问题不大。生产环境的话,该考虑迁移到 Rocky Linux 或 AlmaLinux 了。