[CentOS 8]解決 yum update 錯誤:No URLs in mirrorlist (AppStream repo) 修復教學與 EOL 後續方案

📝 問題摘要:
CentOS 8 已於 2021 年 12 月 31 日正式停止支援 (EOL)。原本的官方鏡像站 (mirror.centos.org) 已移除 CentOS 8 的套件,這導致執行 yum update 時會出現 No URLs in mirrorlist 錯誤,無法安裝或更新任何軟體。

一、 錯誤訊息確認

當您嘗試執行 yum update 或安裝軟體時,可能會看到類似以下的錯誤訊息:

Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

或是:

錯誤:無法下載「appstream」軟體庫的中介資料:Cannot prepare internal mirrorlist: No URLs in mirrorlist
yum 錯誤截圖

二、 解決方案:切換至 Vault Repository

雖然官方鏡像已停止,但舊有的套件被轉移到了 vault.centos.org。我們需要修改 Repo 設定檔,將來源指向 Vault。

CentOS 8 EOL 說明

方法 A:使用官方 Vault (標準解法)

請在終端機執行以下兩行 sed 指令,自動替換 /etc/yum.repos.d/ 下的設定檔:

sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

方法 B:使用 Cloudflare Vault (替代方案)

如果官方 Vault 連線速度較慢,也可以改用 Cloudflare 提供的鏡像:

sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-* sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-Linux-*

三、 驗證修復結果

執行上述指令後,再次輸入 yum update,應該就能正常下載並更新套件了。

yum update 成功畫面 1 yum update 成功畫面 2

四、 後續建議:遷移至 Rocky Linux 或 AlmaLinux

雖然修復了 yum,但 CentOS 8 已不再接收安全性更新。長遠之計是遷移至二進位兼容的替代發行版。您可以參考以下資源進行無痛轉換:


📚 參考文獻

🏷️ 文章標籤 (Tags)

留言

自訂樣式 ~ CSS -- 簡約相簿

© Copyright 2021 Design By 灰鴿 | Modified by Sungshu ( Powered by Blogger )