目の前に僕らの道がある

勉強会とか、技術的にはまったことのメモ

virtualenv上でtrac-gitを動かして見る。

etchだとtrac-gitのパッケージが無いので、virtualenv上に環境を作ってみる。
ただし、うちにはetchの環境がないのでlennyでやっています。
会社のetchでも同じ手順でできたので大丈夫なはずです。ただ、もしかしたらパッケージ名が若干違うかも。

注: 私はzsh環境なので設定ファイルは適宜読み替えてください。

まず、Pythonのインストール

システムデフォルトのPythontracを動かすためのPythonをインストールします。TracGitPluginをレポジトリから持ってくるためにsvnもついでにインストールします。

sudo aptitude update && sudo aptitude safe-upgrade
sudo aptitude install python python-setuptools libsqlite3-dev zlib1g-dev subversion

Tracを動かすためのPythonをインストール

これに関しては特筆すべきところはありません。ソースをダウンロードしてきてコンパイル、インストールするだけです。
インストール先はホームディレクトリとなります。

version='2.6.6'
tmp_dir=${HOME}/tmp

if [ ! -d ${tmp_dir} ]
then
    mkdir ${tmp_dir}
fi
cd ${tmp_dir}

wget http://www.python.org/ftp/python/${version}/Python-${version}.tgz
tar xvzf Python-${version}.tgz
cd Python-${version}

./configure --prefix=${HOME}/usr/local
make && make install

一応こいつと同じ

virtualenvのインストール

既存の環境を壊さないようにTracはvirtualenvで動かします。

参考:

sudo easy_install virtualenv virtualenvwrapper

echo '
# virtualenv
export WORKON_HOME=${HOME}/.virtualenvs
. /usr/bin/virtualenvwrapper.sh
' >> ${HOME}/.zshrc

mkdir ${HOME}/.virtualenvs
source ${HOME}/.zshrc

一応こいつと同じ

Trac用のvirtualenvを作成

mkvirtualenv --python=${HOME}/usr/local/bin/python2.6 trac

Tracのインストール

Pythonパッケージのインストールはpipで行います。pygmentsはTracのシンタックスハイライトを表示するために必要です。
TracGitPluginをインストールする際にwarningが出ますが、内容的に問題無さそうなので無視します。

workon trac # Trac用のPython環境に切り替え
pip install trac pygments http://trac-hacks.org/svn/gitplugin/0.12

Tracプロジェクトの作成

trac_dir='${HOME}/trac'        # Tracのプロジェクトを置くパス
project_dir='${trac_dir}/test' # 適当なプロジェクトのパス
mkdir -p ${project_dir}
trac-admin ${project_dir} initenv

プロジェクト名とDBだけ聞かれるので適当に答えます。DBは空でよいです。

Project Name [My Project]> test
Database connection string [sqlite:db/trac.db]>

設定ファイルの修正

TracがGitレポジトリを参照できるようにtrac.iniを変更してあげます。

vim ${project_dir}/conf/trac.ini
#変更
[trac]
# ...snip
repository_dir = /home/masasuzu/project/trush/.git/ # レポジトリへのパス
repository_sync_per_request =
repository_type = git

#末尾に追加
[git]
cached_repository = false
persistent_cache = false
shortrev_len = 6
git_bin = /usr/bin/git

[components]
tracext.git.* = enabled

参考:

Tracの起動

下記のコマンドでTracを起動してhttp://localhost:8888/testにアクセスしてあげるとTracにアクセスできるはずです。

tracd --port 8888 ${project_dir}

TODO:

一応これでパッケージが用意されていないディストリビューションでもTracが使えると思います。
今後ちょっと調べたいのは下記の通りになります。