linux 升級yum對應的python


這里記錄一下linux 系統升級python對yum帶來影響的解決辦法

  很多人在使用linux系統執行python任務的時候需要升級linux系統自帶的python到高級版本。具體如何升級python這里就不做介紹了。簡單說一下,一般重源碼編譯安裝高版本的python,如果指定安裝目錄,就不會覆蓋系統的原生python,這里升級之后就可以通過ln -s的方式把新版本聲明到系統里。系統里就可以使用新版本的當作默認環境。如果未指定安裝目錄對原生進行覆蓋就直接將新版本聲明到系統,並且成了默認的python環境。

  升級python之后yum隨之就出現問題了。非覆蓋安裝的比較容易解決,只需要將/usr/bin/yum 文件的shebang中python改成python2.6(或系統原先老版本號)就可以了。網上搜索python升級yum問題的時候大多也都是這個方案文檔。但是這個方法並不適用於覆蓋安裝的方法。

  覆蓋安裝的解決方法稍微復雜一點。需要將yum依賴的庫文件從老的環境里安裝到新環境中。這個需要提前重老版本中備份出來。如果沒有備份也可使用其他正常機器上的這幾個文件。

  直接將這幾個目錄文件復制到現在新python 環境中的lib庫目錄下即可。

  依賴如下:

      rpm*,urlgrabber*,pycurl,sqlite*,sqlitecachec*

      這些依賴都在/usr/lib/python/site-packages和/usr/lib64/python/site-packages以及/usr/lib64/python/lib-dynload目錄中。

      sqlite是_sqlite.so一個文件在lib-dynload下,sqlitecache中有一個_sqlitecachec.so和其他sqlitecachec*文件在site-packages目錄下

      rpm和urlgrabber都是多個目錄ls | grep rpm 出現的都是需要的依賴不可缺少。在site-packages目錄下

      pycurl 可以直接使用easy_install 安裝

   

  上述方法在2.6到2.7升級,以及2.7到其他2.7版本升級中測試可以解決yum不可用問題。此外的版本並未測試,不知道是否有效。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM