Mercurialのインストール

さくらインターネットのレンタルサーバには既にPythonがインストールされている。 しかし,Mercurialをインストールしてみると使えるには使えるのだがC APIバージョンが違うという警告が表示される。 webで調べていたらユーザー環境にPythonを導入するVirtual PythonとパッケージマネージャEasyInstallというのがあると知ったのでインストールしてみた。

2009年9月にさくらインターネットのレンタルサーバにMercurialをインストールした際の手順を記録しておく。

Virtual Pythonのインストール

virtual-python.pyを取得。ディレクトリはどこでも良いとは思うがホームで行った。

>wget http://peak.telecommunity.com/dist/virtual-python.py
>python2.6 virtual-python.py --prefix=$HOME/local/python

Pythonのバージョンを指定したが,サーバーには2.6しか入っていなかったので意味がなかった気がする。 インストール先は他のものと混ざらないようにPython用のディレクトリを作ることにした。 --no-site-packagesも指定した方が良かったのかな?

インストールされると以下のような構成になる。

local/
  +-python/
      +-bin/
      |   +-python
      +-include/
      |   +-python2.6/
      |       +-Python-ast.h@ -> /usr/local/include/python2.6/Python-ast.h
      |       + ...
      +-lib/
          +-python2.6/
              +-BaseHTTPServer.py@ -> /usr/local/lib/python2.6/BaseHTTPServer.py
              + ...
              +-site-packages/
                  +-README@ -> /usr/local/lib/python2.6/site-packages/README
                  + ...

パッケージマネージャ"EasyInstall"のインストール

各種ツールやライブラリのインストールが楽になるのでパッケージマネージャを導入する。

>wget http://peak.telecommunity.com/dist/ez_setup.py
>local/python/bin/python ez_install.py

これで以下のようにインストールされる。

local/
  +-python/
      +-bin/
      |   +-easy_install
      |   +-easy_install2.6
      +-lib/
          +-python2.6/
              +-site-packages/
                  +-easy-install.pth
                  +-setuptools-0.6c9-py2.6.egg

使う準備

telnet/sshでPython,EasyInstallを使うために.cshrcを設定。set pathの次の行に追加。

set path = ($HOME/local/python/bin $path)

Mercurialを使うだけなら必要ないかもしれないが,日本語を使うために文字コードを設定。

>cd local/python/lib/python2.6/site-packages
>vi sitecustomize.py

sitecustomize.pyには次のように書く。これで自動的にUTF-8になる。

import sys
sys.setdefaultencoding('utf-8')

パス設定などを有効にするため一度ログアウトして再ログイン。

Mercurialのインストール

パッケージマネージャを使ってMercurialをインストール

>easy_install mercurial

これで以下のようにインストールされる。

local/
  +-python/
      +-bin/
      |   +-hg
      +-lib/
          +-python2.6/
              +-site-packages/
                  +-mercurial-1.3.1-py2.6-freebsd-7.1-RELEASE-p6-i386.egg/
                      +-...

以下の設定は必要なかった。どうするのが正しい方法なんだろう。

.cshrcの環境変数

setenv  PYTHONHOME ~/local/python
setenv  PYTHONPATH ~/local/python/lib/python2.6

setuptoolsの設定

~/.pydistutils.cfg

[install]
install_lib = ~/local/python/lib/python2.6/site-packages
install_scripts = ~/local/python/bin