Edit
目次

Edit
Tracとは

Tracとは、Subversionをベースにしたデバッグ管理、情報共有など開発に必要なデータを統合的に管理するソフトである。Wikipediaの説明はここ

Edit
Install

Tracの公式サイトはここであり、ここからソースコードを落としてくる。WindowsユーザーはTracLightingというソフトが簡単にインストールでき非常に便利だろう。

Edit
基本インストール

TRACに必要なモジュールは以下のとおり、本体をインストールする前に、インストールしておくこと(参照:開発環境/Library

Edit
setuptools

# wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
# cd setuptools-0.6c11
# python setup.py install

Edit
本体のインストール

<英語版>

# wget http://ftp.edgewall.com/pub/trac/Trac-0.12.2.tar.gz
# tar zxvf Trac-0.12.2.tar.gz

<日本語版>

# wget http://www.i-act.co.jp/project/products/downloads/Trac-0.12.2.ja1.zip
# unzip Trac-0.12.2.ja1.zip

<eggの作成>

# python setup.py bdist_egg

Edit
Pluginのインストール

ここに非常に沢山のプラグインなどが集まっている

Edit
ユーザーの追加などを行うプラグインAccount Manager Plugin

ここのサイトから、パッケージをダウンロードし、以下のセットUPコマンドでインストールを行う。

# cd accountmanagerplugin/trunk
# python ./setup.py build
# python ./setup.py install

Edit
設定ファイルtrac.iniを扱うプラグインIniAdminPlugin

ここのサイトから、パッケージをダウンロードし、以下のセットUPコマンドでインストールを行う。

# cd iniadminplugin/0.11
# python ./setup.py build
# python ./setup.py install

Edit
ガントチャートプラグイン

基本はこれをインストールすると良いだろう。

# cd /usr/local/src
# svn export http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/ganttcalendarplugin/trunk/
# cd ganttcalendarplugin
# python setup.py build
# python setup.py install

また利用するには trac.ini (トラックフォルダのconfの中)に以下の行を追加する必要がある。

[components]
ganttcalendar.ticketcalendar.ticketcalendarplugin = enabled                                                                              
ganttcalendar.ticketgantt.ticketganttchartplugin = enabled

[ganttcalendar]
complete_conditions = 対応済,不正
complete_field = complete

[ticket-custom]
due_assign = text
due_assign.label = 開始日
due_assign.order = 1
due_close= text
due_close.label = 終了日
due_close.order = 2
complete= text
complete.label = 進捗率(%)
complete.order = 3

こちらのほうは現在、Trac 0.11 用には対応してないが、パッチを当てて一応動くようだ。 正式WEBページはここになります。

# wget http://willbarton.com/files/TracGantt-0.3.2a.tar.gz
# tar zxvf TracGantt-0.3.2a.tar.gz
# cd TracGantt-0.3.2a
# wget http://www.freebsd.org/cgi/query-pr.cgi?prp=126112-1-txt&n=/patch.txt

Edit
Authz editor for WebAdminプラグイン

Tracのリポジトリブラウザの表示とSubversionのアクセスファイルとの連動を行うモジュール。但し、すでに本体に統合され、このバージョンのTRACには必要がなし。
このバージョンでの設定方法は trac.ini に指定だけ。

[trac]
authz_file = /home/svn/svn_access_file
authz_module_name = myproject

※module_nameは複数のリポジトリを作成しており、同じアクセスファイルを利用する場合に設定する。

# emacs svn_access_file
[/]
* = admin
[myproject:/]
* = user

Edit
設定

Edit
Apacheの設定

# emacs /usr/local/apache2/conf/httpd.conf
   #---------------------------------------------------#
   #   Trac System Define                              #
   #---------------------------------------------------#
   <Location /trac>
       SSLRequireSSL
       SetHandler      mod_python
       PythonHandler   trac.web.modpython_frontend
       PythonOption    TracEnvParentDir /usr/local/trac/
       PythonOption    TracUriRoot /trac
#      PythonOption    PYTHON_EGG_CACHE /usr/local/trac/.egg-cache
       AuthType        Basic
       AuthName        "Trac system page."
       AuthUserFile    /usr/local/apache2/www/htpasswd
       AuthGroupFile   /usr/local/apache2/www/htgroup
       Require         valid-user
   </Location>

Edit
プロジェクトの作成

最初にSubversionのプロジェクトを作成

# svnadmin create /usr/local/svn/project

次にTracのプロジェクトを作成

# trac-admin /usr/local/trac/project initenv
  Project Name [My Project]> PROJECT               <- Project名
  Database connection string [sqlite:db/trac.db]>  <- SQLiteを使うのでenterだけ
  Repository type [svn]>                           <- Subversionなのでenterだけ
  Path to repository [/path/to/repos]> /usr/local/svn/project  <- 上で作成した

Edit
Pythonにsubversionのライブラリパスが通っていることを確認

python でインポートできるかチェック

# python -c "import svn"
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
  ImportError: No module named svn

インポートできないようなら以下を実行

# ln -s /usr/local/lib/svn-python /usr/local/lib/python2.5/site-packages/svn-python
# ln -s /usr/local/lib/svn-python/svn /usr/local/lib/python2.5/site-packages/svn
# ln -s /usr/local/lib/svn-python/libsvn /usr/local/lib/python2.5/site-packages/libsvn

Edit
トラブルシューティング

Edit
trac-adminなどを、PHPから呼び出すとエラーが起きる。

WEBのPHPプログラムからシェルコマンドを呼び出して、trac-adminを起動する場合、EGGキャッシュ関係でエラーがでる。.subversion/servers permission denied などテンポラリ領域らしいところでエラーがでるようであれば、環境変数が正しく設定されていない。

以上を足す。

Edit
sys.path(パッケージのパスがおかしいとき)

sys.pathはPythonにおける、絶対的なパッケージの検索順位を示す変数で、基本パスは、以下の4つの順に設定されていく。

  1. sys.prefix
  2. sys.exec_prefix
  3. lib/python2.5/site-packages(Windowsは別)(バージョンはそれぞれ)
  4. lib/site-python(Unix,Macのみ)

これらの変数が指定しているフォルダ(インストール時に設定される)で、*.pth という検索するフォルダ位置を示したパス指定テキストファイルが存在するかをチェックし、存在すれば見つかった順にsys.pathにファイルで記述されているパスを登録していく。(ちなみに登録の順番は、まずファイル名をABC順でソートしてから、ファイルの中を記述順で登録する)

ちなみに簡単に上記の変数値を確認するには、

# python
 >> import sys
 >> sys.prefix

などとpythonを起動して sysをインポートすれば調べられる。

Edit
IOError: [Errno 2] No usable temporary...等のエラー

File "/usr/lib/python2.5/tempfile.py", line 209, in _get_default_tempdir
   ("No usable temporary directory found in %s" % dirlist))
IOError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']

上記のようなエラーが発生した場合には単純にファイルが一杯になっている場合がほとんどである。よって、logファイルなどを消して容量を増やすか、VMwareで動いているのであれば、HDDを増やすなどをして対応する。

Edit
Pythonのインストーラーの導入

# wget http://peak.telecommunity.com/dist/ez_setup.py
# emacs ez_setup.py
  #!/usr/local/bin/python               <- Pythonの位置を設定+スペースを2つ
# chmod 777 ez_setup.py
# cp ez_setup.py /usr/local/bin/.

Edit
ClearSilver

公式ページ>
http://www.clearsilver.net/
インストール

# wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz
# tar zxvf clearsilver-0.10.5.tar.gz
# cd clearsilver-0.10.5
# ./configure --with-python=/usr/bin/python
# make
# make install

Edit
setuptoolsの導入

# ez_setup.py setuptools==dev

Edit
TracのInstall

# wget http://ftp.edgewall.com/pub/trac/Trac-0.11.1.tar.gz
# tar zxvf Trac-0.11.1.tar.gz
# cd Trac-0.11.1
# python ./setup.py install
# cp -r ./cgi-bin /usr/local/trac/cgi-bin
# cp -r ./ /usr/local/trac/cgi-bin

Edit
インストールの確認

Edit
必要なプログラムのインストール確認

Genshiのインストール

# wget http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.tar.gz
# tar zxvf Genshi-0.5.1.tar.gz
# cd Genshi-0.5.1

Edit
TracでPostgreSQLを利用するときには、PyPgSQLが必要です。

Edit
PostgreSQL関係のインストール

[[PyPgSQLの公式:http://pypgsql.sourceforge.net/]]~
# wget http://nchc.dl.sourceforge.net/sourceforge/pypgsql/pyPgSQL-2.5.1.tar.gz
# tar zxvf pyPgSQL-2.5.1.tar.gz
# cd pyPgSQL-2.5.1
# python ./setup.py build
# python ./setup.py install

Edit
psycopgのインストール

# wget http://initd.org/pub/software/psycopg/psycopg2-latest.tar.gz
# tar zxvf psycopg2-latest.tar.gz
# cd psycopg2-2.0.7                <- 最新のバージョンのフォルダ名になる
# python setup.py build
# python setup.py install

mxDateTime egenix

# wget http://ftp.de.debian.org/debian/pool/main/e/egenix-mx-base/egenix-mx-base_2.0.6.orig.tar.gz
# tar zxvf egenix-mx-base_2.0.6.orig.tar.gz
# cd egenix-mx-base_2.0.6.orig
# python ./setup.py build
# python ./setup.py install
# trac-admin /usr/local/trac initenv
  Project Name [My Project]>             <- input project name
  postgres://tracuser:tracpass@localhost/trac   <-DB接続の情報
  Repository type [svn]>                 <- svn のまま
  Path to repository [/path/to/repos]>   <- svn の場所、/usr/local/svn
最初にWEB接続でスキーマの作成
postgres://user:pass@localhost:5432/dbname?schema=schemaname
postgres://tracuser:tracpass@localhost:5432/trac?schema=public

Edit
トラブルシューティング

Edit
ZipImportError: bad local file header in~などのエラー

service httpd stop後、ps ax でhttpdがすべて終了している事を確認してから、service httpd startを行うことで直る場合がある。

Edit
参考リンク

Tracの公式ページ
Trac の httpd.conf の設定
Trac iniの説明