tracのプロジェクトを引越し

tracのプロジェクトを引越ししたのでその手順を。

引越し先の環境作成

tracってバックエンドにいろいろなDBを使えるんですが、デフォルトではBerkleyDBをSQLiteを使って参照しています。そこでSQLiteをインストール。インストールしておくと、Pythonコンパイルしたときにsqlite3プラグインが自動的に作成されます。

# yum install sqlite-devel

次にPythonコンパイル、インストール。私が使った環境ではデフォルトの位置に違うバージョンのpythonが入っているのでインストールディレクトリは変更しておきました。

$ ./configure --enable-unicode --enable-shared --prefix=/usr/local/python_v271
$ make
# make install

インストール先のpythonライブラリが参照できるように /etc/ld.so.conf.d/以下へこんな内容のファイルを作成。

-----
/usr/local/python_v271/lib
-----

ldconfigをたたく。

# ldconfig

trac用のpython仮想環境を作成。

# /usr/local/python_v271/bin/python ~hoge/virtualenv/virtualenv-1.8.4/virtualenv.py  /usr/local/trac_env

trac関連のいろいろをpipでインストール。

# ./bin/pip install genshi
# ./bin/pip install babel
# ./bin/pip install trac

一応これで新環境作成は終了。

プロジェクトディレクトリをコピー

あまり深く考えないでtracのプロジェクトをコピー。私の環境では複数のプロジェクトが/usr/local/trac以下にあったのでこうやってコピーしました。

# scp -pr /usr/local/trac disthost:/usr/local/

コピー先のパーミションなどは適当に調整します。

upgradeする

以前に動作していたtracと新環境のtracのバージョンが違う場合は、このまま動作させるとこんなエラーがログにでることがあります。画面的にはCSSが読めなかったり、JSが動作してなかったり。

2013-01-09 11:44:53,165 Trac[env] WARNING: Component <trac.env.EnvironmentSetup object at 0x2509d90> requires environment upgrade

こんな場合はtrac-adminでupgradeします。

# /usr/local/trac_env/bin/trac-admin /usr/local/trac/project_dir  upgrade
# /usr/local/trac_env/bin/trac-admin /usr/local/trac/project_dir wiki upgrade

認証なんかは適当に。

iniファイルを編集

project_dir/trac.iniにこの当該プロジェクトの場所が記述されています。プロジェクトのディレクトリが変わった場合はここを編集。私の場合はディレクトリは同じにしたので変更なし。


以前の環境ではtracスタンドアローンで動作させていたんですが、この引越しを機会にすべてのプロジェクトをfcgi経由へ変更しました。
実感としてはそれほど変わらないような。まぁメンテナンスの手間が省けたかな。