[CentOS 8]解決 yum update 錯誤:No URLs in mirrorlist (AppStream repo) 修復教學與 EOL 後續方案
延伸閱讀CentOS 8 遷移方案:
📝 問題摘要:
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
二、 解決方案:切換至 Vault Repository
雖然官方鏡像已停止,但舊有的套件被轉移到了 vault.centos.org。我們需要修改 Repo 設定檔,將來源指向 Vault。
方法 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,應該就能正常下載並更新套件了。
四、 後續建議:遷移至 Rocky Linux 或 AlmaLinux
雖然修復了 yum,但 CentOS 8 已不再接收安全性更新。長遠之計是遷移至二進位兼容的替代發行版。您可以參考以下資源進行無痛轉換:
留言
張貼留言