在Linux系统中,yum(Yellowdog Updater, Modified)是CentOS、RHEL、Rocky Linux、AlmaLinux等基于RPM的发行版中常用的包管理工具,而yum源则是系统获取软件包、更新补丁的核心依赖,由于默认的官方yum源(如CentOS官方源)在国内访问速度较慢,甚至可能无法连接,因此更新yum源(通常指替换为国内高速镜像源)是提升系统包管理效率的重要操作,本文将详细介绍Linux系统中更新yum源的完整步骤、注意事项及常见问题处理。

环境准备与系统信息确认
在更新yum源前,需先确认系统的基本信息,包括发行版版本、架构及网络连接状态,以确保操作兼容性。
-
确认系统版本与架构
不同版本的Linux系统对应的yum源配置文件不同,需提前识别系统版本,可通过以下命令查看:cat /etc/redhat-release # 查看发行版版本(如CentOS 7.9、Rocky Linux 8.10) uname -m # 查看系统架构(如x86_64、aarch64)
输出为“CentOS Linux release 7.9 (Core)”且架构为“x86_64”时,需使用CentOS 7的x86_64架构镜像源。
-
检查网络连接
更新yum源需下载配置文件,确保网络正常:ping mirrors.aliyun.com # 测试国内镜像源连通性(以阿里云为例)
若网络不通,需检查网络配置或更换镜像源域名。
备份默认yum源配置文件
更换yum源前,建议先备份默认的配置文件,以便在出现问题时恢复,默认的yum源配置文件位于/etc/yum.repos.d/目录下,通常以.repo如CentOS-Base.repo、epel.repo等)。
cd /etc/yum.repos.d/ mkdir -p backup # 创建备份目录 mv *.repo backup/ # 将所有.repo文件移动至备份目录
备份完成后,原配置文件会被安全保存,后续可通过mv backup/*.repo ./恢复。
选择并配置国内yum源
国内镜像源(如阿里云、网易、清华大学、华为开源镜像站等)提供了高速下载服务,可根据系统版本选择合适的源,以下以CentOS 7和CentOS 8为例,介绍具体配置方法。

常用国内镜像源对比
| 镜像源名称 | 镜像源URL(示例) | 适用系统版本 | 特点 |
|---|---|---|---|
| 阿里云 | https://mirrors.aliyun.com/ | CentOS/ Rocky/ AlmaLinux | 稳定、更新及时,覆盖广 |
| 网易 | http://mirrors.163.com/ | CentOS/ RHEL | 速度快,历史版本保留全 |
| 清华大学 | https://mirrors.tuna.tsinghua.edu.cn/ | CentOS/ Rocky/ AlmaLinux | 学术资源丰富,开源软件全 |
| 华为开源镜像 | https://mirrors.huaweicloud.com/ | CentOS/ EulerOS | 企业级支持,安全可靠 |
配置CentOS 7的yum源(以阿里云为例)
CentOS 7的默认配置文件为CentOS-Base.repo,可通过下载阿里云的repo文件替换:
wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 下载CentOS 7的阿里云repo文件
下载后,可通过vim CentOS-Base.repo编辑文件,检查[base]、[updates]、[extras]等部分的baseurl是否正确指向阿里云镜像(通常下载的文件已配置好,无需手动修改),若需手动修改,确保enabled=1(启用源)且gpgcheck=0(关闭GPG密钥检查,或按提示导入密钥)。
配置CentOS 8/Rocky Linux 8的yum源
CentOS 8及后续版本(如Rocky Linux 8)采用模块化仓库,需配置多个repo文件(如AppStream、PowerTools等),以阿里云为例:
wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo wget -O CentOS-AppStream.repo https://mirrors.aliyun.com/repo/Centos-8-AppStream.repo wget -O CentOS-PowerTools.repo https://mirrors.aliyun.com/repo/Centos-PowerTools.repo
同样,检查文件中的baseurl是否正确,确保对应模块的源已启用。
配置EPEL(Extra Packages for Enterprise Linux)源
EPEL是社区维护的额外软件包仓库,提供大量官方源未包含的软件,以阿里云EPEL源为例:
# CentOS 7 wget -O epel.repo https://mirrors.aliyun.com/repo/epel-7.repo # CentOS 8 wget -O epel.repo https://mirrors.aliyun.com/repo/epel-8.repo
EPEL源通常需与基础源配合使用,安装软件时可通过yum install --enablerepo=epel 包名指定。
清理旧缓存并生成新缓存
配置新yum源后,需清理旧的缓存文件并重新生成缓存,以确保系统读取最新的源信息。
yum clean all # 清理所有yum缓存(包括headers、packages等) yum makecache # 生成新的缓存文件(耗时较长,耐心等待)
执行yum makecache后,若看到“Metadata Cache Created”提示,说明缓存生成成功,可通过yum search test命令测试源是否可用(test为任意关键词,用于验证搜索功能)。

验证yum源更新结果
为确认yum源已正确更新,可尝试执行系统更新或安装测试软件包:
yum update -y # 更新系统所有已安装软件包(首次执行可能耗时较长) yum install -y vim # 安装一个测试软件包(如vim),观察下载速度
若下载速度明显提升(如从几KB/s提升至几MB/s),且安装过程无报错,说明yum源更新成功。
常见问题处理
-
问题:更换源后
yum makecache失败,提示“Could not resolve host: mirrors.aliyun.com”
原因:网络无法连接到镜像源域名。
解决:检查DNS配置(如cat /etc/resolv.conf确认nameserver正确),或更换镜像源(如改用网易、清华源)。 -
问题:安装软件时提示“Public key for package.rpm is not installed”
原因:未导入GPG密钥,导致系统无法验证软件包完整性。
解决:- 若临时测试,可在
yum install命令后添加--nogpgcheck参数跳过检查(不推荐生产环境使用); - 若需启用GPG密钥,可通过
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7导入官方密钥,或从镜像源下载对应密钥文件后导入。
- 若临时测试,可在
相关问答FAQs
Q1: 更新yum源后,如何确认当前使用的源是镜像源而非默认源?
A: 可通过以下方式确认:
- 查看yum源配置文件内容:
cat /etc/yum.repos.d/CentOS-Base.repo | grep baseurl,若输出包含mirrors.aliyun.com等国内镜像域名,则说明已更换成功; - 执行
yum repolist,查看“Repo-id”列是否为镜像源名称(如“base/7/x86_64”对应阿里源); - 下载软件包时观察速度,国内镜像源通常远快于默认源。
Q2: 如果更换yum源后系统无法更新,如何恢复默认源?
A: 恢复默认源的方法如下:
- 若已备份默认配置文件(见第二步),执行
mv /etc/yum.repos.d/backup/*.repo /etc/yum.repos.d/; - 若未备份,可从官方系统下载对应版本的repo文件(如CentOS 7官方源:
http://mirror.centos.org/centos-7/7/os/x86_64/下的CentOS-Base.repo); - 恢复后执行
yum clean all && yum makecache重新生成缓存即可。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/29376.html