為了測試 mesos,搞了一個 centos7.1,使用最小化安裝,然後自己安裝了 net-tools,「開發工具」集。後來想裝一下 DCOS Cli工具,結果發現 python 的 pip 不可用。
搜了一下,發現Centos7自動的python 版本為2.7.5,不含openssl 加密,而要下載的東西都是https 的,找了好久,希望能讓pip 忽略https 的驗證無果。查到一個訊息,說是2.7.9以上版本自備了 openssl 外掛程式。好吧,試試這個吧!
1、安裝一堆需要的軟體包,之所以搞了兩天,完全是被這些坑的,一步一個坑啊!
yum -y install openssl openssl-devel ncurses-devel.x86_64 bzip2-devel sqlite-devel python-devel zlib
2、下載python2.7.10原始碼包,解壓縮到一個臨時目錄中,我就放在/tmp 下了
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的時候會出錯:
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 不能用了,費了無數勁,也沒搞定,只好重裝了系統,反正是測試的虛擬機(不過第二天找到修復的辦法了)
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:
wget https://bootstrap.pypa.io/ez_setup.py
執行以下命令安裝,因為之前沒裝zlib-devel 模組,下面的命令執行不成功,沒辦法,yum install zlib- devel ,然後理新編譯python。
python ez_setup.py
下載pip原始碼,進入原始碼目錄進行安裝,這一步也因為第一步驟的相關元件沒裝,坑了半天
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
增加一個軟鏈接,這一步好像不是很必要:
ln -fs /usr/local/python/2.7.10/bin/pip /usr/bin/pip
本以為這樣就萬事大吉了,結果運行pip,直接報錯,又是因為依賴的組件沒裝。
最後再說一下,最好把新的 python 的路徑加到 PATH 環境變數中,否則還會有其他元件運作不正常。
以上是centos7.1安裝 python2.7.10詳細教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!