CentOS8停止服务,使用YUM源异常,解决方法
由于 CentOS 8 官方已于 2021 年 12 月 31 日 停止维护,其官方 YUM 源(mirror.centos.org
)也随之停止提供服务。如果在尝试使用 YUM 安装或更新时遇到异常(如无法下载包或更新失败),可以通过以下方法解决问题。
1. 常见错误提示
在 CentOS 8 上运行 yum update
或 yum install
时,可能出现以下错误:
plaintext
Failed to download metadata for repo 'AppStream'
Error: Failed to download metadata for repo
或者:
plaintext
Cannot find a valid baseurl for repo: base/8/x86_64
2. 问题原因
- CentOS 8 官方 YUM 源已停止服务。
- 默认的
CentOS-Base.repo
文件指向的官方镜像地址不再有效。
3. 解决方法
方法 1:切换到 CentOS Vault 仓库
CentOS 官方提供了一个归档仓库(Vault),用于存储停止维护的 CentOS 版本的所有历史包。可以切换到 Vault 仓库继续使用。
3.1 替换 YUM 源配置
-
备份原始的 YUM 源配置文件:
bashmv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
-
创建新的
CentOS-Base.repo
文件:bashnano /etc/yum.repos.d/CentOS-Base.repo
-
添加以下内容:
plaintext[BaseOS] name=CentOS-8 - Base baseurl=http://vault.centos.org/8.5.2111/BaseOS/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [AppStream] name=CentOS-8 - AppStream baseurl=http://vault.centos.org/8.5.2111/AppStream/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [extras] name=CentOS-8 - Extras baseurl=http://vault.centos.org/8.5.2111/extras/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
-
清理 YUM 缓存并更新:
bashyum clean all yum makecache yum update
方法 2:切换到 CentOS Stream
CentOS 8 的替代版本是 CentOS Stream 8,这是一个滚动更新的发布版本,提供持续支持。
3.1 迁移到 CentOS Stream
-
安装
centos-release-stream
包:bashdnf install -y centos-release-stream
-
切换到 CentOS Stream:
bashdnf swap centos-linux-repos centos-stream-repos dnf distro-sync
-
验证迁移结果:
bashcat /etc/centos-release
输出应该类似于:
plaintextCentOS Stream release 8
方法 3:切换到替代系统
如果不想继续使用 CentOS,可以考虑以下替代发行版,它们基于 RHEL 并且提供长期支持:
3.1 Rocky Linux
- Rocky Linux 是完全兼容 RHEL 的社区驱动发行版。
- 官方迁移工具:
bash
curl -O https://download.rockylinux.org/pub/rocky/8/rocky-tools/migrate2rocky.sh bash migrate2rocky.sh -r
3.2 AlmaLinux
- AlmaLinux 是由 CloudLinux 推出的 RHEL 克隆版本,提供企业级支持。
- 官方迁移工具:
bash
curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh bash almalinux-deploy.sh
3.3 Oracle Linux
- Oracle Linux 是另一个 RHEL 克隆版本,可免费使用。
- 迁移工具:
bash
curl -O https://linux.oracle.com/switch/centos2ol.sh bash centos2ol.sh
方法 4:手动下载 RPM 包
如果某些情况下无法切换 YUM 源,可以通过手动下载 RPM 包的方式安装软件:
-
前往 CentOS Vault 仓库:
- URL: http://vault.centos.org/
- 找到对应版本的包。
-
使用
wget
下载:bashwget http://vault.centos.org/8.5.2111/BaseOS/x86_64/os/Packages/<package-name>.rpm
-
使用
rpm
安装:bashrpm -ivh <package-name>.rpm
4. 验证 YUM 源是否生效
完成上述配置后,验证 YUM 是否正常工作:
-
列出可用的软件包:
bashyum list available
-
安装测试软件包:
bashyum install -y vim
5. 总结
方法 | 优点 | 缺点 |
---|---|---|
切换到 Vault 仓库 | 简单快速,继续使用 CentOS 8 | 没有安全更新,长期使用风险高 |
迁移到 CentOS Stream | 持续更新,得到官方支持 | 是滚动更新版本,可能不适合生产环境 |
迁移到替代系统 | 提供长期支持,兼容 RHEL | 需要迁移工具,部分配置可能需要调整 |
手动下载 RPM 包 | 不依赖 YUM 源,适合单独安装软件 | 操作复杂,手动管理依赖关系较麻烦 |
根据实际需求选择最合适的解决方案。如果需要长期支持,建议迁移到 Rocky Linux 或 AlmaLinux。