在 RHEL 7 安裝 Python 3.x 版

 

RHEL 7.0 預設的 python 是 2.7 版

image

官網【https://www.python.org/ftp/python/】目前最新的版本是 3.7,但是,compile 之後怪怪的,這裡先以 3.6.3 版為例:

image

image

官網【https://www.python.org/downloads/】是使用 GnuPG 的方式驗證

image

匯入 python 的 GnuPG public key 之前,先看看目前的 public key 清單

gpg –list-keys

image

從 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

image

再次檢查 GnuPG public key,應該會看到一堆

gpg –list-keys

image

下載 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

image

使用 GnuPG public key 檢查檔案是否一致?

gpg –verify Python-3.6.3.tgz.asc

image

如果下載不完整或檔案損毀,會出現錯誤訊息

image

重新再 download 一次

image

安裝 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】,不用理會…

image

解開 source code

tar zxvf Python-3.6.3.tgz

image

configure,利用 logical AND,如果 configure 成功,則顯示 OK 在螢幕上

cd Python-3.6.3/

./configure –prefix=/usr/local && echo OK

image

看到 logical AND 顯示的【OK】,表示 configure 成功。

image

compile source code,這裡是一個 core 的 CPU,所以,參數是 -J1

make -j1 && echo OK

image

image

安裝

make install && echo OK

image

image

compile 完成之後,會是 python 2.x 跟 3.x 並存的環境

ls -l $(which python)

ls -l $(which python3.6)

image

這裡先不理會 python 2.x 跟 3.x 版的語法差異

image

最後,將剛剛的動作,全部包成一個 shell script

#!/bin/bash
# Version 0.0.1 Nov,20 2017 Anderson Wang
#################################################
PWD=$(pwd)
cd /tmp
gpg –list-keys
gpg –recv-keys 6A45C816 36580288 7D9DC8D2 18ADD4FF A4135B38 A74B06BF EA5BBD71 E6DF025C AA65421D 6F5E1540 F73C700D 487034E5 –keyserver pgp.mit.edu
gpg –list-keys
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
gpg –verify Python-3.6.3.tgz.asc
yum install zlib-devel openssl-devel readline readline-devel sqlite-devel tkinter ncurses-static ncurses-base ncurses-term gcc -y
tar zxvf Python-3.6.3.tgz
cd Python-3.6.3
./configure –prefix=/usr/local && echo OK
make -j1 && echo OK
make install && echo OK
ls -l $(which python)
echo
ls -l $(which python3.6)

 

image

直接執行 shell script,就可以安裝 python 3.x 版了

image

image

大約幾分鐘時間,python 3.x 版就 compile 完成!

本篇發表於 Bookmark, CentOS 6, CentOS 7, Linux, python, RHEL 6, RHEL 7。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s