浅析解决CentOS8 yum官方源下线后无法使用问题及具体原因分析
一、问题背景
使用 yum 时报错,yum list 或 yum 安装任何东西都报错
CentOS-8 - Base - mirrors.aliyun.com 299 B/s | 2.3 kB 00:07
Errors during downloading metadata for repository 'base':
- Status code: 404 for https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/repodata/repomd.xml (IP: 39.96.118.194)
- Curl error (7): Couldn't connect to server for http://mirrors.aliyuncs.com/centos/8/BaseOS/x86_64/os/repodata/repomd.xml [Failed to connect to mirrors.aliyuncs.com port 80: Connection timed out]
- Status code: 404 for http://mirrors.cloud.aliyuncs.com/centos/8/BaseOS/x86_64/os/repodata/repomd.xml (IP: 100.100.2.148)
Error: Failed to download metadata for repo 'base': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
关键信息:Cannot download repodata/repomd.xml: All mirrors were tried
二、解决方案
这里其实给大家一个建议,也算是自己的一个心得吧:很多时候我们看到报错,都会习惯性的复制报错信息,然后百度或者谷歌搜索看别人是如何解决的。但是很多时候,问题并不一致,或者说,报错的关键信息复制的不对的话,也很容易就走到岔路上去。很多时候,我建议是好好阅读一下报错信息,了解主要是因为什么报错,然后再去对症下药,有针对性的搜索和过滤更适合的解决方案。
所以呢,其实我最开始没有认真阅读报错信息,想当然的复制了第一行报错:Errors during downloading metadata for repository 'base',然后去搜索,最后走了很多弯路,试了网上别人的很多种解决方案,都不生效。最后,静下心来,好好阅读了一下报错全部信息,找到了关键报错:Cannot download repodata/repomd.xml,才发现了问题所在。
1、原因分析:
centos8项目官方已于2021年底停止,相关源已无法使用,所以网上22年前的换源教程都已无法使用。
2、如何解决:
(1)进入配置文件内,删除所有的.repo文件(也可以备份)
# 进入配置文件夹
cd /etc/yum.repos.d/
# 删除旧的配置文件
rm *.repo
# 输入“y”回车确认
(2)ls 确保该目录下的.repo文件已完全删除
注意必须全部删除,或全部移除备份到别处,否则就算你切换的 yum 源,也还是会报上面的错
(3)下载可以用的.repo文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
# 如果你没有安装wget,也可以用下面命令:
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
(4)清除缓存,及运行 yum makecache 生成缓存
yum clean all
yum makecache
3、如果你是非阿里云ECS用户,可能回会出现 Couldn't resolve host 'mirrors.cloud.aliyuncs.com' 的信息,不过不影响使用。你可以修改相关的配置:
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
三、具体原因分析
可以看这篇文章:https://blog.csdn.net/weixin_42325823/article/details/122839554
主要就是镜像库丢了,正常的是有这个 repomd.xml 文件的,比如这个 /centos/8-stream/
可以到《阿里云开源镜像目录》https://mirrors.aliyun.com/centos/ 查看各版本情况。但是这个 centos/8/ 就没有了。
我们可以去看 centos8 的情况 mirrors.aliyun.com/centos/8/re… 就会看到这样的一行提示:This directory (and version of CentOS) is deprecated. 官方都不推荐了,我们肯定就不能用啦。
四、扩展
其实我们了解到主要原因就是因为 centos8 的镜像库 repomd.xml 文件丢了,但是比如 centos8-stream 是有的,也就是说我们可以把 yum 源的 repo.xml 里代表 8 的这个 releasever 全部改成 releasever-stream,这样也是可以解决问题的。
如何操作呢?修改CentOS-Base.repo文件内容如下:替换 "releasever/" 为 "releasever-stream/"
[root@mo12-0003 ~]# sed -i 's/releasever\//releasever-stream\//g' /etc/yum.repos.d/CentOS-Base.repo
然后重置缓存即可
[root@mo12-0003 ~]# yum clean all
[root@mo12-0003 ~]# yum makecache
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2021-05-10 浏览器工作原理:浅析浏览器中的页面 - 虚拟DOM与实际DOM有何不同
2021-05-10 浏览器工作原理:浅析浏览器中的页面 - 页面性能 - 如何系统的优化页面
2021-05-10 浏览器工作原理:浅析浏览器中的页面 - 分层与合成机制 - CSS动画为什么比javascript高效
2021-05-10 浏览器工作原理:浅析浏览器中的页面 - 渲染流水线 - CSS如何影响首次加载时的白屏时间
2020-05-10 浅析如何优化Webpack构建速度:使用可量化工具、配置include、配置缓存、配置多进程多实例thread-loader/parallel、硬件加速、noParse、IgnorePlugin、抽取公共代码、DllPlugin分包、开启webpack内置优化、babel配置优化、可视化分析针对性优化
2020-05-10 Webpack常见问题总结
2019-05-10 解决IE报错[vue router]Failed to resolve async component default:strict 模式下不允许分配到只读属性