TracをXreaに入れる(1) TracとSubversionをインストールする

レンタルサーバTracをインストールするやりかた、検索するとかなり情報があるにはありますが、さくらに入れている例が多いですね。xreaにインストールする例もひとつくらいあったけど、メモ的すぎてなんだかよくわからないので、試行錯誤しつつやってみます。

なお、うちの借りてるサーバのスペックはこんな感じです。

CPU Memory Apache Perl PHP Ruby MySQL PgSQL Python SQLite SQLite3
T7200 2.00GHz x 2 2073MB 1.3.37 5.8.8 5.2.2 1.8.5 5.1.19 8.1.4 2.4.3 2.8.17 3.3.7

たぶんさくらとxreaの違いは大してなくて、「xreaはデフォではbashしか入ってない」「xrea.htaccessでのSetEnvが書ける」くらいではないかと思ってますが。

パスの設定

$HOME/local/以下にsrcとlibを作成して、環境変数を変更します。

mkdir -p $HOME/local/src
cd $HOME/local/src
mkdir -p $HOME/local/lib/python2.4/site-packages
ln -s $HOME/local/lib/python2.4 $HOME/local/lib/python

PYTHONPATH=$HOME/local/lib/python:$HOME/local/lib/python/site-packages
PATH=$HOME/local/bin:$PATH
LD_LIBRARY_PATH=$HOME/local/lib
export PYTHONPATH
export PATH
export LD_LIBRARY

Subversionをインストールする

これがちょっとややこしい感じ。まず必要なライブラリのバージョンを知るために、何も設定せずおもむろにconfigureしてみることにします。いちおうmakeも書いておきます。で、実行。

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

エラーになった。

configure: Apache Portable Runtime (APR) library configuration
checking for APR... yes
checking APR version... 0.9.6
wanted regexes are 0\.9\.[7-9] 0\.9\.1[0-9] 1\.
APRをインストールする

ということで、Apache Portable Runtime (APR) が0.9.7以降を必要としているようだ。これはApacheマルチプラットフォームで連携できるようなインターフェースみたいですね。入れるバージョンはとりあえず最新でいいか。でも、APR 0.9.xとAPR 1.x系は互換性がないって書いてあるところがあるけど……Subversionはこれでいいとして、Tracのほうはこのライブラリ使ってないのかなあ。

とりあえず最新でやってみます。失敗したらやり直す。

うわさによれば、このライブラリはインストールしないで、Subversionディレクトリにおいておけばいいらしい。ほんとか。

cd $HOME/local/src
wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.2.12.tar.gz
wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.2.12.tar.gz
tar xzvf apr-1.2.12.tar.gz
tar xzvf apr-util-1.2.12.tar.gz
cp -rf apr-1.2.12 subversion-1.4.6/apr
cp -rf apr-util-1.2.12 subversion-1.4.6/apr-util

もいっかい、configure。だいぶ進んだが、またエラーになりました。と、眺めていると、エラーになってないけどこんなことになている部分がありました。こっちを先に片付けましょう。

configure: checking neon library

An appropriate version of neon could not be found, so libsvn_ra_dav
will not be built.  If you want to build libsvn_ra_dav, please either
install neon 0.25.5 on this system

or

get neon 0.25.5 from:
    http://www.webdav.org/neon/neon-0.25.5.tar.gz
unpack the archive using tar/gunzip and rename the resulting
directory from ./neon-0.25.5/ to ./neon/

no suitable neon found
Neonをインストールする

じゃあneonをいれますか。これもSubversionディレクトリにおいておけばいいようですね。

cd $HOME/local/src
wget http://www.webdav.org/neon/neon-0.25.5.tar.gz
tar xvzf neon-0.25.5.tar.gz
cp -rf neon-0.25.5 subversion-1.4.6/neon

OKぽいですね。こんなふうに表示されていました。

configure: Configured to build neon 0.25.5:

  Install prefix:  /virtual/gakusi/local
  Compiler:        gcc
  XML Parser:      expat
  SSL library:     SSL support enabled, using OpenSSL (0.9.7 or later)
  zlib support:    zlib support enabled, using -lz
  Build libraries: Shared=no, Static=yes

neon configured properly
ていうかsubversion-depsでいいんじゃね?

ここまでやって検索していたらsubversion-depsを入れればそんなことはいらないのではないかということに気づきました。がーん。

 どうも subversion-deps-1.4.2.tar.gz の中には apr, apr-util, neon, zlib が入っていて subversion のインストールの際にまとめて入れてくれるみたいです。

http://www.hasta-pronto.org/archives/2006/12/09-1953.php

まあいい。一個ずつ入れてもエラーになってないんですし。

Swigをインストールする

さて、最後はswig。何も設定しないでさっきconfigureをやると次のエラーがでてくるはず。いや、存在しないんだから当たり前ですが。

configure: error: Could not find swig binary at /virtual/gakusi/local/bin/swig/bin/swig

swigは、スクリプト言語向けのC/C++で書かれた関数のラッパーですね。

ところで、ふと$HOME/local/src/subversion-1.4.6/subversion/bindings/swig/INSTALLというファイルをみてたら、こんなことがかいてある。

 Install a suitable version of SWIG (which is currently swig version 1.3.24 - 1.3.29).

この記事を書いた時点でのswigの最新は1.3.33なのですが、指定通り1.3.29を取得します。

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

ちなみにINSTALLに気づく前に1.3.33でやってみたんですが、Subversion以前にswigのmake自体が失敗してうまくいきませんでした。

さて、そんなわけで、これでやっとSubversionがインストールされた……んだろうか? とおもいきや、これだとPythonとリンクされていないらしい。こいつを流す。

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

Tracをインストールする

EasyInstallをインストールする

Pythonモジュールを簡単にインストールしてくれるEasyInstallをセットアップします。

cd $HOME/local/src
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py --install-dir=$HOME/local/lib/python/site-packages

環境変数PYTHONPATH(=$HOME/local/lib/python:$HOME/local/lib/python/site-packages)がないとエラーになってしまいます。

genshi もしくは clearsilver

開発版のTrac 0.11系を使う場合は、genshiを入れます。 0.10系を使う場合はclearsilverを使う必要があります。1.1はPython製なのでこのEasyInstallで入れられますが、clearsilverC言語らしいので、いつものようにMakeしたらいい……と思いきや、gmakeする必要があるらしいです。

cd $HOME/local/src
wget http://www.clearsilver.net/downloads/clearsilver-0.9.14.tar.gz
tar xzvf clearsilver-0.9.14.tar.gz
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

しかも、その後はpythonでsetupがいる。うーん、これならやっぱ0.11のほうが楽ですね。

cd $HOME/local/src/clearsilver-0.9.14/python
python ./setup.py build
python ./setup.py install --prefix=$HOME/local
pysqliteをインストールする

sqlitePythonバインディングですね。Xreaにはsqlite自体は入っているようなので、とりあえずバインディングのみを入れればよさそうですね。

cd $HOME/local/src
wget http://initd.org/pub/software/pysqlite/releases/2.4/2.4.1/pysqlite-2.4.1.tar.gz
tar xzvf pysqlite-2.4.1.tar.gz
cd pysqlite-2.4.1
python ./setup.py install --prefix=$HOME/local 

trac 0.11からMySQLも対応したらしいですが、今回は0.10系なので見送ります。

tracをインストールする

やっとTracだ!

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

入ったー。

……のかどうかよくわかりません! うーん。

Tracプロジェクトの作成

データを保存する場所を作っておきます。

mkdir $HOME/data/trac
cd $HOME/data/trac
trac-admin sample initenv

いろいろ聞かれますが、とりあえず全部空白にしておきます。まだSVNリポジトリもないし。

ここではエラーは出てないのでプロジェクトはできたっぽい。やー、やっとここまで来たと思ったんですが、まだSubversionの動作も確認できてないんですよね。先は長いぜ。