RHEL7(Red Hat Enterprise Linux 7)でPython2系をバージョンアップする方法について書いておきます。
注意点
Python2系は2020年1月1日でEOLを迎えており、Python2の最後のリリースは2020年4月20日のバージョンとなっています。
そのため、そもそもPython2のバージョンアップが必要な状況はほとんどないでしょう。
Python Release Python 2.7.18 | Python.org
また、RHELも8がリリースされていることから7を使う機会は少ないと思われます。
とはいえ、検証をおこなうために古いバージョンを使わないといけないこともあるでしょう、ということでおこなった作業と参考にした内容を書いておきます。
最後に、デフォルトでインストールされているPython2は弄らないようにします。
システムで使われているものなので、どのような影響が出るかわからないためです。
環境
- RHEL7.7
- Python2.7.5(デフォルトでインストール)
RHEL7で実行できたので、CentOS7でも実行できると思います。
手順
以下の記事を参考に進めます。
ひとまず、デフォルトのPythonのバージョンを確認します。
おそらく2.7.5だと思います。
$ python -V
必要パッケージのインストール
以下のコマンドで必要なパッケージをインストールします。
$ sudo yum install wget
$ sudo yum install gcc openssl-devel bzip2-devel
Python2.7.18の取得
yum install python
では2.7.5しかインストールできないので、Pythonのtgzファイルを取得します。先程インストールしたwgetをここで使います。
ダウンロードしたファイルを展開します。
$ wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
$ tar xzf Python-2.7.18.tgz
Python2.7.18のインストール
展開したフォルダに移動して、make altinstall
をおこないます。
参考の記事にも書かれている通り、デフォルトでインストールされているPythonを弄らないように別の場所(この場合は/user/local/bin
)にインストールします。
$ cd Python-2.7.18
$ ./configure --enable-optimizations
$ sudo make altinstall
$ sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python
確認
上のコマンドが完了したら、いったん確認します。Pythonがインストールできているか、そしてそのバージョンの確認です。
2.7.18と表示されるはずです。
$ /usr/local/bin/python -V
さらに、以下のコマンドを実行します。最初に確認したコマンドと同じです。このコマンドの結果は2.7.18ではない可能性があります。
先程インストールした/usr/local/bin/
にPATHが通っていない、もしくは後になっていると考えられます。
$ python -V
現状のpythonコマンドの実行ファイルを確認してもよいかもしれません。
おそらくデフォルトの/usr/bin
となっているでしょう。
$ which python
また、PATHを確認します。
$ echo $PATH
環境変数を管理している/etc/profile
ファイルを編集してPATHに追加します。
ファイル末尾に以下を追記するだけで問題ないと思います。
PATH=/usr/local/bin/:$PATH
Pythonのバージョンアップ自体はこれで完了です。
pipをインストールするのであれば以下の作業を続けます。
pipのインストール
参考にしてきたIBMのサイトでもpipのインストール方法が紹介されていますが、このままではインストールができません。
pipも現在はPython3に対応しており、取得したget-pip.py
がPython2系ではSyntaxErrorになってしまうためです。以下のコマンドで対応したバージョンのpipをインストールしましょう。
$ curl "https://bootstrap.pypa.io/2.7/get-pip.py" -o "get-pip.py"
$ sudo /usr/local/bin/python get-pip.py
必要であればシンボリックリンクを作成しておき、pipコマンドが使えるようにしておきます。
$ sudo ln -s /usr/local/bin/pip /usr/bin/pip
参考
- (参考) Python 2.7.15 を RHEL にインストールして統合サーバーを構築する方法
- (参考) RHEL に Python 2.7.x をインストールして統合サーバーを構築する方法: 上とほとんど同じ内容ですが、コマンドの改行位置がおかしくなっています。
- Python2 で get-pip.py で SyntaxError - Qiita