一、問題背景
使用 yum 時報錯,yum list 或 yum 安裝任何東西都報錯
錯誤代碼
關鍵信息:Cannot download repodata/repomd.xml: All mirrors were tried
二、解決方案
這里其實給大家一個建議,也算是自己的一個心得吧:很多時候我們看到報錯,都會習慣性的復制報錯信息,然后百度或者谷歌搜索看別人是如何解決的。但是很多時候,問題并不一致,或者說,報錯的關鍵信息復制的不對的話,也很容易就走到岔路上去。很多時候,我建議是好好閱讀一下報錯信息,了解主要是因為什么報錯,然后再去對癥下藥,有針對性的搜索和過濾更適合的解決方案。
所以呢,其實我最開始沒有認真閱讀報錯信息,想當然的復制了第一行報錯:Errors during downloading metadata for repository ‘base’,然后去搜索,最后走了很多彎路,試了網上別人的很多種解決方案,都不生效。最后,靜下心來,好好閱讀了一下報錯全部信息,找到了關鍵報錯:Cannot download repodata/repomd.xml,才發現了問題所在。
所以這里就主要說一下最終解決,其實主要還是官方的問題,詳見阿里云官方文檔(更明細):
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11CyvQPT
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