FavoriteLoading
0

centos7.1安裝 python2.7.10

   為了測試 mesos,搞了一個 centos7.1,使用最小化安裝,然后自己安裝了 net-tools,“開發工具”集。后來想裝一下 DCOS Cli工具,結果發現 python 的 pip 不可用。

   搜了一下,發現 Centos7自動的 python 版本為2.7.5,不帶 openssl 加密,而要下載的東西都是 https 的,找了好久,希望能讓 pip 忽略 https 的驗證無果。查到一個信息,說是2.7.9以上版本自帶了 openssl 插件。好吧,試試這個吧!

1、安裝一堆需要的軟件包,之所以搞了兩天,完全是被這些坑的,一步一個坑啊!

1
yum -y install openssl openssl-devel ncurses-devel.x86_64  bzip2-devel sqlite-devel python-devel zlib

2、下載 python2.7.10源碼包,解壓到一個臨時目錄中,我就放在/tmp 下了

1
2
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
tar zxvf Python-2.7.10.tgz

3、編譯

編譯前,注意一下,configure時候要使用"--enable-shared",表示生成動態鏈接庫。(不然后面編譯mod_wsgi會出錯)僅使用這一項也不夠,開始僅使用--enable-shared選項,發現編譯完成后,進入Python2.7.10目錄,執行python、python2、python2.7在終端都是返回python2.7.5的提示符。所以,在執行configure命令的時候,還要加上"-rpath"選項,這個代表是否將生成的庫安裝在軟件的安裝目錄,默認是在安裝目錄,否則自己指定路徑。

先建立一個目錄,不然后面configure的時候會出錯:

1
2
3
mkdir -p /usr/local/python/2.7.10/lib
./configure --enable-shared --prefix=/usr/local/python/2.7.10 LDFLAGS="-Wl,-rpath /usr/local/python/2.7.10/lib"
make && make install && make clean

4、切換新版本

此處一定要把原來的 python2.7.5保留,我開始是直接覆蓋了老版本,結果發現 yum 不能用了,費了無數勁,也沒搞定,只好重裝了系統,反正是測試的虛擬機(不過第二天找到修復的辦法了)

1
2
mv /usr/bin/python /usr/bin/python2.7.5
ln -fs /usr/local/python/2.7.10/bin/python2.7 /usr/bin/python

5、解決 yum 的問題

因為yum需要使用Python2.7.5的版本,現在 yum 應該不能干活了,還有設置一下yum相關的文件,這樣執行yum相關的命令時才不會出錯。vi /usr/bin/yum,修改第一句,替換成保留的2.7.5的版本:

!/usr/bin/python2.7.5

看了很多人說改完上面的就萬事大吉了,我修改了上面的之后,yum還是出問題,然后又根據出問題的部分修改了"/usr/libexec/urlgrabber-ext-down"下的第一句:

!/usr/bin/python2.7.5

果然熟悉的 yum 界面出來了!

5、安裝 setuptools、pip

老版本的這些,都不能生效了,得重新裝過,我在這遇到很多坑,菊花殘,滿身傷啊!

下載ez_setup.py文件,安裝setuptools:

1
wget https://bootstrap.pypa.io/ez_setup.py

運行以下命令安裝,因為之前沒裝 zlib-devel 模塊,下面的命令執行不成功,沒辦法,yum install zlib-devel ,然后理新編譯 python。

python ez_setup.py 

下載pip源碼,進入源碼目錄進行安裝,這一步也因為第一步驟的相關組件沒裝,坑了半天

1
2
3
4
wget https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#md5=3823d2343d9f3aaab21cf9c917710196
tar zxvf Python-2.7.10.tgz
cd Python-2.7.10
python setup.py install

增加一個軟鏈接,這一步好象不是很必要:

1
ln -fs /usr/local/python/2.7.10/bin/pip /usr/bin/pip

本以為這樣就萬事大吉了,結果運行 pip,直接報錯,又是因為依賴的組件沒裝。

最后再說一下,最好把新的 python 的路徑加到 PATH 環境變量中,否則還會有其他組件運行不正常。

【聲明】:8090安全小組門戶(http://www.jvwkvg.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。