CentOS 5.5 に Python 2.6.6 をインストール

CentOS のサーバで python を使おうとしたら…

[paraches@centos ~]$ python
Python 2.4.3 (#1, Sep  3 2009, 15:37:37) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

2.4.3って、ちょっと古いな…


というわけで、Python 2.6.6 をインストールしてみた。

Python 2.6.6 をインストール

python のソースはここからダウンロードしてくる。なんで日本のページにリンクはないのかな?

[paraches@centos python26]$ wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz
[paraches@centos python26]$ tar zxvf Python-2.6.6.tgz 
[paraches@centos python26]$ cd Python-2.6.6

で、オプション付けて configure する。

[paraches@centos Python-2.6.6]$ ./configure --with-threads --enable-shared

make の前に、zlib module を有効にするために Modules/Setup を修正。
修正内容は1カ所コメントを外すだけ。

[paraches@centos Python-2.6.6]$ cat Modules/Setup
<省略>
# Andrew Kuchling's zlib module.
# This require zlib 1.1.3 (or later).
# See http://www.gzip.org/zlib/
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
<省略>

修正したら make & make install

[paraches@centos Python-2.6.6]$ make
[paraches@centos Python-2.6.6]$ sudo make install

無事終了!

共有ライブラリの設定

インストールしたのでとりあえず起動すると…

[paraches@centos Python-2.6.6]$ /usr/local/bin/python
/usr/local/bin/python: error while loading shared libraries: libpython2.6.so.1.0: cannot open shared object file: No such file or directory
[paraches@centos Python-2.6.6]$ ls /usr/local/lib
libatalk.a   libid3tag.la    libid3tag.so.0.3.0   mt-daapd
libatalk.la  libid3tag.so    libpython2.6.so      python2.6
libid3tag.a  libid3tag.so.0  libpython2.6.so.1.0

と怒られる。共有ライブラリが見つからない!って。
前にも書いたけど、共有ライブラリの設定が必要。/etc/ld.so.conf.d/python2.6.conf を作ってそこにライブラリへのパスを書いて、ldconfig で登録。

[paraches@centos Python-2.6.6]$ sudo vi /etc/ld.so.conf.d/python2.6.conf
[paraches@centos Python-2.6.6]$ cat /etc/ld.so.conf.d/python2.6.conf
/usr/local/lib

[paraches@centos Python-2.6.6]$ 
[paraches@centos Python-2.6.6]$ sudo /sbin/ldconfig
[paraches@centos Python-2.6.6]$ /usr/local/bin/python
Python 2.6.6 (r266:84292, Sep 25 2010, 17:37:19) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[paraches@centos Python-2.6.6]$ 

ちゃんとインストールした Python 2.6.6 が起動した!

Python 起動の設定

新しいバージョンをインストールした時にいつもどうしたら良いのか迷うのがここ。システムの色々が古いバージョンに依存してそうで、新しいバージョンにすると動かなくなっちゃうんじゃないか?って。安易に /usr/bin/python を /usr/local/bin/python にリンクしちゃってもダメだろうし…。
というわけで、まずは /usr/local/bin をパスへ加える。
これは .bash_profile で。

[paraches@centos ~]$ cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/bin

export PATH
[paraches@centos ~]$ 

で、alias で python を python2.6 にする。
これは .bashrc で。

[paraches@centos ~]$ cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# User specific aliases and functions
alias python='python2.6'
[paraches@centos ~]$ 

これで、python と入力すると、python2.6 になって /usr/local/bin の python2.6 が起動する。

[paraches@centos ~]$ python
Python 2.6.6 (r266:84292, Sep 25 2010, 17:37:19) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
[paraches@centos ~]$ 

とりあえずはここまで。