因为学习 tensorflow,安装了python2.7 ,只是安装后删除了python2.6 ,某天使用yum的时候,发现yum不能使用了。除了显示No module named yum外,还提示dont match current version 2.7.14. 上网搜索了一下,主要是说因为python2.7 与 Centos 6.5的yum不匹配,因为yum是基于python写的,所以报错了,建议是修改yum中的python指向,可是一波好多折,下面说一下整个过程。
下面说一下解决过程:
一、首先想到的解决办法是,重装python2.6,然后修改yum 文件,将python指向新安装的python2.6
1、重装python2.6
./configure
make
make install
手工验证python确实安装成功: python -version 显示当前版本为 2.6.6
2、修改yum
可是启动 yum 还是报错误
这下有点抓瞎了,想不明白为啥这么衰。
二、卸载yum
一不做二不休,反正python已经重装了,直接把yum卸载了重装。 之所以重装,是因为事先从网上下载了一些yum rpm包,可是这下安装就报各种依赖错误。
准备的安装包如下:
-rw-r--r-- 1 root root 37052 Dec 19 15:51 python-iniparse-0.3.1-2.1.el6.noarch.rpm
-rw-r--r-- 1 root root 1019540 Feb 24 2013 yum-3.2.29-40.el6.centos.noarch.rpm
-rw-r--r-- 1 root root 27224 Sep 26 2011 yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
-rw-r--r-- 1 root root 28220 Jun 25 2012 yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm
卸载命令:
rpm -qa | grepyum| xargs rpm -e --nodeps
安装命令:
先要安装python-iniparse-0.3.1-2.1.el6.noarch.rpm ,可是安装这个就提示缺少 python(abi),查了一下,这个就是python的基本包,痛苦万分
三、再次卸载python 并安装 python2.6.6
现在怀疑是python 通过源码安装,不完整。于是网上找python2.6.6 rpm包,辛苦找了一圈,要么不可用,要么下载不了。苦恼的时候,想起来,python2.6.6 既然是centos自带的,那么安装文件应该有这些包才对。
打开centos的iso文件,进入packages目录,果然发现一堆的rpm包,结合网上资料,选取下面rpm包,传到我的centos系统上:
-rw-r--r-- 1 root root 75716 Nov 25 2013 python-2.6.6-51.el6.x86_64.rpm
-rw-r--r-- 1 root root 174644 Nov 25 2013 python-devel-2.6.6-51.el6.x86_64.rpm
-rw-r--r-- 1 root root 5582212 Nov 25 2013 python-libs-2.6.6-51.el6.x86_64.rpm
-rw-r--r-- 1 root root 78440 Jul 6 2011 python-pycurl-7.19.0-8.el6.x86_64.rpm
-rw-r--r-- 1 root root 87096 Jul 30 2013 python-urlgrabber-3.9.1-9.el6.noarch.rpm
一开始想用rpm -ivh 包名安装,发现会有相互依赖,索性一起安装, rpm -ivh py*rpm
这下python是妥妥的安装了
四、重新安装 yum
重新安装 yum,先安装 yum metadata(元数据)包,还是比较顺利的。
在安装noarch包的实时,还会报一个错误
这个提示是指,依赖于 rpm-python 和另外yum的 plugin-fastestmirror。先安装 rpm-python包,从centos 的iso安装文件里面,解出rpm-python-4.8.0-55.el6.x86_64.rpm 来安装。由于yum的norach 与plugin包也存在依赖关系,所以可以直接 rpm -ivh yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm yum-3.2.29-40.el6.centos.noarch.rpm 一起安装。看到进度条,这下放心了。
手工执行一下yum,
看到yum开始工作,ok,搞定!