«前の日記(2005-10-26 (水)) 最新 次の日記(2005-10-29 (土))»  

まちゅダイアリー


2005-10-28 (金)

Subversion環境 (2)

先日構築した Subversion 環境でも、一応 Web 経由でリポジトリの中身を見ることができるようになった。

でも、リポジトリだけじゃなくて、そのソフトの解説用のページも欲しいと思い、最近人気の trac を入れることにした。 Trac は、Subversion + Wiki + バグ管理システムのようなもの。 Trac Installation Guideを参考に作業を進める。

インストール

ports から trac をインストール。この時点では設定は不要。

$ cd /usr/ports/www/trac
$ sudo make
$ sudo make install

プロジェクトの作成

まずは Subversion リポジトリの作成から。 すでにリポジトリがある場合は不要。

$ svnadmin create /usr/local/var/svn/flickr_plugin
$ svn import file:////usr/local/var/svn/flickr_plugin/trunk

次に、 Trac 用のプロジェクトディレクトリを作る。 ここに、 Wiki や バグ管理 (Ticket) のデータが保存される。

$ sudo mkdir /usr/local/var/trac
$ sudo chown www:www /usr/local/var/trac
$ trac-admin /usr/local/var/trac/flickr_plugin initenv

このとき、リポジトリの場所を尋ねられるので、前述の svnadmin create で指定した場所 (/usr/local/var/svn/flickr_plugin) を入力する。

Web サーバの設定

Trac Installation Guideを見ると、Apache と lighttpd のどちらでも簡単に動くみたい。 でも、僕の環境だとなぜか lighttpd 上では動かなかった (CGIが Internal Server Errorになる) ので、Apache2 で動かすことにする。

公開するディレクトリは、 /usr/local/share/trac/ 以下の htdocs/ と cgi-bin/ の2つ。 htdocs/ には画像ファイルやスタイルシートが含まれていて、 cgi-bin/ には trac を動かすための CGI (trac.cgi) が入っている。 環境変数 TRAC_ENV を使って、trac.cgi に先ほど作成したプロジェクトディレクトリの場所を教える。

Apache2 の設定ファイルに、以下のように追記する。

Alias /trac/ "/usr/local/share/trac/htdocs/"
<Directory "/usr/local/share/trac/cgi-bin/">
  AddHandler cgi-script .cgi
  DirectoryIndex trac.cgi
  Options ExecCGI
</Directory>

Alias /flickr_plugin/ "/usr/local/share/trac/cgi-bin/"
<Location "/flickr_plugin/">
  SetEnv TRAC_ENV "/usr/local/var/trac/flickr_plugin"
</Location>

Directory ディレクティブを使って cgi-bin/ ディレクトリの設定を分けておくことで、 将来的にプロジェクトが複数になった場合にも簡単に対応できる(Locationディレクティブを増やしていけばいい)。 少し複雑だけど、mod_rewrite を使って拡張性を持たせる方法もあるみたい。

ここまでできたら Apache2 を再起動して、 Webブラウザで http://example.com/flickr_plugin/ に接続する。 trac のトップページが表示されれば、設定成功。

試しに Flickr プラグインのページを作成。

trac の日本語化

tracはデフォルトのままだと、リポジトリに保存したソースコードの日本語が文字化けしてしまう。 python の文字コード関連ライブラリを入れることで、文字化けを回避することができるみたい。 Debianだとpython-japanese-codecs。 FreBSD は、 converters/py-cjkcodecs というパッケージらしい。

$ cd /usr/ports/converters/py-cjkcodecs
$ sudo make
$ sudo vi /usr/local/var/trac/flickr_plugin/conf/trac.ini

trac.ini には、

default_charset = euc_jp

と記述する(ソースコードがEUC-JPで書かれている場合ね)。 複数の文字コードが混在する場合は、「Subversion 側で各ファイルの svn:mime-types 属性に charset を正しく設定することで解消する可能性が高い」らしい。

最後に、tracの日本語テンプレートを導入して、tracのメニューやメッセージを日本語化する。 現時点では、0.8.4に対応するテンプレートが公開されている。 手順は、Tracのインストールと日本語化が参考になるかも。

テンプレートの入れ替えは、 trac-admin [pjname] initenv を実行する前にやっておく必要があるので注意。