問題原因
YUM無法在配置的路徑中找到所需的倉庫中繼資料,可能原因如下:
作業系統生命週期結束:官方YUM源倉庫已被遷移至歸檔伺服器(vault),原鏡像源地址失效,需通過處理作業系統EOL將鏡像源切換至歸檔倉庫。
環境變數配置了錯誤的HTTP代理:在 /etc/profile 檔案中配置了HTTP/HTTPS 代理,導致YUM無法串連到鏡像伺服器,需檢查並修複環境變數配置錯誤。
centos-release 軟體包缺失:軟體包缺失會導致 YUM 無法找到任何可用的源,設定檔中使用的變數可能因缺少關聯包而無法被正確解析,最終拼接出錯誤的URL,需安裝centos-release 軟體包。
解決方案
處理作業系統EOL
EOL系統存在安全風險,以下操作僅為臨時修複,建議儘快進行作業系統更換與遷移。
CentOS 6
備份源設定檔。
# 備份Base源配置 sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 備份EPEL源配置 sudo cp /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup切換 Base 源至存檔鏡像。
sudo vim /etc/yum.repos.d/CentOS-Base.repo編輯
CentOS-Base.repo檔案,將其內容完全替換為如下內容:[base] name=CentOS-6.10 enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos-vault/6.10/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.cloud.aliyuncs.com/centos-vault/RPM-GPG-KEY-CentOS-6 [updates] name=CentOS-6.10 enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos-vault/6.10/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.cloud.aliyuncs.com/centos-vault/RPM-GPG-KEY-CentOS-6 [extras] name=CentOS-6.10 enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos-vault/6.10/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.cloud.aliyuncs.com/centos-vault/RPM-GPG-KEY-CentOS-6切換
EPEL源至存檔鏡像。vim /etc/yum.repos.d/epel.repo編輯
epel.repo檔案,將其內容完全替換為如下內容:[epel] name=Extra Packages for Enterprise Linux 6 - $basearch enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/epel-archive/6/$basearch gpgcheck=0 gpgkey=http://mirrors.cloud.aliyuncs.com/epel-archive/RPM-GPG-KEY-EPEL-6執行
yum repolist命令,若成功列出倉庫列表而沒有報404錯誤,表示問題已解決。
CentOS 7
備份源設定檔。
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下載新源設定檔。
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo清理並重建YUM緩衝。
yum clean all && yum makecache執行
yum repolist,若成功列出倉庫列表而沒有報404錯誤,表示問題已解決。
檢查並修複環境變數配置錯誤
檢查代理環境變數。
echo $http_proxy echo $https_proxy移除代理配置。
若上一步返回了Proxy 位址,則編輯/etc/profile檔案,找到包含export http_proxy=或export https_proxy=的行,在行首添加 # 將其注釋掉。sudo vim /etc/profile# export http_proxy="http://your.proxy.address:port" # export https_proxy="https://your.proxy.address:port"執行
yum repolist命令,若成功列出倉庫列表而沒有報404錯誤,表示問題已解決。
安裝centos-release 軟體包
檢查軟體包是否安裝。
若返回
package centos-release is not installed,則需要進行安裝。sudo rpm -q centos-release下載軟體包。
訪問鏡像站,找到最新版本的
centos-release-*.rpm包並複製連結。將<URL>替換為複製的連結。
sudo wget <URL>以CentOS 7 為例,<URL>為
https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/centos-release-7-9.2009.0.el7.centos.x86_64.rpm。安裝軟體包。
將<檔案名稱>替換為下載的軟體包檔案名稱。
sudo rpm -ivh <檔案名稱>以CentOS 7為例,<檔案名稱>為
centos-release-7-9.2009.0.el7.centos.x86_64.rpm。執行
yum repolist命令,若成功列出倉庫列表而沒有報404錯誤,表示問題已解決。