自由気ままに書いちゃおう

好きなことをつらつらと・・・

RHEL7にPython3系をオンラインインストール

■目的
EC2から作成したRHEL7.6の場合、デフォルトでPython2.7.5がインストールされているため、
Python3系をインストールする。

■環境
 ・
RHEL7.6(ami-00b95502a4d51a07e)
 ・インターネット接続可能

■作業前のPython情報
# python --version
Python 2.7.5

■手順
1.Python3系インストールに必要なパッケージのインストール
  # yum install gcc openssl-devel bzip2-devel libffi-devel

2.Python3系ダウンロードの為に、wgetをインストール
  # yum -y install wget

3.opensslのバージョン確認
  作業時の最新版であること。下記の場合には「1.0.2k-19.el7」でありRHLE7の最新版
  ※最新版でない場合には、yum update openssl openssl-devel openssl-libsを実施
  # rpm -qa | grep openssl
  openssl-devel-1.0.2k-19.el7.x86_64
  openssl-libs-1.0.2k-19.el7.x86_64
  openssl-1.0.2k-19.el7.x86_64
 
4.Python3系のインストーラーをダウンロード
  # cd /usr/local/src;pwd
  # wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

5.解凍およびコンパイル/インストール
  # tar xvzf Python-3.7.3.tgz
  # cd Python-3.7.3;pwd

  # ./configure --prefix=/usr/local/python
  # make
   →3分程度かかる。少し待つ。
  # echo $?           ※「0」であること
  # make install
   →1分程度かかる。少し待つ。「Successfully installed pip-19.0.3 setuptools-40.8.0」が出力されていることを確認
  # echo $?           ※「0」であること

  # ls -l /usr/local/python/   ※コンパイルによりディレクトリおよび中身が存在することが確認できる
  合計 0
  drwxr-xr-x 2 root root 295 12月 6 15:26 bin
  drwxr-xr-x 3 root root 24 12月 6 15:26 include
  drwxr-xr-x 4 root root 63 12月 6 15:26 lib
  drwxr-xr-x 3 root root 17 12月 6 15:26 share

6.環境変数PATHの修正
  # vi /root/.bash_profile
   修正前: PATH=$PATH:$HOME/bin
   修正後: PATH=$PATH:$HOME/bin:/usr/local/python/bin  ※赤字部分を追記

  # source /root/.bash_profile
  # echo $PATH
  /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/local/python/bin

7.python3用にシンボリックを作成する。
  もともと、Python2系の実行ファイル(/usr/bin/python2)は/bin/pythonにリンクされている。
  環境変数PATHを確認すると、/binよりも前にpythonファイルを作成すれば、デフォルトでPython3系を使用することが出来そう

  # ln -s /usr/local/python/bin/python3 /usr/local/bin/python
  # which python
  /usr/local/bin/python
  # python --version
  Python 3.7.3   ※期待通り、3系を使用している。

8.ついでにpipのシンボリックリンクも作成
  # ln -s /usr/local/python/bin/pip3.7 /usr/local/bin/pip
  # pip --version
  pip 19.0.3 from /usr/local/python/lib/python3.7/site-packages/pip (python 3.7)