記一次python升級版本遇到的事

誤卸載python導致yum無法使用事件(總結)

由於伺服器需要升級python,參照了一篇坑爹的文章卸載了舊版python # 卸載舊的python sudo rpm -evf –nodeps python 導致yum無法使用 

# yum -v There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: No module named yum 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.7.3 (#1, Feb 3 2012, 15:37:12) [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] If you cannot solve this problem yourself, please go to the yum faq at:http://wiki.linux.duke.edu/YumFaq

由於yum是基於python centos6.2默認使用python2.6.6,我又源碼安裝了一遍python2.6.6, 修改了vi /usr/bin/yum #/usr/bin/python修改為#/usr/bin/python2.6 執行yum-v還是不行~~

於是就從centos6.2光碟找python和yum的rpm包安裝,一番嘗試之後,發現有N個package需要重新安裝,這裡就不寫嘗試過程,終於搞定!

解決方法如下

cnetos6.2*64光碟rpm包地址http://mirrors.ustc.edu.cn/centos/6.2/os/x86_64/Packages/

需要安裝這幾個包 python-2.6.6-29.el6.x86_64.rpm python-devel-2.6.6-29.el6.x86_64.rpm python-iniparse-0.3.1-2.1.el6.noarch.rpm python-setuptools-0.6.10-3.el6.noarch.rpm python-urlgrabber-3.9.1-8.el6.noarch.rpm rpm-python-4.8.0-19.el6.x86_64.rpm yum-3.2.29-22.el6.centos.noarch.rpm yum-metadata-parser-1.1.2-16.el6.x86_64.rpm python-pycurl-7.19.0-8.el6.x86_64.rpm

注意rpm命令,必須要追加 –replacepkgs 參數,強制其重新安裝,否則rpm會報告說package已安裝。 rpm -Uvh –replacepkgs ***.rpm 如果仍然無法運行Yum,則運行 Python,import yum,查詢下缺少什麼東西。

# python Python 2.6.6 (r266:84292, Dec 7 2011, 20:48:22) [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>import yum

//會提示相關的錯誤,查找對應的rpm,裝上即可,重複此過程,直到 yum 正常

關於yum異常問題處理之「土」方法:

#vim /usr/bin/yum 

將首行顯示的 !#/usr/bin/python 修改為 !#/usr/bin/python2.6(我的系統默認安裝的是python2.6,你也可以用whereis python 查看升級前和升級後的版本)  

#############################

源碼包安裝了 python2.7  想還原為系統默認

whereis python   

找到2.7 的python全部刪掉,然後執行,yum 如果正常,則看python是否正常

結果有問題:

python  

  /usr/local/bin/python No such file or directory" 

做個軟連接就ok 

pwd   /usr/local

ln -s /usr/local/bin/python2.6  python