arc の日記

はてなダイアリーから引っ越してきました。さらに新しい記事は https://junkato.jp/ja/blog/ で書いています。

さくらサーバの動かなくなった日本語版Tracをアップグレード

さくらのPython2.4が2.5になってからTracがうまく動いてくれなかったのでアップグレードしました。もともとのTracは先人たちに倣い ~/local/ に入れています。そのときの記録は古いブログ記事にあります。

Tracのアップグレード

まずPython2.4関連ディレクトリへのシンボリックリンクを2.5に切り替えます。

cd ~/local/lib/
mkdir -p python2.5/site-packages
rm python
ln -s python2.5 python

Tracのインストールにsetuptoolsが要るようなので、ダウンロードしてインストールします。その際、インストール先ディレクトリを指定する~/.pydistutils.cfgを作成します。

echo "[install]" > ~/.pydistuils.cfg
echo "install_lib = $HOME/local/python/lib/python/site-packages" >> ~/.pydistutils.cfg
echo "install_scripts = $HOME/local/python/bin" >> ~/.pydistutils.cfg
cd ~/local/src/
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

setuptoolsが入ったらTracをインストールします。このとき、Genshiなど必要なライブラリも一緒にインストールされます。

easy_install -U http://www.i-act.co.jp/project/products/downloads/Trac-0.11.4.ja1.zip

これでTracが動いてくれたら万々歳なのですが、site-packagesにはまだPythonライブラリがいくつか足りません。動かそうとしたらSegmentation faultなどが起きてどうしようもありませんでした。

というわけで、色々と最新版を落としてきてインストールしました。

SQLiteのアップグレード

SQLiteをダウンロードしてインストールします。

./configureで--enable-load-extensionとか--disable-dynamicが要るという話がありましたが、最新版ではこれらはデフォルトの動作になっているようです。--prefixだけ指定して./configure後、make installします。

cd ~/local/src/
wget http://www.sqlite.org/sqlite-amalgamation-3.6.14.1.tar.gz
tar -zxvf sqlite-amalgamation-3.6.14.1.tar.gz
cd sqlite-3.6.14.1/
./configure --prefix=$HOME/local
make
make install

次はPySQLiteです。

cd ~/local/src/
wget http://oss.itsystementwicklung.de/download/pysqlite/2.5/2.5.5/pysqlite-2.5.5.tar.gz
tar -zxvf pysqlite-2.5.5.tar.gz
cd pysqlite-2.5.5
echo "include_dirs=$HOME/local/include" >> setup.cfg
echo "library_dirs=$HOME/local/lib" >> setup.cfg
python setup.py build
python setup.py install --prefix=$HOME/local

Subversionのアップグレード

Subversionも入れ直します。

僕の環境ではneonが見つからないと言われたので先にインストールしました。

cd ~/local/src/
wget http://www.webdav.org/neon/neon-0.28.4.tar.gz
tar -zxvf neon-0.28.4.tar.gz
cd neon-0.28.4
./configure --prefix=$HOME/local --with-ssl --with-libs=/usr/local --with-zlib --enable-shared --enable-static
make
make install

さて、Subversionです。./configure時に各所の資料で指定されている --enable-swig-bindings, --with-libs はunrecognized optionsと言われます。なくてもSWIG bindingを作れたので、どこかのバージョンで要らなくなったのでしょう。

cd ~/local/src/
wget http://subversion.tigris.org/downloads/subversion-1.6.2.tar.gz
tar -zxvf subversion-1.6.2.tar.gz
cd subversion-1.6.2
./configure --prefix=$HOME/local --with-swig=$HOME/local/bin/swig --with-neon=$HOME/local/ --with-apr=$HOME/local --with-apr-util=$HOME/local --with-ssl --without-berkeley-db --enable-shared --enable-static
make
make install
make swig-py
make install-swig-py

Tracの環境をアップグレード

あとはTracの環境をアップグレードすれば…

trac-admin ~/var/trac/path-of-trac-env upgrade
trac-admin ~/var/trac/path-of-trac-env wiki upgrade

動きました。よかった。

Pythonが2.4→2.5に変わったことで影響を受けたのは、Python2.4に依存するpysqliteとsvn-pythonです。今回の一連の手続きでは、それらのライブラリとTrac本体をアップグレードして、正常動作までこぎつけることができました。