Subversion入れたらTracも入れてみる

Trac なんてどうやって使うのかも知らないけど、とりあえずかっこよさそうなので入れてみる。

Apache で普通に動かす

以下のサイトを参考にしたら、あっさり動いた。

$ sudo apt-get install trac
$ mkdir ~/trac
$ tracadmin ~/trac/test initenv
 [中略]
Project Name [My Project]> test
 [中略]
Database connection string [sqlite:db/trac.db]>
 [中略]
Repository type [svn]>
 [中略]
Path to repository [/path/to/repos]> /home/username/trac/test
 [中略]
Templates directory [/usr/share/trac/templates]>
 [中略]
Congratulations!
$ sudo chown -R www-data.www-data ~/trac

このあと、/etc/apache2/httpd.conf に以下を書いたら動いた。

Alias /trac/docs "/usr/share/trac/htdocs/"
ScriptAlias /trac/test /usr/share/trac/cgi-bin/trac.cgi
<location "/trac/test">
    SetEnv TRAC_ENV "/home/username/trac/test"
</location>
<locationMatch "/.+/login$">
  AuthType Digest
  AuthName "Subversion repository"
  AuthUserFile /home/username/svn/.htdigest
  Require valid-user
</locationMatch>

ユーザ認証のファイル(/home/username/svn/.htdigest)は SVN と Trac で共通にすることで うれしいことがあるようですので共通にしておきます。

python-module を使って Trac

しかし、普通に動かすともっさりしてて遅いので、Apache の python-module を使って動かします。

$ sudo apt-get install libapache2-mod-python enscript

多分、モジュールは自動で有効になっているはず。設定ファイルは今度は/etc/apache2/sites-available/default のなかで、との間に以下を記述。

<location /trac/test>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnv /home/username/trac/test
    PythonOption TracUriRoot "/trac/test"
</location>
<location "/trac/test/login">
    AuthType Digest
    AuthName "Subversion repository"
    AuthUserFile /home/username/svn/.htdigest
    Require valid-user
</location>

あと、これを実行したけど、なんかうまくいってないかも。

$ sudo trac-admin ~/trac/test permission ユーザ名 TRAC_ADMIN
permission list [user]
        -- List permission rules

permission add <user> <action> [action] [...]
        -- Add a new permission rule

permission remove <user> <action> [action] [...]
        -- Remove permission rule

*追記 日本語化してみる

Ubuntu のパッケージで日本語版の Trac があったので入れてみた。

$ sudo apt-get install trac-ja-resource

さっき作った~/trac/test は一回消して、もう一回最初から作る。(てきとうなメモさんの記述が trac-ja-resource”s”になってて少しはまった^^)

$ sudo -u www-data trac-admin ~/trac/test initenv
[中略]
Templates directory [/usr/share/trac/templates]> /usr/share/trac-ja-resource/templates

続いて、Wiki の部分を日本語化。

$ sudo -u www-data trac-admin ~/trac/test wiki load /usr/share/trac-ja-resource/wiki-default

最後に、メニュー部分を日本語化。/etc/apache2/sites-available/default の先ほど追加した場所に以下も記述。

PythonPath "['/usr/share/trac-ja-resource/python'] + sys.path"

こんな感じであっさり日本語化。

*追記 ソースブラウザの文字化け対策

ソースブラウザで UTF-8 が文字化けする理由は~/trac/test/conf/trac.ini の中の default_charset が合ってないかららしい。とりあえず全部 UTF-8 で書いてるので

default_charset = utf-8

としておいた。

自動判別させるには以下のリンクが参考になりそうだが、めんどいのでまたの機会に。

*追記 WebAdmin も追加してみた

さらに続く。ブラウザの画面から trac-admin の動作が行えるっぽい Trac のプラグイン「WebAdmin」も 入れてみた。

これも非常にお手軽で、以下のサイトから ez_setup.py という Python ファイルを落としてきて、実行。 続いて、その導入した easy_install というもので WebAdmin をインストール。

$ sudo python ez_setup.py
$ sudo easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin

もう終わり。あとは上のほうで失敗してたコマンドで、ユーザに管理者権限を与える。(“add”が足りなかったらしい)

$ sudo trac-admin ~/trac/test permission add ユーザ名 TRAC_ADMIN

そして、プラグインを有効にするために、~/trac/test/conf/trac.ini に以下を追加。

[components]
webadmin.* = enabled

これで、このユーザで Trac にブラウザからアクセスすると、メニューの右端に Admin ってのが追加されてるはず。 されてなきゃ、Apache でも再起動してみそ。

  • riywo 08-04-01 (火) 15:29

    日本語化・文字化け対策の部分を追記しました。

  • riywo 08-04-01 (火) 15:42

    Apache の設定ファイルのパスを間違ってたので修正。

    /etc/apache2/sites-available/default

    でも、ここに書くのってあんまり良くないかも。/etc/apache2/httpd.conf でいいのかも。

  • riywo 08-04-01 (火) 17:36

    追記:WebAdmin プラグインも入れた。

    Apache の設定は結局、/etc/apache2/httpd.conf に移した。


Ryosuke Iwanaga

Software engineer / Anime / NFL / Father. Posts are my own, not endorsed by any org.