CentOS6的yum源失效官方停止維護更新及解決


關鍵詞:CentOS6 官方停止維護更新 源倉庫失效 yum源失效 yum安裝報錯 yum更新報錯 [Errno 256] [Errno 14] [404 Not Found] 阿里鏡像源報錯失效 網易鏡像源報錯失效 epel CentOS5

背景:在進行服務器系統安全類問題更新時,yum update 更新發現報錯如下

[Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
To address this issue please refer to the below wiki article

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

    重新設置 yum 源后,用官方、阿里、網易等的源都是仍然報這個錯。

    換個思路,可能是源發生變更了,在查詢CentOS官網產品信息(https://wiki.centos.org/zh/About/Product)后發現果然,CentOS6源倉庫於2020.11.30停止維護更新了(CentOS5早在2017年初就停了),被移除了,因國內各大鏡像源是同步的所以也都失效了。下面官方信息截圖於2020.12.29。

解決建議:

    1、最安全:升級CentOS系統版本改用CentOS7或8或更高版本.

    2、若生產環境對安全問題(如漏洞更新補丁等)要求不是很嚴格,可用官網的舊版存檔 https://vault.centos.org/ 先頂一段時間,該舊版存檔源由開發者維護而不是官方了,所以一些安全更新等 偶爾 可能 會不是很及時,且在國外下載獲取速度相對慢一點點。下面給出該方法具體:

      1)查看當前系統版本后面會用  cat /etc/issue

[root]# cat /etc/issue
CentOS release 6.10 (Final)
Kernel \r on an \m
[root]# 

      2)修改源倉庫文件(先備份再操作!)

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup  // 備份文件
vim /etc/yum.repos.d/CentOS-Base.repo // 編輯文件

        將內容中原來阿里或網易等鏡像的 url 鏈接改為 https://vault.centos.org/ ,若用的是原來 mirrorlist 源,就把 mirrorlist 開頭的行注釋掉在旁邊新添加 baseurl 開頭的行,案例如下

[base]
name=CentOS-$releasever - Base
baseurl=http://vault.centos.org/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#released updates 
[updates]
name=CentOS-$releasever - Updates
baseurl=http://vault.centos.org/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://vault.centos.org/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://vault.centos.org/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
baseurl=http://vault.centos.org/$releasever/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

        注:若是CentOS5,還要將其中幾行 gpgkey=......KEY-CentOS-6 行末的 6 都改為 5 。

        這時,若版本號就是6,不是6.2或6.10等有小數點后綴的版本號,保存后運行 yum clean 然后 yum makecache 一般沒問題,否則仍可能報錯,下面繼續。

      3)若上步后仍然報錯,就是URL中的變量 \$releasever 值問題,報錯提示網址404,網址路徑不對應。\$releasever 得到的值是發行版本號的整數,無小數點,查看命令 rpm -qi centos-release 顯示列表中 Version 值便是。若 系統實際 版本號是有小數點后綴的,可直接把 CentOS-Base.repo 文件內容中幾行 baseurl 開頭行中的 $releasever 替換為有小數點的版本號,我的版本號是6.10,替換結果如下(記得先備份文件或注釋原有行復制粘貼新行再修改!):

[base]
name=CentOS-$releasever - Base
baseurl=http://vault.centos.org/6.10/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#released updates 
[updates]
name=CentOS-$releasever - Updates
baseurl=http://vault.centos.org/6.10/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://vault.centos.org/6.10/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://vault.centos.org/6.10/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
baseurl=http://vault.centos.org/6.10/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

        保存運行 yum clean 然后 yum makecache 再 yum update。

      4)若仍然報錯,多半是因為設置了 epel 項目,報錯中提示epel中的網址404,文件路徑 /etc/yum.repos.d/epel.repo,epel項目維護跟隨官方,所以也停止了維護被移除了。

        啥是epel? 如果既想獲得 RHEL 的高質量、高性能、高可靠性,又需要方便易用(關鍵是免費)的軟件包更新功能,那么 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux)正好適合。EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社區打造,為 RHEL 及衍生發行版如 CentOS、Scientific Linux 等提供高質量軟件包的項目。

        這里將 epel.repo 文件重新命名為 epel.repo.back 讓epel找不到文件不去找額外包即可,也可直接刪除該文件但不推薦。

mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup

        然后運行 yum clean 然后 yum makecache 再 yum update。至此,結束。

小伙伴們如有更好解決方式或發現錯誤,歡迎來評論補充或糾正~~~謝謝 (^ - ^ )

技術顧問:我的朋友大佬牙哥~

參考文章:

1、https://blog.csdn.net/CyanSkye/article/details/70045761  作者:CyanSkye

2、https://blog.51cto.com/xiaocao13140/2105528  這是轉載最早的文章,原作者找不到了


免責聲明!

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



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