解決Failed to download metadata for repo ‘AppStream’


在CentOS 8 上執行命令 sudo yum update 時報錯:

[root@VM-24-13-centos ~]# sudo yum update
Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-      Epel.repo; Configuration: OptionBinding with id "failovermethod" does not exist
CentOS Linux 8 - AppStream                       91  B/s |  38  B     00:00

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

事實上我上面是報的兩個錯誤,我們一個個來解決:

第一個問題:

Configuration: OptionBinding with id "failovermethod" does not exist

看報錯我們知道是/etc/yum.repos.d/CentOS-Epel.repo 文件中的 failovermethod=priority 出現問題,我們找到這個文件,對這個字段進行注釋:

vim /etc/yum.repos.d/CentOS-Epel.repo

第二個問題:

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

在這個問題上我卡了幾乎一個下午,網上有各種解決方案,我整理了一下,逐步排查即可:

  1. 查看CentOS 8 所在服務器網絡是否出現問題,可以用 ping www.baidu.com 進行測試。

  2. 網絡沒問題就看對應的軟件源是否出現問題,具體排查/etc/yum.repos.d目錄下這三個文件:

    • CentOS-Base.repo
    • CentOS-AppStream.repo
    • CentOS-Extras.repo

    如果上述三個文件中含有 mirrorlist 字段,將這些字段進行注釋,並將 baseurl 修改為國內的軟件源,阿里雲baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/ 或者騰訊雲baseurl=https://mirrors.tencentyun.com/centos/$releasever/BaseOS/$basearch/os/

  3. 如果前兩個方法都沒有解決,說明不是源的問題,查了好久看到這篇帖子:https://techglimpse.com/failed-metadata-repo-appstream-centos-8/

    • CentOs Linux 8 從 2021.12.31 號后已經停止維護,所以之后更新鏡像需要通過 vault.centos.org來獲取更新。

    • 所以需要修改軟件源mirrors 地址,具體操作如下:

      # 進入yum.repos.d 目錄下
      cd /etc/yum.repos.d/
      # 修改源鏈接
      sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
      # 要將之前的mirror.centos.org 改成 vault.centos.org
      sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
      

其實上述報錯就是軟件源配置的問題,經過上述步驟細心排查基本能解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM