RockyLinux配置yum源
RockyLinux默认的yum源指向海外服务器,国内用户下载软件包时经常遇到速度慢、超时甚至失败的问题。
把yum源替换成国内镜像后,安装和更新速度通常会有明显提升。
下面按零基础也能照做的步骤,讲清楚如何备份、修改、验证,以及操作中容易踩的坑。
操作前需要确认的两件事
开始之前,先确认你的系统版本和当前源状态,避免改错文件。
- 查看系统版本:执行
cat /etc/redhat-release,输出会显示类似Rocky Linux release 8.5或Rocky Linux release 9.2。后续配置需要根据主版本号选择对应的仓库地址。 - 检查当前源:执行
yum repolist或dnf repolist,如果显示很多mirrorlist.centos.org或dl.rockylinux.org且下载缓慢,说明需要替换。 - 确保有网络和sudo权限:后续命令需要用
sudo或直接切换到root用户执行。
备份原有repo文件,防止改错无法恢复
系统自带的仓库配置文件位于 /etc/yum.repos.d/ 目录下,文件名通常以 .repo 结尾。
执行以下命令创建备份目录并复制所有repo文件:
sudo mkdir -p /etc/yum.repos.d/backup
sudo cp /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
备份完成后,可以放心修改或删除原文件。
如果后续配置出错,只需把备份文件复制回原目录即可恢复。
替换为国内镜像源
国内主流镜像站(阿里云、腾讯云、华为云等)都提供了RockyLinux的repo文件。
这里以阿里云镜像为例,其他镜像站操作逻辑相同,只需替换URL中的域名。
方法一:直接下载官方提供的repo文件覆盖
阿里云镜像站提供了现成的repo文件,按系统版本选择:
- RockyLinux 8:
sudo curl -o /etc/yum.repos.d/Rocky-Base.repo https://mirrors.aliyun.com/repo/rocky8.repo
- RockyLinux 9:
sudo curl -o /etc/yum.repos.d/Rocky-Base.repo https://mirrors.aliyun.com/repo/rocky9.repo
如果curl提示找不到文件,可以先用浏览器访问 https://mirrors.aliyun.com/repo/ 查看实际文件名,或改用wget命令。
方法二:手动编辑repo文件
如果不方便下载,也可以直接编辑原文件。
以 Rocky-Base.repo 为例,用vi或nano打开:
sudo vi /etc/yum.repos.d/Rocky-Base.repo
将文件中所有 mirrorlist= 开头的行注释掉(前面加 #),然后将 baseurl= 指向国内镜像地址。
例如:
[base]
name=Rocky Linux $releasever - Base - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/rockylinux/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
注意 $releasever 和 $basearch 是yum变量,会自动替换为系统版本和架构,不要改成固定数字。
方法三:使用sed命令批量替换
如果不想手动改多个文件,可以用sed批量替换域名:
sudo sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/Rocky-*.repo
sudo sed -i 's|^#baseurl=http://dl.rockylinux.org|baseurl=https://mirrors.aliyun.com/rockylinux|g' /etc/yum.repos.d/Rocky-*.repo
执行后建议用 cat 查看文件内容,确认替换结果符合预期。
清理缓存并验证是否生效
修改repo文件后,必须清理旧缓存并生成新缓存,否则yum可能仍然使用旧数据。
sudo dnf clean all
sudo dnf makecache
如果看到类似 Metadata cache created 的提示,说明新源已经可用。
接着执行:
sudo dnf repolist
输出中 repo 名称后面应该显示 mirrors.aliyun.com 或其他国内域名,而不是 dl.rockylinux.org。
最后测试下载速度:
sudo dnf install -y wget
观察下载速度,正常情况下应该比之前有明显提升。
常见报错与避坑说明
报错:Failed to synchronize cache for repo
通常是因为repo文件中的 baseurl 路径写错,或者镜像站没有对应版本。
先用浏览器访问 baseurl 地址,确认目录存在。
报错:Cannot find a valid baseurl for repo: base
检查 $releasever 变量是否被正确解析。
可以执行 dnf repolist -v 查看实际使用的URL。
如果变量未解析,可能是 /etc/dnf/vars/ 下缺少对应文件,或repo文件中写死了错误版本号。
避坑一:不要删除所有repo文件
有些教程建议直接删除 /etc/yum.repos.d/ 下所有文件,再新建一个。
这样做虽然简单,但会丢失官方GPG密钥配置,导致安装软件时无法验证签名。
建议保留GPG相关配置。
避坑二:GPG密钥要保留
替换源时,gpgcheck=1 和 gpgkey= 这两行不要删掉。
国内镜像站通常同步了官方GPG密钥,保留它们可以保证软件包来源可信。
避坑三:不同版本不要混用repo文件
RockyLinux 8和9的仓库路径不同,把8的repo文件放到9上会导致路径404。
务必根据 cat /etc/redhat-release 的结果选择对应版本。
验证配置是否稳定
配置完成后,建议做一次完整的更新测试:
sudo dnf update -y
如果更新过程顺利,没有长时间卡在 Downloading metadata 或频繁超时,说明源配置成功。
之后日常安装软件也会使用国内镜像,速度更稳定。
如果后续更换了镜像站,只需要重新替换repo文件中的域名,再次执行 dnf clean all 和 dnf makecache 即可,不需要重装系统。
常见疑问
问:替换源后需要重启系统吗?
不需要。
yum/dnf每次执行命令时都会读取repo文件,修改后清理缓存并重建即可生效。
问:国内镜像站同步不及时怎么办?
国内主流镜像站通常与官方源保持小时级同步,如果遇到某个包找不到,可以先执行 dnf clean all 再试,或临时切换回官方源下载该包。
不建议长期混用多个源,容易产生依赖冲突。
问:CentOS的repo文件能直接给RockyLinux用吗?
不能。
虽然两者同源,但仓库路径和版本标识不同,直接套用会导致路径错误。
请使用RockyLinux专用的repo文件。