Trac 入れてみた

けっこういろいろあったのと、昨日のやつは途中だったので、こっちにマージ。

mod_python

いきなり ./configure したらエラったので、saikyoline.jp の wiki をみて解決。configureスクリプトのエラーというオチ。

で、そのあと make ; make install して、apachehttpd.conf に LoadModule 書いて、Apache動かそうとしたらエラー

undefined symbol APR_STATUS_IS_SUCCESS

とが出るので、ググってみると Apache 2.2系 に mod_python は未だ対応してないという罠。
[mod_python] undefined symbol APR_STATUS_IS_SUCCESS version 3.2.8
[mod_python] mod_python with apache 2.2.0 is not working

で、パッチがあるらしいんだけど、当てようかどうか考えて、「まぁでも mod_proxy系とか Large Fileとか使わないからいいか」ということで、Apache 2.0系で入れなおし。
ついでに↑のmod_pythonメーリングリストに 2.0.58 でもエラーになったという話があるので、archiveサイトにあった一つ前の 2.0.55 をコンパイルしなおして、mod_python が動くのを確認。

Subversion

SubversionEtch で用意されているのが 1.2.3 なので パッケージはパス。なぜかって Subclipse の 最新安定版である 1.0系 は Subversion 1.2 以下をサポートしないから。

で、 Subversion 入れようとしたら、 Subversionの中の人に 「Berkley DB が入ってないか apr-util にリンクされてないから、バックエンドに BDB は使えないぉ」って言われて、最初 FS で行こうかとも思ったけど、 公式サイトにも BDB の方がイイみたいなこと書いてあったので、 BDB で行くことにした。

で、Barkley DBをソースからわざわざ入れることもないので、aptitude でインストール

aptitude install db4.4 db4.4-util libdb4.4-dev

して Berkeley DB まわり入れて、Apache を再インストール。configure はこんな感じ

./configure --enable-so --enable-dav --with-berkley-db ...

zsh の configure 補完に "--with-berkley-db" がなかったのはマイナーだからか。

で、Subversion

./configure --with-apr-util=/usr/local/apache2 --with-apr=/usr/local/apache2 --with-apxs=/usr/local/apache2/bin/apxs --enable-module-activation --with-berkley-db ...

で configure して、 make ; make install。

レポジトリ作るときに

svnadmin --create --fs-type bdb /hoge/svn

とかして、ファイルシステムを BDB に指定しないとBerkleyにならない罠。

PostgreSQL

最初はソースから入れようかと思ったけど、面倒だったので aptitude で。ついでに ClearSilver とか Psycopg (なんて読むんだ!) も入れてみた。PostgreSQL はもちろん 8.1。

aptitude install postgresql-8.1 python2.3-psycopg clearsilver-dev python2.3-clearsilver

で、psycopg か clearsilverDependency で egenix-mx も入るという話。やっぱパッケージは楽。

で、DB に trac 用のユーザとデータベース作って Trac のインストールしたら、プロジェクトを作ることで「DBにアクセスできないぉ」っていうので、いろいろごにょにょしてたら、/etc/postgresql にある pg_hba.conf のアクセス設定が Linux のローカルアカウント見る設定になっていたので、フツーに DB認証できるように設定。

Trac

さすがにパッケージでインストールしたのと、ソースからインストールしたのが混在してるので、本家の配布バイナリを使うことにした。
でも本家を一度入れてから、「そーいえば日本語版あったんだ」ということで、日本語版を入れなおしたというのは秘密。

で、日本語版は zip だったので、unzip とか打とうとしたら無い。Etch には標準で unzip が入っていないという罠なので、aptitude で入れて unzip。

あとはマニュアルに沿って

python ./setup.py install
trac-admin /hoge/trac initenv

とかして、httpd.confに


SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonPath /hoge/trac
PythonOption TracEnv /hoge/trac/hoge-project
PythonOption TracUriRoot /trac

とか書いておく。PythonPath は自分でバイナリを入れたので通しておく。

で、だいたい動いた。そりゃ動くよ。