2021-02-13に投稿

RHEL7でPython2系を更新する

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

参考

Originally published at qiita.com
ツイッターでシェア
みんなに共有、忘れないようにメモ

s1r-J

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント