python升级导致yum命令无法使用的解决办法


1、报错信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
[root@sa ~]# yum install prce -y
There was a problem importing one of the Python modules required to run yum. 
The error leading to this problem was:
   libxml2.so.2: cannot open shared object file: No such file or directory
Please install a package which provides this module, or verify that the module 
is installed correctly.
It's possible that the above module doesn't match the current version of Python, 
which is:
2.6.6 (r266:84292, Oct 12 2012, 14:23:48) 
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)]
If you cannot solve this problem yourself, please go to the yum faq at:
  http://yum.baseurl.org/wiki/Faq


1
2
3
4
5
6
7
8
9
10
11
[root@sa yum.repos.d]# yum repolist
There was a problem importing one of the Python modules required to run yum. 
The error leading to this problem was:
   libxml2.so.2: cannot open shared object file: No such file or directory
Please install a package which provides this module, or verify that the module 
is installed correctly.
It's possible that the above module doesn't match the current version of Python, 
which is: 2.6.6 (r266:84292, Oct 12 2012, 14:23:48) 
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)]
If you cannot solve this problem yourself, please go to the yum faq at:  
http://yum.baseurl.org/wiki/Faq

------------------------------------------------------------------------------------------------------------------------

错误原因:错误信息描述为 yum 所依赖的python 不相符,请安装相对应的python即可


2、查看yum版本

1
2
3
[root@develop local]# rpm -qa |grep yum
yum-3.2.8-9.el5.centos.1
yum-metadata-parser-1.1.2-2.el5



3、查看python版本

1
2
3
4
[root@develop local]# whereis python  
python: /usr/bin/python2.4 /usr/bin/python /usr/lib/python2.4 
/usr/local/bin/python2.6 /usr/local/bin/python2.6-config /usr/local/bin/python 
/usr/local/lib/python2.6 /usr/share/man/man1/python.1.gz


果然装了两个版本python


4、执行python,查看到使用2.6.1的版本

[plain]view plaincopyprint?

[root@develop local]# python  

Python 2.6.1 (r261:67515, Aug 7 2010, 11:36:17)  

[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2  

Type "help", "copyright", "credits" or "license" for more information.  

>>>  


5、猜测yum调用了高版本的python。


6、解决方法:

查找yum和 yum-updatest文件,并编辑此py文件

1
2
3
4
[root@develop local]# which yum  
/usr/bin/yum  
[root@develop local]# vi /usr/bin/yum  
[root@develop local]# vi /usr/bin/yum-updatest


#!/usr/bin/python

改为:

#!/usr/bin/python2.4


然后保存OK.


如果不修改/usr/bin/yum ,则yum无法使用

如果不修改/usr/bin/yum-updatest  会出现如下错误

 File "/usr/sbin/yum-updatesd", line 35, in

    import dbus

ImportError: No module named dbus


当然,修改完后记着

1
2
3
[root@localhost google_appengine]# /sbin/service yum-updatesd restart  
Stopping yum-updatesd:                                     [FAILED]  
Starting yum-updatesd:                                     [ OK   ]


补充:yum基于python写的。


本文转自 Mr_sheng 51CTO博客,原文链接:http://blog.51cto.com/sf1314/2062329


上一篇:docker导出镜像和导入镜像


下一篇:Python 技术篇-用smtplib和email库实现邮件发送各种类型的附件实例演示