濱谷 千尋(はまたに ちひろ)
2004年にTracの存在を知って惚れ込む。Tracや同様のソフトウエアを普及させるべく,収集した情報をdiscypus.jpにて発信している。

 今回は,TracをLinuxにインストールする手順と,Tracの管理者が行う基本的な設定,の2つについて説明します。ただし,前回はTrac Lightning 1.8,すなわちTrac 0.10.4日本語版を用いましたが,今回は新たにリリースされたTrac 0.11日本語版を用います。

※ Trac 0.11(英語版)が2008-06-23にEdgewallから,そして2008-07-07にTrac 0.11日本語版がインタアクトからリリースされました。また,Trac Lightningも2008-07-14にリリースされた2.0.0以後でTrac 0.11日本語版を採用しています。

Linuxへのインストール

 連載第2回で説明したように,Tracの稼働には多数のソフトウエアが必要です。そこで,本連載ではTracを出来るだけ簡単にインストールするために,できるかぎりLinuxディストリビューションに含まれるパッケージを利用します。

 今回はUbuntu 8.04 LTS Server Editionを用いて説明します。

※ なお,他のLinuxやUNIXのディストリビューションでは少なくともDebianFedoraCentOSopenSUSEVineFreeBSDにはTracやTracに必要なパッケージが提供されています。

Tracのインストール(Ubuntu 8.04)

 今回は,TracをApache+mod_pythonで,SubversionをApache+mod_dav_svnで動作させる方法を説明します。

 さて,Ubuntu 8.04にTracをインストールするには,以下の方法があります。

  1. ディストリビューションが提供しているtrac (英語版)を使用する
  2. Trac日本語版をsetuptoolsでインストールする
  3. Trac日本語版からPython Egg (setuptoolsのパッケージ形式)を作成してインストールする (Trac 0.11以後)
  4. Trac日本語版からパッケージ(*.deb)を作成してインストールする
  5. ディストリビューションが提供しているtracパッケージとtrac-ja-resourceパッケージの2つをインストールする

 今回は,Trac 0.11から用意された3の方法を使います。

 Ubuntuでパッケージをインストールするには,コマンドラインからapt-getやaptitudeコマンド,GUIからはsynapticを使います。今回はコマンドラインからaptitudeとapt-getを用いる手順を説明します。

 最初にパッケージ情報を更新し,さらに既存のパッケージを最新版にしておきます。

~$ sudo aptitude update

 :(略)

~$ sudo aptitude safe-upgrade

 :(略)

 次に,trac,apache,mod_python,subversion,setuptools,unzipとそれに関連するパッケージをインストールします。

~$ sudo aptitude install trac libapache2-mod-python libapache2-svn python-setuptools unzip
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
Reading extended state information
Initializing package states... 完了
Building tag database... 完了
The following NEW packages will be automatically installed:
  apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 libneon27 libpcre3 libpq5
  libsvn1 libxml2 python-clearsilver python-pkg-resources python-pysqlite2 python-subversion sgml-base
  subversion xml-core
The following NEW packages will be installed:
  apache2 apache2-mpm-worker apache2-utils apache2.2-common libapache2-mod-python libapache2-svn libapr1
  libaprutil1 libneon27 libpcre3 libpq5 libsvn1 libxml2 python-clearsilver python-pkg-resources
  python-pysqlite2 python-setuptools python-subversion sgml-base subversion trac unzip xml-core
0 packages upgraded, 23 newly installed, 0 to remove and 6 not upgraded.
Need to get 5873kB of archives. After unpacking 22.2MB will be used.
Do you want to continue? [Y/n/?]  : y
  : (略)

 これでtracとtracに関連するパッケージがすべてインストールされました。

 今回はTrac0.11日本語版を使用するため,次にtracパッケージのみをapt-getでアンインストールします。

~$ sudo apt-get --purge remove trac
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが,もう必要とされていません:
  python-subversion subversion python-pysqlite2 python-clearsilver
これらを削除するには 'apt-get autoremove' を利用してください。
以下のパッケージは「削除」されます:
  trac*
アップグレード: 0 個,新規インストール: 0 個,削除: 1 個,保留: 6 個。
この操作後に 2130kB のディスク容量が解放されます。
続行しますか [Y/n]? y
(データベースを読み込んでいます ... 現在 19208 個のファイルとディレクトリがインストールされています。)
trac を削除しています ...

 以上で,Ubuntuのパッケージに含まれるソフトウエアのインストールは完了しました。

 次に,Trac 0.11に必須のソフトウエアをインストールします。今回はTrac 0.11日本語版を使用していますが,Ubuntu 8.04のパッケージはTrac 0.10.4ですので,Trac 0.11に必要なGenshi(テンプレートエンジン)がまだインストールされていません。

 そこで,先ほどインストールしておいたsetuptools (python-setuptoolsパッケージ)に含まれるeasy_installコマンドを用いて,Genshi 0.5.1をインストールします。

~$ sudo easy_install -Z Genshi==0.5.1
Searching for Genshi==0.5.1
Reading http://pypi.python.org/simple/Genshi/
Reading http://genshi.edgewall.org/
Reading http://genshi.edgewall.org/wiki/Download
Best match: Genshi 0.5.1
Downloading http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1-py2.5-linux-i686.egg
Processing Genshi-0.5.1-py2.5-linux-i686.egg
creating /usr/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg
Extracting Genshi-0.5.1-py2.5-linux-i686.egg to /usr/lib/python2.5/site-packages
Adding Genshi 0.5.1 to easy-install.pth file

Installed /usr/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg
Processing dependencies for Genshi==0.5.1
Finished processing dependencies for Genshi==0.5.1
$

 このとき,easy_installに「-Z」(--always-unzip) を付けてインストールします。これは #7320 (traceback for genshi-related error) -- The Trac Project -- Tracの障害を回避するためです(この障害は2008-07-26に修正されているため,Trac 0.11の将来のリリースでは不要になるでしょう)。

 なお,HTTPプロキシが必要なときは,環境変数HTTP_PROXYでプロキシの情報を与えてから,easy_installを実行してください。

~$ export HTTP_PROXY='http://username:password@proxy.example.jp:8080/'
~$ sudo easy_install -Z Genshi==0.5.1
  : (略)

 また,あらかじめEgg形式のファイルをGenshi Downloadsから入手していたときは,次のようにしてインストールすることもできます。

~$ sudo easy_install -Z Genshi-0.5.1-py2.5-linux-i686.egg
  : (略)

 最後にインタアクト社のTrac日本語版をダウンロードして,Eggを作成し,インストールします。

~$ wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.ja1.zip

 : (略)

~$ unzip Trac-0.11.ja1.zip

 : (略)

~$ cd Trac-0.11.ja1/
~/Trac-0.11.ja1$ python setup.py bdist_egg
running bdist_egg
running egg_info
creating Trac.egg-info
writing requirements to Trac.egg-info/requires.txt

 : (略)

creating dist
creating 'dist/Trac-0.11.ja1-py2.5.egg' and adding 'build/bdist.linux-i686/egg' to it
removing 'build/bdist.linux-i686/egg' (and everything under it)

~/Trac-0.11.ja1$ sudo easy_install dist/Trac-0.11.ja1-py2.5.egg
Processing Trac-0.11.ja1-py2.5.egg
removing '/usr/lib/python2.5/site-packages/Trac-0.11.ja1-py2.5.egg' (and everything under it)
creating /usr/lib/python2.5/site-packages/Trac-0.11.ja1-py2.5.egg
Extracting Trac-0.11.ja1-py2.5.egg to /usr/lib/python2.5/site-packages
Trac 0.11.ja1 is already the active version in easy-install.pth
Installing trac-admin script to /usr/bin
Installing tracd script to /usr/bin

Installed /usr/lib/python2.5/site-packages/Trac-0.11.ja1-py2.5.egg
Processing dependencies for Trac==0.11.ja1
Finished processing dependencies for Trac==0.11.ja1

~/Trac-0.11.ja1$