Linux Yum故障排除指南
Yum依賴網絡訪問遠程倉庫獲取軟件包信息,網絡故障會導致“Cannot retrieve repository metadata”等錯誤。
ping google.com
或ping 鏡像源域名
(如ping mirrors.aliyun.com
)測試網絡連通性;cat /etc/resolv.conf
),若未配置有效DNS,可臨時添加echo "nameserver 8.8.8.8" > /etc/resolv.conf
;倉庫配置文件(位于/etc/yum.repos.d/
目錄下,后綴為.repo
)損壞或URL無效會導致“Repository not found”“Error: Cannot retrieve repository metadata”等錯誤。
CentOS-Base.repo
、epel.repo
),確認文件未被誤刪或修改;vi
)打開倉庫文件,驗證baseurl
或mirrorlist
的URL是否正確(可通過瀏覽器訪問URL確認);sudo yum clean all
)并重新生成(sudo yum makecache
)。Yum緩存(位于/var/cache/yum/
)損壞或過時會導致元數據不一致,引發“Repodata is over 2 weeks old”“Error: Cannot retrieve repository metadata”等錯誤。
sudo yum clean all
;sudo yum makecache
(此命令會下載最新倉庫元數據)。Yum需要root權限執行安裝、更新等操作,非root用戶運行會提示“You do not have the necessary permissions”。
sudo
提升權限(如sudo yum install package-name
)。安裝或更新軟件包時,若依賴包缺失或版本不匹配,會提示“Error: Package X requires Y but none was found”“Error: Transaction check error: file conflicts”。
sudo yum install package-name
,Yum會嘗試安裝缺失的依賴;yum search 依賴包名
查找對應倉庫,或手動下載RPM包安裝;file /path/from/package conflicts with existing file
),可卸載沖突包(sudo yum remove 沖突包名
)或使用--skip-broken
選項跳過沖突包(sudo yum install --skip-broken
)。部分倉庫啟用了GPG簽名驗證,若密鑰未導入或過期,會提示“GPG check failed for repo”。
gpgkey
字段中):sudo rpm --import /path/to/keyfile
;sudo yum-config-manager --disable repo-id
(repo-id
為倉庫標識,如base
)。磁盤空間不足會導致Yum無法下載或安裝軟件包,提示“Insufficient disk space”。
df -h
命令查看磁盤使用情況,重點關注/
(根分區)和/var
(緩存目錄)的使用率;/var/log/
下的舊日志、/tmp/
下的臨時文件),或卸載無用軟件包釋放空間。若Yum進程未正常結束(如強制終止),會留下/var/run/yum.pid
鎖文件,導致后續命令提示“Another app is currently holding the yum lock”。
ps -ef | grep yum
,獲取PID后執行kill -9 PID
;sudo rm -f /var/run/yum.pid
(若無法刪除,可重啟系統)。Yum是基于Python的腳本,若Python被卸載、改名或路徑錯誤,會提示“bad interpreter: No such file or directory”。
cat /usr/bin/yum
,查看首行#!
后的路徑(通常為/usr/bin/python
);ls -al /usr/bin/python*
,若不存在,需重新安裝Python(如sudo yum install python2
)。若以上方法均無法解決,可通過Yum日志(/var/log/yum.log
)獲取詳細錯誤信息,幫助定位問題。
tail -n 50 /var/log/yum.log
查看最近50條日志;