前言
CentOS 7的生命週期已經在2024年6月30日終止(End of Life,EOL),官方將不再對該版本進行問題修復、功能更新以及其他形式的維護支援。這意味著使用 CentOS 7 的使用者將面臨安全漏洞無法得到修補的風險,同時隨著其他軟體的更新,可能會出現不相容的情況。
隨著 CentOS 7的生命週期結束,http://mirrorlist.centos.org 也不再提供服務。因為 http://mirrorlist.centos.org 是 CentOS 系統中用於尋找可用軟體包映象的關鍵服務,意味著 CentOS 使用者將無法透過該服務獲取最新的映象列表,會影響軟體包的管理功能。
在 CentOS 7中再使用 yum 安裝軟體包或者編譯基於 CentOS 的 Docker 映象時,會報如下錯誤:
Could not resolve host: mirrorlist.centos.org
使用 nslookup 看下 http://mirrorlist.centos.org 會發現的確不再提供服務,如下
PS C:\Users\Bingo> nslookup mirrorlist.centos.org 伺服器: public1.114dns.com Address: 114.114.114.114 DNS request timed out. timeout was 2 seconds. *** public1.114dns.com 找不到 mirrorlist.centos.org: Non-existent domain
解決方案
CentOS 舊版本的軟體包和已不再維護的 CentOS 版本都會被儲存到 http://vault.centos.org,所以只需要將 repo 檔案的 baseurl 由 http://mirrorlist.centos.org 改為 http://vault.centos.org 即可
1、備份舊的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.old
2、檢視Centos系統版本
[root@1drk384l6e8r9t3 ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core)
3、新建新的CentOS-Base.repo並貼上如下配置儲存(自己替換成上一步查詢到的版本)
vim /etc/yum.repos.d/CentOS-Base.repo # 貼上如下配置資訊並儲存 [base] name=CentOS-$releasever - Base baseurl=http://vault.centos.org/7.9.2009/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever - Updates baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-$releasever - Extras baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
4、清理快取並生成新的快取
sudo yum clean all sudo yum makecache
5、執行 yum repolist
命令,確保新源已生效
sudo yum repolist
顯示如下
[root@1drk384l6e8r9t3 ~]# sudo yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile repo id repo name status base/x86_64 CentOS-7 - Base 10,072 extras/x86_64 CentOS-7 - Extras 526 updates/x86_64 CentOS-7 - Updates 6,173 repolist: 16,771