下午工做的時候遇到了一個問題,測試服務器上的 yum 不知爲什麼不能使用,拋出錯誤 No module named yum
。Google 了以後發現基本都是講修改 yum 使用的 python 版本,可是在我嘗試安裝了 python2.6 並修改了 /usr/bin/yum
文件後發現仍是不行,因而決定重裝 yum。html
首先查看現有的 yum:node
rpm -qa yum
卸載現有的 yum 源:python
rpm -qa | grep yum | xargs rpm -e --nodeps
先查看系統版本:linux
cat /etc/centos-release
肯定系統版本爲 CentOS Linux release 7.0.1406 (Core)
後,到官網查找下列 rpm 包:
http://mirror.centos.org/centos/7/os/x86_64/Packages/segmentfault
若是爲其餘系統,可自行查找對應的包下載。centos
下載 yum 的 rpm 包:服務器
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-3.4.3-163.el7.centos.noarch.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
須要一塊兒安裝,否則會報互相依賴的錯誤。python2.7
在安裝以後,我運行 yum 的時候仍是報錯:/usr/lib64/python2.7/site-packages/rpm/_rpm.so: undefined symbol: rpmtsAddReinstallElement
這是因爲 rpm 包的版本不對應致使的。使用下列指令查看:測試
rpm -qa | grep rpm
顯示結果爲:ui
rpmfusion-free-release-7-4.noarch rpm-python-4.11.3-40.el7.x86_64 rpm-libs-4.11.3-25.el7.x86_64 rpm-4.11.3-25.el7.x86_64 rpm-build-libs-4.11.3-25.el7.x86_64
發現其中 rpm-python
的包爲 3-40
,而其餘包版本爲 3-25
。這時再去下載對應 3-40
的包:
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/rpm-4.11.3-40.el7.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/rpm-build-libs-4.11.3-40.el7.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
運行下述指令更新包:
rpm -Uvh rpm-4.11.3-40.el7.x86_64.rpm rpm-build-libs-4.11.3-40.el7.x86_64.rpm rpm-libs-4.11.3-40.el7.x86_64.rpm
安裝成功後再運行 yum
指令,就發現安裝成功啦~
Python 升級致使 yum 不可用 「 No module named yum」 - Linux 社區
yum 的卸載與從新安裝 - CSDN
CentOS7 的 yum 重裝 - CSDN
centos7 中 yum 的安裝 - 博客園
CentOS7 誤刪 python 及 yum(重裝)
rpm 安裝依賴問題 - 思否