2006/03/04 (土)
Install trac-ja 0.9.4 on Vine Linux
Install ClearSilver 0.10.2 on Vine Linux 3.2
ただ、configure && make && make install だと python 用の Makefile がきちんと生成されない。具体的にはこんな感じのエラーが出る。
../mkinstalldirs /usr/bin/install -c neo_cgi.so /usr/bin/install: 引数の数が少なすぎます
0.9.14 だとインストールできるので Makefile の違いを見てみると、問題の個所は
install: all
$(NEOTONIC_ROOT)/mkinstalldirs $(DESTDIR)$(PYTHON_SITE)
$(INSTALL) $(TARGETS) $(DESTDIR)$(PYTHON_SITE)
つまり、DESTDIR 及び PYTHON_SITE を適切に渡してやればいい。0.9.14 で make install してみると
../mkinstalldirs /usr/lib/python2.3/site-packages /usr/bin/install -c neo_cgi.so /usr/lib/python2.3/site-packages
すなわち、0.10.2 の Makefile のどこかで
DESTDIR = /usr/lib/python2.3/ PYTHON_SITE = site-packages
とでもしてやればいい。やっつけだがうまくいけばそれで良いのだ。典型的バッドノウハウで、本質的には何故 Makefile に上記2つの環境変数が渡らないのかを調べるべきなのだけど、めんどくさい。
Install trac-0.9.4-ja-1 on Vine Linux 3.2
公式の trac はローカライズされていないので、インタアクト株式会社による日本語ローカライズ版 trac-jaを利用する。
- 必要なもの
- python 2.3 以上
- Subversion 1.0 以上
- ClearSilver 0.9.4 以上
- SQLite 2.8.x or 3.x または PostgreSQL
- 使用する db の Python バインディング
- 他にも Trac Installation Guide に Optional Requirements として色々あげられています
ここでは、python 2.3, Subversion 1.2.3, SQLite 3, pysqlite 2.1.3 を使った。SQLite 3 は Vine Plus かな?で RPM が提供されています。SQLite 2 を使用する場合、pysqlite は 1.0.1 を使うみたい。研究室でやったのは後者の SQLite 2 + pysqlite は 1.0.1。
trac-ja のインストールに難しい部分はない。落としてきて python setup.py install するだけ。Trac Installation Guide が英語とはいえ、必要十分に詳しいため省略。 マニュアルも翻訳されていました。
ただ、トラブルの起きる ClearSilver については上記記事参照。
んでもって、Subversion のリポジトリを用意した後に、trac-admin ~munehisa/trac/kamui initenv などと環境を作ろうとすると最後の問題が起きる↓
Failed to initialize environment. No module named svn
Traceback (most recent call last):
File "/usr/lib/python2.3/site-packages/trac/scripts/admin.py", line 616, in do_initenv
repos = self.__env.get_repository()
File "/usr/lib/python2.3/site-packages/trac/env.py", line 155, in get_repository
from trac.versioncontrol.svn_fs import SubversionRepository
File "/usr/lib/python2.3/site-packages/trac/versioncontrol/svn_fs.py", line 25, in ?
from svn import fs, repos, core, delta
ImportError: No module named svn
svn モジュールが見つからないというエラー。Vine Linux 3.2 に trac を入れる - 1 によると
おまじないでecho /usr/lib/svn-python > /usr/lib/python2.3/site-packages/subversion.pthとchmod 777 /home/httpd/*2。
[【で】にっき - Vine Linux 3.2 に trac を入れる - 1より引用]
というおまじないで解決するようだ。今回必要なのは前者の echo /usr/lib/svn-python > /usr/lib/python2.3/site-packages/subversion.pth で、これを実行すると不思議なことにうまくいく。雰囲気からすると Vine Linux の Subversion パッケージのミスなんじゃあないかなぁ。
後者のおまじないは trac の CGI からホームディレクトリに書き込める必要があるから行われているのでしょう。
後は、Apache なり lighttpd なりの設定をごにょごにょすれば利用できる。
tracd --port 8000 /path/to/projectenv
なお、↑のように trac 付属の http サーバで動かすこともできるようだ。最悪これに mod_proxy でリダイレクトしてしまうと手っ取り早い気もするが、、、気持ち悪いし、ちゃんと設定しようと思う。
trac-ja with apache 1.3
(FastCGI も mod_python も使わずに)素の CGI として動かしてみる。とりあえず、ユーザディレクトリではなく httpd.conf に直書きする方法で動かしてみた。
まず、trac の環境は /var/trac 以下に作ることにした。このディレクトリは httpd を動かしているユーザで読み書きできる必要がある。
# trac-admin /var/trac/kamui initenv Creating a new Trac environment at /var/trac/kamui Trac will first ask a few questions about your environment in order to initalize and prepare the project database. Please enter the name of your project. This name will be used in page titles and descriptions. Project Name [My Project]> Kamui ... (略) ...
環境ができれば、後は apache の設定。httpd.conf から Include conf.d/*.conf としているので(Vine Linux 3.2 は標準でこの設定がかかれている)、/etc/httpd/conf.d/trac.conf というファイルを作り
ScriptAlias /kamui /usr/share/trac/cgi-bin/trac.cgi <Location "/kamui"> SetEnv TRAC_ENV "/var/trac/kamui" </Location>
の様に書いた。
というわけで http://ema.fsr.jp/kamui/ でアクセスできてしまう。きゃあ。ローカルリポジトリを使用していたため、リポジトリを作り直してインポートしたので雰囲気しかないです。
- References
- Installing Trac as CGI / CGIとして Trac をインストールする
trac でリポジトリ内の文字コードの指定
現時点では、リポジトリ内の文字コードが Shift-JIS なのに、trac の吐く HTML が UTF-8 であり、リポジトリブラウザでソースをコードを見ると日本語が文字化けしている。UTF-8 への変換コードは用意されているが、十分ではなく?うまく働かない様だ。
/path/to/projectenv/trac.ini の 17行目を default_charset = shift-jis に書き換え解決。
17c17 < default_charset = shift-jis --- > default_charset = iso-8859-15
他にも [header_logo] などのセクションは編集しておくべきだろう。ロゴは変えなくとも、ロゴをクリックしたときに trac 公式に飛ぶのは不自然だ。
また、コメント欄で教えていただいたのですが、[mimeviewer] セクションに tab_width という項目があり、これを変えることでタブ → スペースへの変換文字数を変えることができるようだ。Ruby なら 2、C / C++ なら 4 ぐらいが一般的なのだろうか?環境毎に決めうちの様です。C と Ruby が混在していてもどっちかにあわせる必要があるのか・・・w
- References
- ソース中の日本語を表示 [k05keの覚え書]
- Trac で遊んでみたよ その1 - 日本語 [鷹の島]
- The Trac Configuration File / Trac 設定ファイル
trac で syntax highlighting
Trac Installation Guide(Trac インストールガイド) の Optional Requirements に
SilverCity and/or Enscript for syntax highlighting
とある。Enscript は apt-get install enscript でインストールできるっぽい。SilverCity はダウンロードして
python setup.py install
でインストールできる。インストールし終わったら即座にハイライトされるようになった。コレは良い。
Trac で遊んでみたよ その2 - 色分けによると、JavaScript(*.js ファイル)の MIME-Type が api.py と silvercity.py で一致していない ため、JavaScript ではハイライトされない問題があるようだ。ただし、application/x-javascript の方が一般的っぽいので api.py を書き換えてみた。具体的には /usr/lib/python2.3/site-packages/trac/mimeview/api.py の 60 行目を
60c60 < 'js':'application/x-javascript', --- > 'js':'text/x-javascript',
とした。まだ動作確認はしていません(ぉぃ
次回は・・・たぶんユーザ認証。まだ、ネットワーク越しで Subversion を使ったことがないのでまずはそこから。以前さわらなかった TortoiseMerge などもできれば利用してみようと思う。それではまた明日。


trac.ini [mimeviewer] で、tab_width = 2 でどうですか? < タブ幅
ありがとうございます!<br><br>きれいに、見落としていました^^