python(學習)四、 centos下python與yum重灌
因為學習 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
從python官網上下在python 壓縮包,在centos6.5系統上, 重新執行
./configure
make
make install
手工驗證python確實安裝成功: python -version 顯示當前版本為 2.6.6
2、修改yum
vim /usr/bin/yum 將#!/usr/bin/python 改為 #!/usr/bin/python2.6
可是啟動 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,搞定!
五、rpm包共享
python和yum重灌,這麼辛苦,很大程度上是找安裝包。所以將此次的安裝包上傳到csdn上,供大家使用。
http://download.csdn.net/download/csolo/10165185 可以下載文中的rpm包