オンライン上でプログラミング言語たるPythonをいろいろ弄ってみるのも面白いでしょうし、 孰れWebサービスを拵える、という目論みもあったりなかったり、 と言う訳で手元で管理しているさくらインターネットのVPSサーバーにPythonをインストールしてみました。 其の時の作業ログを備忘録で残しておきます。 因みにサーバーのOSはCentOS 5.9です。
Python2系と3系
2013年10月現在となっても未だ悩ましいのがPythonのバージョンです。 大分バージョン3系も使われるようになってきましたが、 後方互換性を大きく切り捨てたこともあり、 モジュールの対応もあってまだまだバージョン2系が多く使われているようです。 此処は最新のバージョン3系を採用したい処ですが、 ただlinuxディストリビューションでは通常バージョン2系が標準でインストールされており、 パッケージ管理が依存していますから、 普通にアップデートしてしまうと問題が発生する可能性が高くなります。
両バージョンを並存させる
従って出来ればバージョン2系と3系を並存させたい処です。 其の方法としては2種類あるようです。
一つは新規Python3系のインストール時にオプションとして --prefix でインストールディレクトリを指定する prefixスキーム があります。
もう一つは altinstall コマンドを利用する方法で、今回はお手軽な此方を採用してみました。
標準インストールされたPythonのバージョンを調べる
現在インストールされているPythonのバージョンは -V 若しくは --version オプションで調べられます。
Python 2.4.3
標準インストールされたPythonのディレクトリも見ておきます。
/usr/bin/python2
/usr/bin/python2.4
/usr/lib/python2.4
/usr/local/src/Python-3.3.2/PC/VS7.1/python20.wse
/usr/include/python2.4
/usr/lib64/python2.4
事前の準備
念の為サーバーのアップデートをします。
$ sudo yum update
CentOSのパッケージ管理のyumではバージョン2系の古いものしかリポジトリに用意されていない為、 今回ソースをダウンロードしてbuildしますので、 gccやautomakeなど開発環境が必要です。 Development Toolsが用意されていなければインストールする必要があるでしょう。
Pythonのダウンロード
Pythonを下のサイトからダウンロードします。
Python Releases2013年10月1日時点ではバージョン3系の最新版が Python 3.3.2 、バージョン2系の最新版が Python 2.7.5 となっています。 作業領域にディレクトリを移動しダウンロードして解凍します。
$ sudo wget http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tgz
$ sudo tar -xvzf Python-3.3.2.tgz
Pythonのbuild
例に依って、configure、make、make installしますが、 此処でバージョンを並存させる為に上でも書いたようにmake installではなく make altinstall します。
$ sudo ./configure
$ sudo make
$ sudo make test
$ sudo make altinstall
新規インストールしたPythonのバージョン確認
インストールが首尾良く運んだらバージョンを確認します。 但しPythonは2系統インストールされている筈ですので Pythonコマンドを用いると古いバージョンが表示されます。 新規インストールしたバージョンを見るには Python3.3 とします。
Python 2.4.3
$ python3.3 -V
Python 3.3.2
新規インストールしたPythonのディレクトリ確認
標準インストールされたPythonのディレクトリを再度確認すれば 新規Pythonインストール後も其の儘保存されている筈です。 併せて新規インストールしたバージョン3系Pythonのディレクトリも確認しておきます。
/usr/local/bin/python3.3
/usr/local/bin/python3.3m
/usr/local/bin/python3.3m-config
/usr/local/lib/python3.3
/usr/local/include/python3.3m
/usr/local/share/man/man1/python3.3.1
- Today's latte, Python.( photo credit: Yuko Honda via Flickr cc)