關鍵詞:CentOS6 源倉庫失效 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)修改源倉庫檔案
vim /etc/yum.repos.d/CentOS-Base.repo
將內容中原來官方的 mirrorlist 或阿里鏡像或網易鏡像的 url 鏈接改為 https://vault.centos.org/ 即可,如下
[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 這是轉載最早的文章,原作者找不到了
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/241678.html
標籤:Linux
