RHEL 7.0 預設的 python 是 2.7 版
官網【https://www.python.org/ftp/python/】目前最新的版本是 3.7,但是,compile 之後怪怪的,這裡先以 3.6.3 版為例:
官網【https://www.python.org/downloads/】是使用 GnuPG 的方式驗證
匯入 python 的 GnuPG public key 之前,先看看目前的 public key 清單
gpg –list-keys
從 key server【http://pgp.mit.edu】下載 public key
gpg –recv-keys 6A45C816 36580288 7D9DC8D2 18ADD4FF A4135B38 A74B06BF EA5BBD71 E6DF025C AA65421D 6F5E1540 F73C700D 487034E5 –keyserver pgp.mit.edu
再次檢查 GnuPG public key,應該會看到一堆
gpg –list-keys
下載 python 3.6.3
cd /tmp
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz.asc
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
使用 GnuPG public key 檢查檔案是否一致?
gpg –verify Python-3.6.3.tgz.asc
如果下載不完整或檔案損毀,會出現錯誤訊息
重新再 download 一次
安裝 compile 需要使用的 RPM 套件
yum install zlib-devel openssl-devel readline readline-devel sqlite-devel tkinter ncurses-static ncurses-base ncurses-term gcc -y
RHEL 7 並沒有【tkinter】【ncurses-static】,不用理會…
解開 source code
tar zxvf Python-3.6.3.tgz
configure,利用 logical AND,如果 configure 成功,則顯示 OK 在螢幕上
cd Python-3.6.3/
./configure –prefix=/usr/local && echo OK
看到 logical AND 顯示的【OK】,表示 configure 成功。
compile source code,這裡是一個 core 的 CPU,所以,參數是 -J1
make -j1 && echo OK
安裝
make install && echo OK
compile 完成之後,會是 python 2.x 跟 3.x 並存的環境
ls -l $(which python)
ls -l $(which python3.6)
這裡先不理會 python 2.x 跟 3.x 版的語法差異
最後,將剛剛的動作,全部包成一個 shell script
#!/bin/bash |
直接執行 shell script,就可以安裝 python 3.x 版了
大約幾分鐘時間,python 3.x 版就 compile 完成!