CentOS 7 執行 yum 命令失敗問題的排查方法


一個執着於技術的公眾號

簡介

本文主要為大家講解 CentOS 7系統中執行yum命令失敗等常見問題的排查方法。

1、執行yum命令報404錯誤

1)檢查yum倉庫是否配置正確,可以到阿里雲下載repo配置文件。

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

2)如果報錯中包含$releasever變量, 則執行rpm -qa | grep centos-release確認centos-release是否安裝。未安裝可以執行以下命令下載安裝包進行安裝。

wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/centos-release-7-7.1908.0.el7.centos.x86_64.rpm
rpm -ivh centos-release-7-7.1908.0.el7.centos.x86_64.rpm

2、 執行yum install命令提示failed錯誤

1)從報錯可以看到提示以下信息,此處以安裝Telnet為例。

ERROR UNpacking rpm package 1:telnet-0.17-64.e17.x86_64
error:unpacking of archive failed on file /usr/bin/telnet;5e785bc7:cpio:open

2)執行lsattr命令檢查/usr/bin目錄權限,發現該目錄有i屬性,導致無法寫入文件。執行以下命令解除目錄的i屬性即可。

chattr -i /usr/bin

3、執行yum命令提示Python解釋器不存在

在執行yum命令時提示以下報錯信息:

-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
說明:yum是一個python腳本。

1)執行以下命令查看yum路徑。

cat /usr/bin/yum

系統會返回以下路徑:

#!/usr/bin/python
...

2)執行以下命令檢查上述查看的路徑。

ls -al /usr/bin/python

如果系統返回以下信息,Python可能被卸載、被改名或移動路徑。

ls: cannot access /usr/bin/python: No such file or directory

具體請參考以下步驟進行排查。

  • 執行以下命令查看安裝包是否存在。

rpm -qa | grep python

系統返回以下信息。

python-decorator-3.4.0-3.el7.noarch
libselinux-python-2.5-14.1.el7.x86_64
python-backports-1.0-8.el7.x86_64
python-pyudev-0.15-9.el7.noarch
rpm-python-4.11.3-35.el7.x86_64
python-2.7.5-76.el7.x86_64
.....
  • 執行以下命令查看Python相關文件。

ls -al /usr/bin/python*

系統返回以下信息。

lrwxrwxrwx  1 root root   14 Feb 15  2019 /usr/bin/python-config -> python2-config
lrwxrwxrwx. 1 root root    7 Feb 15  2019 /usr/bin/python.bak -> python2
lrwxrwxrwx. 1 root root    9 Feb 15  2019 /usr/bin/python2 -> python2.7
lrwxrwxrwx  1 root root   16 Feb 15  2019 /usr/bin/python2-config -> python2.7-config
-rwxr-xr-x. 1 root root 7216 Oct 31  2018 /usr/bin/python2.7
-rwxr-xr-x  1 root root 1835 Oct 31  2018 /usr/bin/python2.7-config

請根據返回的信息參考以下場景進行操作。

1)檢查/usr/bin/python.bak是否被改名,若發現被改名后手動改回即可恢復正常。

2)如果未發現Python相關文件,即判定Python被卸載。

  • 請找個同系統的正常實例,執行如下命令。

mkdir /python/
yum install python --downloadonly --downloaddir=/python/
  • 執行以下命令將/python/中的rpm包傳到異常實例。

scp /python/* root@x.x.x.x:/tmp/

注意> :x.x.x.x 指的是需要訪問的主機地址。前提是兩者有通信能力,能復制文件到主機中。

執行以下命令在異常實例上安裝Python即可。

cd /tmp
rpm -ivh *

來自:

https://developer.aliyun.com/article/761306?spm=a2c6h.12873581.0.dArticle761306.5aaf2784Z7f8Ge&groupCode=mirror

結語

如果您看完本文后有所收獲, 還希望您隨手點個在看 、或者分享轉發。您的支持是我堅持分享的最大動力!

  往期精彩  

◆  必看 | Linux系列學習書籍免費送

◆  利用expect批量修改Linux服務器密碼

◆  nginx+Keepalived 實現高可用集群

◆  干貨 | LVM快照學習

◆  一文帶你讀懂nginx反向代理

◆  抓包工具tcpdump用法說明

◆  零成本 | 手把手教你搭建個人博客

◆  實戰 | Hadoo大數據集群搭建

【深度好文】終於有人把雲計算、大數據和AI講明白了

◆  億級web系統負載均衡幾種實現方式

◆  一文帶你讀懂zookeeper在大數據生態的應用


我知道愛學習的你“在看”


免責聲明!

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



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