CentOS 5 に Python 2.6 & PIP を導入(EPELリポジトリの利用)

我が家には CentOS 5 で動作しているサーバーがいるのですが、そいつに新しいことをやらせたくて、Python 環境をアップグレードしようとしたので、今日はそのメモです。

CentOS 5 は Python 2.4 が標準となっていますが、PIP以前ネタにした setuptools の上位版のようなもの)は、2.6以降にしか対応していません。 CentOS のオフィシャルなリポジトリには Python のアップデートはありませんので、今回は EPEL リポジトリを有効にしてそちらから Python 2.6 を入れ、その上で easy_install と PIP を導入しました。

導入手順

EPEL は、RHEL(Red Hat Enterprise Linux)やその派生ディストリビューションCentOSなどですね)向けの RPM リポジトリで、Fedora向けにつくられた RPM パッケージを RHEL に適用できるように調整したものが収められています。

公式サイトにかかれているとおり、RHELのバージョンに応じた epel-release パッケージをダウンロードしてインストールすれば、yum が EPEL リポジトリも参照するようになり、python2.6もインストールできるようになります。

$ wget http://ftp.iij.ad.jp/pub/linux/fedora/epel/5/i386/epel-release-5-4.noarch.rpm
$ sudo rpm -i ./epel-release-5-4.noarch.rpm 
$ sudo yum install python26

なお、EPELからのパッケージを始めてインストールしようとするときは、署名の確認が行われますので、「署名を信用する」と答えてやる必要があります。(が、[公式の鍵一覧:title=https://getfedora.org/keys/]には、もはや EPEL 5 用の鍵は掲載されていないという……)

つづけて、setuptools(easy_install) と pip の導入ですが、手順は以下のとおりです。

$ wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
$ sudo python26 ez_setup.py --insecure
$ sudo easy_install-2.6 pip

ez_setup.py の取得等で証明書チェックなどを無効にしているのは、 setuptools の公式解説に書いてあるとおり、CentOS 5 のような古い環境での workaround です。SSLの署名チェックが行われないので、中間者攻撃などが行われた場合は悪意のあるバイナリが紛れ込む可能性のある、危ない状況ですので、やる場合は覚悟が必要です。

これで、なんとか、python26, easy_install-2.6, pip2.6 という名前のコマンドがインストールされ、使えるようになりました。

とはいえ、こんなことまでして古い環境延命させるぐらいなら、とっとと新しい環境に移行したいところですね。