TracをXreaに入れる (3) Subversionと連携
連携と行ってもたいしたことはありませんね。まず、連携するためにリポジトリを作成します。ふつうSubversionを使うときはレポジトリは単一でプロジェクトを分ける、ということをするようですが、tracを使う場合、リポジトリひとつにつき、プロジェクトひとつになるようなので、分ける必要がありそうですね。
FSFSでいいのでデフォルトで作ります。
mkdir -p $HOME/data/svn/trac_sample svnadmin create $HOME/data/svn/trac_sample
作成したので、$HOME//data/trac/sample/conf/trac.iniにリポジトリの場所を追加
repository_dir = /virtual/gakusi/data/svn/trac_sample
で、tracアクセスしてみたが、エラーになってしまう。
Traceback (most recent call last): File "/virtual/gakusi/local/lib/python2.4/site-packages/trac/web/main.py", line 406, in dispatch_request dispatcher.dispatch(req) File "/virtual/gakusi/local/lib/python2.4/site-packages/trac/web/main.py", line 191, in dispatch chosen_handler = self._pre_process_request(req, chosen_handler) File "/virtual/gakusi/local/lib/python2.4/site-packages/trac/web/main.py", line 263, in _pre_process_request chosen_handler = f.pre_process_request(req, chosen_handler) File "/virtual/gakusi/local/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 73, in pre_process_request self.get_repository(req.authname).sync() File "/virtual/gakusi/local/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 91, in get_repository raise TracError('Unsupported version control system "%s". ' TracError: Unsupported version control system "svn". Check that the Python bindings for "svn" are correctly installed.
このエラー、xreaにはsvnがデフォルトでも入ってしまっているせい(でもPythonバインディングがないのでインストールは必要)なのかなと思ったのだけど、調べてみると違うようですね。試しに、
python -c "import svn.repos"
を流すとこれ自体が動かない。これが既に問題。チェックしておくべきでした。エラーはこんなの。
Traceback (most recent call last): File "<string>", line 1, in ? File "/virtual/gakusi/local/lib/svn-python/svn/repos.py", line 19, in ? from libsvn.repos import * File "/virtual/gakusi/local/lib/svn-python/libsvn/repos.py", line 5, in ? import _repos ImportError: /virtual/gakusi/local/lib/libsvn_ra_dav-1.so.0: undefined symbol: SSL_load_error_strings python -c "import svn.repos"
こんなことを書いているブログを見つけた。
Subversion ディレクトリ以下に置いて Subversion と一緒にインストールすることができるけれど、そうすると「ImportError: /path/to/libsvn_ra_dav-1.so.0: Undefined symbol "SSL_load_error_strings"」などと言われるので --enable-shared も指定を指定して別個インストール。Subversion で --with-neon= を指定。
http://www.hazama.nu/t2o2/archives/002700.html:
この方と同じようにNeonがうまく入ってないんじゃないかという気がしてきました(でもmakeのときにちゃんとできたよみたいなメッセージ出たのにね)。例によってSubversionのINSTALLログを見てみるとバージョンが0.26系でもOKのようなのでそっちにしてみます。(最新は0.28)。
cd $HOME/local/src wget http://www.webdav.org/neon/neon-0.26.4.tar.gz tar xvzf neon-0.26.4.tar.gz cd neon-0.26.4 ./configure --prefix=$HOME/local --with-ssl --with-libs=/usr/local --enable-shared make clean && make && make install
入った。ではSubversionをいれなおす。始めにインストールしたときのneonのディレクトリは消しておきます。configureにに--with-neon=$HOME/local/をつけます。
で、直ったかな……って、なおってないし!! どうすればいいんだ。
どうも、--with-neon=$HOME/local/がいけないんじゃないか。--with-neon=$HOME/local/include(なんでこんなパスに?)にして、ついでにもういいや、depsでインストールし直すことにしました。
行ったー。たんに自分があほだったから難しくなったのではないかという気がしてきた。結局下記とおりでいいらしい。
- neonは自分でmakeする
- それ以外はsubversion-depsを展開すればsubversionの下に配置してくれるのでそれでよい
- neonがインストールされた場所をちゃんと指定する(--with-neon=$HOME/local/include/)
- オプションの--with-libs=$HOME/localも密かに重要($HOME/local が usr/localとかになってないか確認)
という感じですかね。
cd $HOME/local/src wget http://subversion.tigris.org/downloads/subversion-1.4.6.tar.gz tar xzvf subversion-1.4.6.tar.gz wget http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.gz tar xzvf subversion-deps-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 --disable-static --with-libs=$HOME/local --with-neon=$HOME/local/include/ make clean && make && make install make clean-swig-py && make swig-py make install-swig-py