さくらインターネットの共用サーバに Subversion + Trac をインストールする

前エントリでも追記しましたが、

動きました。

ヤッホーイ。Google Code との Sync もばっちりです。今回はひとまず、環境構築までの手順をざっくりと紹介します。読みにくいけどね。これは Wiki にまとめるべきだな。例は全て bash 前提。

環境準備

$ mkdir -p $HOME/local/src
$ cd $HOME/local/src
$ mkdir -p $HOME/local/lib/python2.4/site-packages
$ ln -s ~/local/lib/python2.4 ~/local/lib/python
$ export PYTHONPATH="$HOME/local/lib/python\
>:$HOME/local/lib/python/site-packages"
$ export PATH="$HOME/local/bin:$PATH"
$ export LD_LIBRARY_PATH="$HOME/local/lib"

SWIG

Subversion の configure 時に 1.3.29 とか言われているような気がするのでそのバージョンを選択する。

$ cd $HOME/local/src
$ wget http://jaist.dl.sourceforge.net/sourceforge/swig/swig-1.3.29.tar.gz
$ gunzip swig-1.3.29.tar.gz
$ tar xvf swig-1.3.29.tar
$ cd swig-1.3.29
$ ./configure  --prefix=$HOME/local 
$ make
$ make install

APR & APR-util

0.9.x を要求されているのでその最新である 0.9.13。

$ cd $HOME/local/src
$ wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-0.9.13.tar.gz
$ tar zxvf apr-0.9.13.tar.gz
$ wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-0.9.13.tar.gz
$ tar zxvf apr-util-0.9.13.tar.gz

でこれはインストールしないで Subversion 配下にそれぞれ「apr」「apr-util」として置いておくと一緒に入れてくれるのでそうする。Subversion 展開した後でコピー。

$ cp -rf apr-0.9.13 subversion-1.4.3/apr
$ cp -rf apr-util-0.9.13 subversion-1.4.3/apr-util

Neon

「svn: SSL is not supported」とか言われてしまうので、configure に --with-ssl をつける。Subversion の INSTALL に 0.25.5 と書いてあるような気がするのでバージョンは 0.25.5。Subversion ディレクトリ以下に置いて Subversion と一緒にインストールすることができるけれど、そうすると「ImportError: /path/to/libsvn_ra_dav-1.so.0: Undefined symbol "SSL_load_error_strings"」などと言われるので --enable-shared も指定を指定して別個インストール。Subversion で --with-neon= を指定。

$ cd $HOME/local/src
$ wget http://www.webdav.org/neon/neon-0.25.5.tar.gz
$ tar xvzf neon-0.25.5.tar.gz
$ ./configure  --prefix=$HOME/local --with-ssl --with-libs=/usr/local \
>--enable-shared
$ make clean && make && make install

Subversion

大御所。configure のオプションにとても迷った。

$ cd $HOME/local/src
$ wget http://subversion.tigris.org/downloads/subversion-1.4.3.tar.bz2
$ tar jxf subversion-1.4.3.tar.bz2
$ cd subversion-1.4.3
$ ./configure --prefix=$HOME/local --without-berkeley-db \
>-with-python=$HOME/local/lib/python --enable-swig-bindings=python \
>--with-swig=$HOME/local/bin/swig --with-neon=$HOME/local/ --with-ssl \
>--with-libs=$HOME/local --disable-static
$ make clean && make && make install
$ make swig-py
$ make install-swig-py

以下も。

$ ln -s $HOME/local/lib/svn-python \
>$HOME/local/lib/python/site-packages/svn-python
$ ln -s $HOME/local/lib/svn-python/svn  \
>$HOME/local/lib/python/site-packages/svn
$ ln -s $HOME/local/lib/svn-python/libsvn  \
>$HOME/local/lib/python/site-packages/libsvn

sqlite

こっからは Trac 関連。

$ cd $HOME/local/src
$ wget  http://www.sqlite.org/sqlite-3.3.13.tar.gz
$ gunzip sqlite-3.3.13.tar.gz
$ tar -xvf sqlite-3.3.13.tar
$ cd sqlite-3.3.13
$ ./configure --prefix=$HOME/local --disable-dynamic
$ make
$ make install

pysqlite

sqlite のバージョンにマッチしたバージョンを選択すること。

$ cd $HOME/local/src
$ wget http://initd.org/pub/software/pysqlite/\
>releases/1.1/1.1.8/pysqlite-1.1.8.tar.gz
$ gunzip pysqlite-1.1.8.tar.gz
$ tar -xvf pysqlite-1.1.8.tar
$ cd pysqlite-1.1.8
$ export LOCALBASE="$HOME/local"
$ python setup.py build
$ python setup.py install --prefix=$HOME/local

clearsilver

0.10.x は何だか上手く行かないので 0.9.14。Trac が対応してないのかな。

$ cd $HOME/local/src
$ wget http://www.clearsilver.net/downloads/clearsilver-0.9.14.tar.gz
$ gunzip clearsilver-0.9.14.tar.gz
$ tar -xvf clearsilver-0.9.14.tar
$ cd clearsilver-0.9.14
$ ./configure --prefix=$HOME/local --oldincludedir=$HOME/local/include \
>--disable-ruby --disable-java --disable-perl --disable-csharp \
>--disable-python --disable-static
$ gmake
$ gmake install
$ cd python
$ python setup.py build
$ python setup.py install --prefix=$HOME/local

docutils

$ cd $HOME/local/src
$ wget http://jaist.dl.sourceforge.net/sourceforge/docutils/docutils-0.4.tar.gz
$ gunzip docutils-0.4.tar.gz
$ tar -xvf docutils-0.4.tar
$ cd docutils-0.4
$ python setup.py install --home=$HOME/local

trac

日本語版の最新を。当たらし物好き。

$ cd $HOME/local/src
$ wget http://www.i-act.co.jp/project/products/downloads/trac-0.10.3-ja-1.zip
$ unzip trac-0.10.3-ja-1
$ cd $HOME/local/src/trac-0.10.3-ja-1
$ python ./setup.py install --prefix=$HOME/local
$ cp $HOME/local/share/trac/cgi-bin/trac.cgi $HOME/www

あとは、

さくらインターネットにTracを構築する - WeekbuildのHack倉庫 - Trac」とか「#106 (さくらインターネットにtrac-0.10-ja-1をインストール) - WeekbuildのHack倉庫 - Trac」を見ながら環境設定するとよかね。

トラブルシューティング

実行したトラブル対策まとめ。

TracError: Unsupported version control system "svn" への対処方法あれこれ

最初は単に APR、APR-util を入れて無かっただけでした。入れたら動いた。

$ python -c "import svn.repos"

これ実行して

ImportError: 〜/libsvn_ra_dav-1.so.0:
 undefined symbol: xmlCreatePushParserCtxt

なんてなエラーが出る場合は、Makefile を書き換え。SVN_APR_LIBS と SVN_APR_INCLUDES に `xml2-config --libs` を追加する。以下例。

SVN_APR_LIBS = /home/XXX/local/lib/libapr-0.la -lm -lcrypt `xml2-config --libs`
SVN_APR_INCLUDES = -I/home/XXX/local/include/apr-0 `xml2-config --cflags`

しかしこのエラー、APR、APR-util を Subversion の配下においてインストールするようにしたら、発生しなくなった模様。

ImportError: /home/XXX/local/lib/libsvn_ra_dav-1.so.0:
 Undefined symbol "RAND_status"

とか言われる場合は、…忘れた。確か Subversion の configure を見直したはず。

ImportError: /home/XXX/local/lib/libsvn_ra_dav-1.so.0:
 Undefined symbol "SSL_load_error_strings"

これはあれです、Neon を Subversion 配下に置かず、configure に --enable-shared を指定してインストール。SUbversion の configure で --with-neon=$HOME/local/ を指定する。

「svn: Unrecognized URL scheme 〜」とか言われる。

SSL 使おうとした時に言われた。Neon が入ってないんじゃまいか。

あとそうだ、trac の公開はもうちょっと待ってください。準備中。

<参考にしたところ>