SAKURA internetにTrac0.11.1.ja1をインストールしてみました。
でもSubversionは使わない方向で。(^^;

インストールにはもちろん、sshでのログインは必須になります。
今回は関連するモノをすべて$HOME/localにインストールしてみました。

sqlite3は最初からインストールしてあります。なので、そのままそれを使う方向で。
まずはpysqlite。バージョンは2.4.1。
ここで重要なのは、2.5以上のモノは使わないこと。おいらはここでハマりました。

手順は以下のとおり。

$ cd ~/local/dist
$ curl -O http://oss.itsystementwicklung.de/download/pysqlite/2.4/2.4.1/pysqlite-2.4.1.tar.gz
$ tar xvfz pysqlite-2.4.1.tar.gz
$ cd pysqlite-2.4.1
$ vi setup.cfg(※内容は後述)
$ python setup.py build
$ python setup.py install –prefix=$HOME/local

setup.cfgを編集する内容は以下の通り。

[build_ext]
#define=
include_dirs=/usr/local/include
library_dirs=/usr/local/lib
libraries=sqlite3

3〜4行目の行頭の#を取り除くんですな。
これでコンパイルエラーが無くなります。

後はGenshiとTrac本体なんですが。
これはもう両方とも

$ tar xvfz 〜(Trac0.11.1.ja1を使う場合はunzip 〜)
$ python setup.py install –prefix=$HOME/local

で済みますので、省略。

実際に動かすときは。
$HOME/wwwの中が見えきってしまいますので見えないところにTracのデータをおきます。

$ mkdir -p ~/local/trac/test
$ cd ~/local/trac
$ trac-admin test initenv

ここで重要なのは、バージョン管理ソフトとリポジトリパスを空入力すること
バージョン管理にMercurialを使いたいので後でtrac.iniを編集します。

Tracを起動するためには外からアクセスできるところにスクリプトを作っておく必要があります。
データは見えないところに置いたので、そこからデータを読み、見えるようにするcgiを作成します。

$ cd ~/www
$ mkdir -p trac/test
$ cd trac/test
$ vi trac.cgi

で、trac.cgiの実際の内容は、こう。

#!/bin/sh

export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:$HOME/local/lib
export PATH=$HOME/local/bin:$PATH
export PYTHONPATH=$HOME/local/lib/python2.4/site-packages
export TRAC_ENV=$HOME/local/trac/test
export LANG=ja_JP.UTF-8

/usr/local/bin/python $HOME/local/dist/Trac-0.11.1.ja1/cgi-bin/trac.cgi

環境変数TRAC_ENVで見えないところに置いたデータのディレクトリを指し、解凍したアーカイブの中のtrac.cgiを起動させます。
また、Mercurialの変更履歴の文字列が文字化けしない様にLANGをUTF-8に設定します。
これで、http://ユーザー名.sakura.ne.jp/trac/test/trac.cgiでTracのページを表示させることが出来ます。

いちいちtrac.cgiでページを参照させるのはおかしいので、.htaccessでtrac.cgiを参照する様に設定します。
また、認証などその他の設定もしておきます。

$ cd ~/www/trac/test
$ vi .htaccess

内容は以下のとおりです。

DirectoryIndex trac.cgi /trac.cgi

次に、TracからMercurialのリポジトリを触れるようにします。
TracのプラグインTracMercurialをインストールします。
おいらのSAKURAの環境にはsubversionをインストールしていないのでローカルマシンでリポジトリから取得、scpにてコピーを行いました。

(ローカル環境での作業)
$ svn co http://svn.edgewall.com/repos/trac/sandbox/mercurial-plugin
$ scp -r mercurial-plugin ユーザー名@ユーザー名.sakura.ne.jp:local/dist
$ ssh ユーザー名@ユーザー名.sakura.ne.jp

$ cd local/dist/mercurial-plugin
$ python setup.py install –prefix=$HOME/local

最後に、trac.iniの設定です。
Mercurialのプラグインを有効にし、リポジトリを指すようにします。

$ cd ~/local/trac/test
$ vi conf/trac.ini

書く内容は以下の通り。

(変更する部分)
repository_dir = Mercurialのリポジトリのディレクトリ
repository_type = hg

(追加する部分)
[components]
tracext.hg.* = enabled

[hg]
show_rev = yes
node_format = short

これで、SAKURAにTracをインストールし、Mercurialのリポジトリで使えるようになります。

コメントをどうぞ

*