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

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

Apacheで普通に動かす

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

  • [ubuntu] – chanmanaの日記

    $ 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を使って動かします。

多分、モジュールは自動で有効になっているはず。設定ファイルは今度は/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をインストール。

もう終わり。あとは上のほうで失敗してたコマンドで、ユーザに管理者権限を与える。(“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に移した。