在使用 CentOS 系统时,**软件源(Repository)**是用于下载和安装软件包的服务器。默认情况下,CentOS 使用官方的镜像源,但由于地理位置、网络条件等因素,官方源可能在某些地区访问速度较慢。因此,更换软件源(换源)可以显著提升软件包的下载和更新速度,提高系统的整体性能和用户体验。
本指南将详细介绍如何为 CentOS 7.6、CentOS 8 和 CentOS 9(包括 CentOS Stream 9)更换软件源,涵盖命令行方法和常用镜像源的配置示例。
目录
- 更换软件源的前期准备
- 选择合适的镜像源
- CentOS 7.6 换源方法
- CentOS 8 换源方法
- CentOS 9(CentOS Stream 9)换源方法
- 常用镜像源示例
- 常见问题及解决办法
- 总结
- 附录:常用命令汇总
1. 更换软件源的前期准备
在更换软件源之前,建议您完成以下准备工作:
- 备份现有源列表:以防更换过程中出现问题,可以恢复到原来的配置。
- 选择合适的镜像源:选择离您地理位置较近且速度较快的镜像源。
- 确保网络连接稳定:更换源过程中需要下载大量的索引文件,网络不稳定可能导致更新失败。
2. 选择合适的镜像源
选择镜像源时,可以考虑以下因素:
- 地理位置:选择离您所在位置较近的镜像源,以获得更快的下载速度。
- 速度与稳定性:一些知名的镜像源提供更高的稳定性和速度。
- 更新频率:选择更新及时的镜像源,以确保您获取到最新的软件包。
- 安全性:确保选择的镜像源可靠,避免使用不可信的第三方源。
常用的镜像源提供者包括阿里云、清华大学、中科大、网易163等。
3. CentOS 7.6 换源方法
CentOS 7.6 使用的是 yum
包管理器。以下是更换 CentOS 7.6 软件源的详细步骤。
3.1 备份当前源列表
在进行任何更改之前,备份当前的源列表文件以防止出现问题时能够恢复。
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
3.2 移除旧的源配置
为了避免源列表中存在冲突或重复的配置,建议移除旧的源配置文件。
sudo rm -f /etc/yum.repos.d/CentOS-Base.repo
3.3 下载新的源配置文件
以阿里云镜像源为例,下载适用于 CentOS 7 的新的源配置文件。
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3.4 清理缓存并生成缓存
更换源后,需要清理现有的 yum
缓存,并生成新的缓存。
sudo yum clean all
sudo yum makecache
3.5 验证新源配置
查看新源是否配置正确。
yum repolist
示例输出:
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10,072
extras/7/x86_64 CentOS-7 - Extras 437
updates/7/x86_64 CentOS-7 - Updates 2,344
repolist: 12,853
4. CentOS 8 换源方法
CentOS 8 使用的是 dnf
包管理器。由于 CentOS 8 的生命周期已于2021年底结束,推荐迁移到 CentOS Stream 或其他替代品(如 AlmaLinux、Rocky Linux)。以下内容主要针对 CentOS 8 的传统镜像源更换。
4.1 备份当前源列表
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
4.2 移除旧的源配置
sudo rm -f /etc/yum.repos.d/CentOS-Base.repo
4.3 下载新的源配置文件
以阿里云镜像源为例,下载适用于 CentOS 8 的源配置文件。
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
4.4 禁用 AppStream 和 PowerTools 仓库(可选)
CentOS 8 默认启用了 AppStream 和 PowerTools 仓库,这些仓库可能与阿里云镜像源的配置不兼容。根据需要禁用这些仓库。
编辑 /etc/yum.repos.d/CentOS-Base.repo
,将 enabled=1
改为 enabled=0
,例如:
[appstream]
name=CentOS-$releasever - AppStream
baseurl=http://mirror.centos.org/centos/$releasever/AppStream/$basearch/os/
enabled=0
...
4.5 清理缓存并生成缓存
sudo dnf clean all
sudo dnf makecache
4.6 验证新源配置
dnf repolist
示例输出:
repo id repo name status
baseos-8-x86_64 CentOS-8 - BaseOS 10,072
extras-8-x86_64 CentOS-8 - Extras 437
updates-8-x86_64 CentOS-8 - Updates 2,344
repolist: 12,853
5. CentOS 9(CentOS Stream 9)换源方法
CentOS 9 已经转型为 CentOS Stream 9,这是一个滚动更新版本,与 Fedora 和 RHEL 保持更紧密的联系。以下是更换 CentOS Stream 9 软件源的详细步骤。
5.1 备份当前源列表
sudo cp /etc/yum.repos.d/CentOS-Linux-AppStream.repo /etc/yum.repos.d/CentOS-Linux-AppStream.repo.backup
sudo cp /etc/yum.repos.d/CentOS-Linux-BaseOS.repo /etc/yum.repos.d/CentOS-Linux-BaseOS.repo.backup
5.2 移除旧的源配置
sudo rm -f /etc/yum.repos.d/CentOS-Linux-AppStream.repo
sudo rm -f /etc/yum.repos.d/CentOS-Linux-BaseOS.repo
5.3 下载新的源配置文件
以阿里云镜像源为例,下载适用于 CentOS Stream 9 的源配置文件。
sudo curl -o /etc/yum.repos.d/CentOS-Stream.repo http://mirrors.aliyun.com/repo/Centos-Stream.repo
5.4 清理缓存并生成缓存
sudo dnf clean all
sudo dnf makecache
5.5 验证新源配置
dnf repolist
示例输出:
repo id repo name status
centos-stream-appstream CentOS Stream 9 - AppStream 10,072
centos-stream-baseos CentOS Stream 9 - BaseOS 2,344
repolist: 12,416
6. 常用镜像源示例
以下是几个常用的国内镜像源配置示例,您可以根据需要选择合适的镜像源替换。
6.1 阿里云镜像源
阿里云提供的CentOS镜像源速度快、更新及时,适用于大部分用户。
CentOS 7.6
[base] name=CentOS-$releasever - Base baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever - Updates baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-$releasever - Extras baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
CentOS 8
[BaseOS] name=CentOS-$releasever - Base baseurl=http://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8 [AppStream] name=CentOS-$releasever - AppStream baseurl=http://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8 [extras] name=CentOS-$releasever - Extras baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8 [centos-stream] name=CentOS Stream $releasever - BaseOS baseurl=http://mirrors.aliyun.com/centos-stream/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8
CentOS Stream 9
[centos-stream-appstream] name=CentOS Stream $releasever - AppStream baseurl=http://mirrors.aliyun.com/centos-stream/$releasever/AppStream/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8 [centos-stream-baseos] name=CentOS Stream $releasever - BaseOS baseurl=http://mirrors.aliyun.com/centos-stream/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8 [centos-stream-extras] name=CentOS Stream $releasever - Extras baseurl=http://mirrors.aliyun.com/centos-stream/$releasever/extras/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8
6.2 清华大学镜像源
清华大学开源软件镜像站提供全面的CentOS镜像,适合国内用户使用。
CentOS 7.6
[base] name=CentOS-$releasever - Base baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever - Updates baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-$releasever - Extras baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-7
CentOS 8
[BaseOS] name=CentOS-$releasever - Base baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-8 [AppStream] name=CentOS-$releasever - AppStream baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/AppStream/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-8 [extras] name=CentOS-$releasever - Extras baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-8 [centos-stream] name=CentOS Stream $releasever - BaseOS baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-8
CentOS Stream 9
[centos-stream-appstream] name=CentOS Stream $releasever - AppStream baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever/AppStream/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-8 [centos-stream-baseos] name=CentOS Stream $releasever - BaseOS baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-8 [centos-stream-extras] name=CentOS Stream $releasever - Extras baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever/extras/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-8
6.3 中科大镜像源
中国科学技术大学(USTC)提供的镜像源在国内网络环境中表现优异。
CentOS 8
[BaseOS] name=CentOS-$releasever - Base baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-8 [AppStream] name=CentOS-$releasever - AppStream baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/AppStream/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-8 [extras] name=CentOS-$releasever - Extras baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/extras/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-8 [centos-stream] name=CentOS Stream $releasever - BaseOS baseurl=https://mirrors.ustc.edu.cn/centos-stream/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-8
6.4 网易163镜像源
网易163提供的镜像源也是国内常用的高速镜像源之一。
CentOS 7.6
[base] name=CentOS-$releasever - Base baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever - Updates baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-$releasever - Extras baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
CentOS 8
[BaseOS] name=CentOS-$releasever - Base baseurl=http://mirrors.163.com/centos/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-8 [AppStream] name=CentOS-$releasever - AppStream baseurl=http://mirrors.163.com/centos/$releasever/AppStream/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-8 [extras] name=CentOS-$releasever - Extras baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-8 [centos-stream] name=CentOS Stream $releasever - BaseOS baseurl=http://mirrors.163.com/centos-stream/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-8
7. 常见问题及解决办法
在更换软件源的过程中,可能会遇到一些常见问题。以下是常见问题及其解决办法:
7.1 软件源无法访问或连接超时
原因:
- 网络连接问题。
- 选择的镜像源服务器故障。
- 防火墙或代理设置阻止访问。
解决办法:
- 检查网络连接,确保能够访问互联网。
- 尝试更换其他镜像源。
- 检查防火墙和代理设置,确保允许访问镜像源服务器。
7.2 软件包签名错误
原因:
- 镜像源的 GPG 密钥未添加或过期。
- 软件源列表中存在错误的 URL 或格式。
解决办法:
重新添加或更新镜像源的 GPG 密钥。
确认源列表中的 URL 和格式正确无误。
执行以下命令更新密钥并修复问题:
sudo rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 sudo rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8 sudo dnf clean all sudo dnf makecache
7.3 软件包依赖关系问题
原因:
- 镜像源中的软件包版本与系统不兼容。
- 软件包列表未正确更新。
解决办法:
确认源列表中使用的发行版代号正确。
执行以下命令修复依赖关系:
sudo dnf install -f
7.4 无法找到软件包
原因:
- 软件包名称错误。
- 软件源中未包含所需的软件包。
- 软件源配置文件中存在语法错误。
解决办法:
确认软件包名称拼写正确。
检查软件源配置文件,确保包含所需的软件源。
执行以下命令更新软件包列表:
sudo dnf clean all sudo dnf makecache
8. 总结
更换 CentOS 的软件源是优化系统性能和提升软件包下载速度的有效手段,特别是在国内用户环境中。通过选择合适的镜像源并正确配置源列表,可以显著改善系统的软件更新和安装体验。本文详细介绍了如何为 CentOS 7.6、CentOS 8 和 CentOS 9(CentOS Stream 9)更换软件源,包括命令行和常用镜像源的配置示例。此外,还涵盖了更换过程中可能遇到的常见问题及其解决办法,帮助您顺利完成软件源更换。
关键要点:
- 备份源列表:在更换源之前,务必备份现有的源列表文件。
- 选择合适的镜像源:根据地理位置和网络条件选择速度快、稳定性高的镜像源。
- 正确配置源列表:确保源列表中的发行版代号与当前 CentOS 版本一致,避免因配置错误导致系统更新失败。
- 更新软件包列表:更换源后,及时更新软件包列表以应用更改。
- 验证配置:通过命令行工具验证新的镜像源是否正常工作。
通过合理配置软件源,您可以更高效地管理和维护 CentOS 系统,确保系统的稳定性和安全性。
9. 附录:常用命令汇总
以下是本文中提及的常用命令汇总,方便快速查阅和使用。
# 1. CentOS 7.6 换源
# 备份当前源列表
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 移除旧的源配置
sudo rm -f /etc/yum.repos.d/CentOS-Base.repo
# 下载阿里云镜像源配置文件
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清理缓存并生成新的缓存
sudo yum clean all
sudo yum makecache
# 验证新源配置
yum repolist
# 2. CentOS 8 换源
# 备份当前源列表
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 移除旧的源配置
sudo rm -f /etc/yum.repos.d/CentOS-Base.repo
# 下载阿里云镜像源配置文件
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
# (可选)禁用 AppStream 和 PowerTools 仓库
sudo vim /etc/yum.repos.d/CentOS-Base.repo
# 将 [AppStream] 和 [PowerTools] 部分的 enabled=1 改为 enabled=0
# 清理缓存并生成新的缓存
sudo dnf clean all
sudo dnf makecache
# 验证新源配置
dnf repolist
# 3. CentOS Stream 9 换源
# 备份当前源列表
sudo cp /etc/yum.repos.d/CentOS-Linux-AppStream.repo /etc/yum.repos.d/CentOS-Linux-AppStream.repo.backup
sudo cp /etc/yum.repos.d/CentOS-Linux-BaseOS.repo /etc/yum.repos.d/CentOS-Linux-BaseOS.repo.backup
# 移除旧的源配置
sudo rm -f /etc/yum.repos.d/CentOS-Linux-AppStream.repo
sudo rm -f /etc/yum.repos.d/CentOS-Linux-BaseOS.repo
# 下载阿里云镜像源配置文件
sudo curl -o /etc/yum.repos.d/CentOS-Stream.repo http://mirrors.aliyun.com/repo/Centos-Stream.repo
# 清理缓存并生成新的缓存
sudo dnf clean all
sudo dnf makecache
# 验证新源配置
dnf repolist
# 4. 常用镜像源配置示例
# 更换为阿里云镜像源(CentOS 8)
sudo tee /etc/yum.repos.d/CentOS-Base.repo <<EOF
[BaseOS]
name=CentOS-\$releasever - BaseOS
baseurl=http://mirrors.aliyun.com/centos/\$releasever/BaseOS/\$basearch/os/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8
[AppStream]
name=CentOS-\$releasever - AppStream
baseurl=http://mirrors.aliyun.com/centos/\$releasever/AppStream/\$basearch/os/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8
[extras]
name=CentOS-\$releasever - Extras
baseurl=http://mirrors.aliyun.com/centos/\$releasever/extras/\$basearch/os/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8
EOF
# 切换到清华大学镜像源(CentOS Stream 9)
sudo tee /etc/yum.repos.d/CentOS-Stream.repo <<EOF
[centos-stream-appstream]
name=CentOS Stream \$releasever - AppStream
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/\$releasever/AppStream/\$basearch/os/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-8
[centos-stream-baseos]
name=CentOS Stream \$releasever - BaseOS
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/\$releasever/BaseOS/\$basearch/os/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-8
[centos-stream-extras]
name=CentOS Stream \$releasever - Extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/\$releasever/extras/\$basearch/os/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-8
EOF
# 5. 更换源后清理和升级
sudo dnf clean all
sudo dnf makecache
sudo dnf upgrade -y
# 6. 检查当前镜像源
grep ^baseurl /etc/yum.repos.d/*.repo
# 7. 导入 GPG 密钥(如果需要)
sudo rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
sudo rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-8