淺析解決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
二、解決方案
阿里雲官方文件: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
三、具體原因分析
可以看這篇文章:https://blog.csdn.net/weixin_42325823/article/details/122839554
主要就是映象庫丟了,正常的是有這個 repomd.xml 檔案的,比如這個 /centos/8-stream/
可以到《阿里雲開源映象目錄》https://mirrors.aliyun.com/centos/ 檢視各版本情況
但是這個 centos/8/ 就沒有了
然後我把代表8的這個 releasever 改成 了 releasever-stream。據說是可以,但是我沒有試