日本語版の Trac 0.12 をインストールする

先日、CentOS 5.5(64bit)に yum で Trac をインストールするというメモを書いたのですが、SVN のセットアップなどを含めて再度、メモを書きなおしておきます。環境は CentOS 5.5(64bit)で、さくらインターネットVPS サービスを利用しています。

Trac 0.12 のインストール

Dag リポジトリを追加し、yumTrac をインストールします。まず、Dag のリポジトリを追加する為、"/etc/yum.repos.d/Dag.repo" というファイルを以下の内容で新規作成します。

$ vi /etc/yum.repos.d/Dag.repo
[dag]
name=Dag RPM Repository for Redhat EL4
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

後は必要なパッケージと共に、yumTrac をインストールします。

$ sudo yum install python-genshi python-babel trac

Apache自動起動設定

OS の起動時、Apache が自動的に起動するように設定しておきます。

$ sudo chkconfig httpd on

言語ファイルの配置(インストール)

インストール直後は言語ファイルが存在しません。

$ ls /usr/lib/python2.4/site-packages/trac/locale
ls: /usr/lib/python2.4/site-packages/trac/locale: そのようなファイルやディレクトリはありません

Tracソースコードを取得し、その中から言語ファイルを抽出し、Tracディレクトリにコピーします。メッセージファイルのコンパイルに gettext が必要になりますが、さくらインターネットVPS では、予め gettext がインストールされていました。

$ cd
$ wget http://ftp.edgewall.com/pub/trac/Trac-0.12.2.tar.gz
$ tar xvzf Trac-0.12.2.tar.gz 
$ sudo cp -a Trac-0.12.2/trac/locale /usr/lib/python2.4/site-packages/trac/locale
$ cd /usr/lib/python2.4/site-packages/trac/locale/ja/LC_MESSAGES/
$ sudo msgfmt ./messages-js.po -o ./messages-js.mo
$ sudo msgfmt ./messages.po -o ./messages.mo

SVNSubversion)の設定

SVNリポジトリを作成しておきます。

$ sudo mkdir /var/svn
$ cd /var/svn
$ sudo mkdir common
$ sudo svnadmin create common
$ sudo svn mkdir file:///var/svn/common/trunk -m "create"

リビジョン 1 をコミットしました。
$ sudo svn mkdir file:///var/svn/common/branches -m "create"

リビジョン 2 をコミットしました。
$ sudo svn mkdir file:///var/svn/common/tags -m "create"

リビジョン 3 をコミットしました

SVNディレクトリへ Apache がアクセス出来るよう、所有者を変更しておきます。

$ sudo chown -R apache:apache /var/svn/common

しかし、このままでは Python が(64bit 版にもかかわらず)32bit の SVN ライブラリを参照しようとする為、エラーになってしまいます。そこで、今回は下記のようにシンボリックリンクで逃げてしまいました…

$ sudo mv /usr/lib/python2.4/site-packages/libsvn ~
$ sudo ln -s /usr/lib64/python2.4/site-packages/libsvn /usr/lib/python2.4/site-packages/libsvn

Trac のプロジェクト作成

Trac のプロジェクトを作成します。

$ sudo mkdir /var/trac
$ sudo trac-admin /var/trac/common initenv "My Project" sqlite:db/trac.db svn /var/svn/common

適切なユーザがブラウザ上から管理メニューにアクセス出来るよう、管理者権限(TRAC_ADMIN)を付与しておきます。

$ sudo trac-admin /var/trac/common permission add eco TRAC_ADMIN

Apache がプロジェクトディレクトリにアクセス出来るよう、所有者を変更しておきます。

$ sudo chown -R apache:apache /var/trac/common

デフォルトの文字コードセットを変更しておきます。文字コードは "/var/trac/common/conf/trac.ini" 中の "default_charset" で定義されており、デフォルトでは iso-8859-15 になっていました。UTF-8 に変更しておきます。

default_charset = iso-8859-15
        ↓
default_charset = utf-8

キャッシュディレクトリの作成

いずれプラグインを使うことになるでしょうから、予めプラグイン(.egg)用のキャッシュディレクトリも作成しておきます。

$ sudo mkdir /var/trac/.egg-cache
$ sudo chown apache:apache /var/trac/.egg-cache

Apache 設定ファイルの修正(trac.conf)

Trac をインストールした時点で /etc/httpd/conf.d に "trac.conf" という設定ファイルが追加されていました。デフォルトでは以下の内容でした。

$ cat /etc/httpd/conf.d/trac.conf
###
### Sample Trac configuration taken from http://trac.edgewall.org/wiki/TracModPython
###

### The recommended Trac web interface requires mod_python
<IfModule mod_python.c>

### Create your Trac environments as subdirectories of /var/trac
### They will appear in a listing on your website at /trac/, and be available 
### at /trac/PROJECTNAME/
<Location /trac>
  SetHandler mod_python
  PythonInterpreter main_interpreter
  PythonHandler trac.web.modpython_frontend 
  PythonOption TracEnvParentDir /var/trac
  PythonOption TracUriRoot /trac
</Location>

### Use htpasswd to add Trac accounts to the AuthUserFile
<LocationMatch "/trac/[^/]+/login">
  AuthType Basic
  AuthName "Trac"
  AuthUserFile /var/www/trac/.htpasswd
  Require valid-user
</LocationMatch>

</IfModule>

↑のファイルから参照されている位置(/var/www/trac/.htpasswd)に BASIC 認証用ファイルを作成しておきます。

$ sudo htpasswd -c /var/www/trac/.htpasswd eco
New password: 
Re-type new password: 
Adding password for user eco