| 1 | = Tracとは? = |
| 2 | Tracとは、オープンソースで開発されているバグトラッキングシステムです。まぁ、バグトラッキングシステムにもBuzillaをはじめ色々ありますが、Tracは次のような特徴があります。 |
| 3 | |
| 4 | * シンプルなユーザインタフェース |
| 5 | * バグ修正とSubversionのソースコードの連携 |
| 6 | * wikiの統合によるコミュニケーション機能 |
| 7 | * 強力なリンク機能。[34]や#123などと書くだけで、Subversionのチェンジセットやチケットへリンクを貼ることができます。 |
| 8 | |
| 9 | Tracは、次のオープンソースプロジェクトで利用されています。 |
| 10 | * [http://www.edgewall.com/trac/ Trac] |
| 11 | * [http://springide.org/project SpringIDE] |
| 12 | * [http://dev.rubyonrails.org/ Ruby on Rails] |
| 13 | * [http://www.meadowy.org/meadow/ Meadow] |
| 14 | * [http://www.namazu.org/trac-namazu/trac.cgi/wiki Namazu] |
| 15 | |
| 16 | Ruby on RailsやSpringIDEなど新鋭のプロジェクトを中心に採用が進んでおり、今最も注目のバグトラッキングシステムと言えるでしょう。 |
| 17 | |
| 18 | |
| 19 | === 参考リンク === |
| 20 | * [http://www.i-act.co.jp/project/products/products.html trac とは(インタアクト)] |
| 21 | |
| 22 | インタアクトのサイトでは、tracを日本語化したtrac-jaが配布されています。また、マニュアルの日本語化も行っています。 |
| 23 | |
| 24 | * [http://trac-hacks.org/wiki/ Trac Hack] |
| 25 | |
| 26 | Tracの拡張機能、マクロなどが投稿されているサイトです。 |
| 27 | |
| 28 | = インストール = |
| 29 | 適当に作ったパッケージがhttp://ultimania.org/debian/にあります。/etc/apt/sources.listに次の行を追加し、 |
| 30 | {{{ |
| 31 | deb http://ultimania.org/debian/ ./ |
| 32 | deb http://www.backports.org/debian/ sarge-backports main contrib |
| 33 | }}} |
| 34 | apt-getでインストールしてください。 |
| 35 | {{{ |
| 36 | # apt-get install trac python2.3-japanese-codecs |
| 37 | }}} |
| 38 | ここでは、Subversionのリポジトリで日本語を扱うために、python2.3-japanese-codecsをインストールしておきます。 |
| 39 | |
| 40 | |
| 41 | == 依存関係でインストールできない場合 == |
| 42 | 下記のパッケージも一緒にインストールしてみるとよい。 |
| 43 | * python2.3-subversion |
| 44 | * python2.3-sqlite |
| 45 | * python2.3-clearsilver |
| 46 | |
| 47 | = セットアップ = |
| 48 | Tracを利用するには、SubversionのリポジトリとTracのデータベースを生成します。 |
| 49 | === Subversionのディレクトリの作成 === |
| 50 | {{{ |
| 51 | # svnadmin create /tmp/svn |
| 52 | }}} |
| 53 | === Tracのプロジェクトの作成 === |
| 54 | {{{ |
| 55 | # rm -rf /tmp/trac |
| 56 | # trac-admin /tmp/trac initenv |
| 57 | Creating a new Trac environment at /tmp/trac |
| 58 | |
| 59 | Trac will first ask a few questions about your environment |
| 60 | in order to initalize and prepare the project database. |
| 61 | |
| 62 | Please enter the name of your project. |
| 63 | This name will be used in page titles and descriptions. |
| 64 | |
| 65 | Project Name [My Project]> Project Ultimania ☆プロジェクト名 |
| 66 | |
| 67 | Please specify the connection string for the database to use. |
| 68 | By default, a local SQLite database is created in the environment |
| 69 | directory. It is also possible to use an already existing |
| 70 | PostgreSQL database (check the Trac documentation for the exact |
| 71 | connection string syntax). |
| 72 | |
| 73 | Database connection string [sqlite:db/trac.db]> |
| 74 | |
| 75 | Please specify the absolute path to the project Subversion repository. |
| 76 | Repository must be local, and trac-admin requires read+write |
| 77 | permission to initialize the Trac database. |
| 78 | |
| 79 | Path to repository [/var/svn/test]> /tmp/svn ☆Subversionのリポジトリのパス |
| 80 | |
| 81 | Please enter location of Trac page templates. |
| 82 | Default is the location of the site-wide templates installed with Trac. |
| 83 | |
| 84 | Templates directory [/usr/share/trac/templates]> |
| 85 | |
| 86 | Creating and Initializing Project |
| 87 | Configuring Project |
| 88 | trac.repository_dir |
| 89 | ... |
| 90 | }}} |
| 91 | 次のようにやってもok。 |
| 92 | {{{ |
| 93 | # trac-admin /tmp/trac initenv "Project Name" sqlite:db/trac.db /tmp/svn /usr/share/trac/templates |
| 94 | }}} |
| 95 | === Tracの簡易起動 === |
| 96 | {{{ |
| 97 | # tracd -p 8081 /tmp/trac |
| 98 | }}} |
| 99 | これで、tracdを起動したホストの8081ポートへブラウザでアクセスすると、Tracを利用することができます。 |
| 100 | |
| 101 | === PostgreSQLの利用 === |
| 102 | PythonからPostgreSQLを利用するpsycopg(Debianの場合python2.3-psycopgパッケージ)をインストールし、 |
| 103 | |
| 104 | conf/trac.iniファイルのdatabaseプロパティを下記のように設定する。 |
| 105 | {{{ |
| 106 | database = postgres://<ユーザ名>:<パスワード>@localhost/<データベース名> |
| 107 | }}} |
| 108 | 例えば、次のように記述 |
| 109 | {{{ |
| 110 | database = postgres://trac:tracpass@localhost/trac |
| 111 | }}} |
| 112 | データベースはもちろん作成しておくこと。 |
| 113 | |
| 114 | = Webから利用 = |
| 115 | == CGI == |
| 116 | Tracは簡易Webサーバが入っているとはいえ、ふつーはApacheを使います。Apacheで利用するには、設定ファイルに次のように記述します。 |
| 117 | {{{ |
| 118 | <LocationMatch "/[[:alnum:]]+/login"> |
| 119 | AuthType Basic |
| 120 | AuthName "Trac Authentication" |
| 121 | AuthUserFile /home/trac/.htpasswd |
| 122 | Require valid-user |
| 123 | </LocationMatch> |
| 124 | |
| 125 | ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi |
| 126 | <Location "/trac"> |
| 127 | SetEnv TRAC_ENV "/tmp/trac" |
| 128 | </Location> |
| 129 | ついでに、SVNのリポジトリの設定も記述 |
| 130 | <Location /svn> |
| 131 | DAV svn |
| 132 | SVNPath /tmp/svn |
| 133 | </Location> |
| 134 | }}} |
| 135 | == mod_python == |
| 136 | cgiを使うと劇重だが、mod-pythonを使うとかなり早くなる。mod-pythonのインストールは、次の通り。 |
| 137 | {{{ |
| 138 | # apt-get install libapache2-mod-python2.3 |
| 139 | }}} |
| 140 | Apacheの設定は、上記の設定を次のように変更する。 |
| 141 | {{{ |
| 142 | ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi |
| 143 | <Location "/trac"> |
| 144 | # SetEnv TRAC_ENV "/tmp/trac" |
| 145 | SetHandler mod_python |
| 146 | PythonHandler trac.web.modpython_frontend |
| 147 | PythonOption TracEnv /tmp/trac |
| 148 | PythonOption TracUriRoot /trac |
| 149 | </Location> |
| 150 | }}} |
| 151 | == FastCGI == |
| 152 | FastCGIは、アプリケーションプロセスをWebサーバと別に実行しておき、Webサーバとアプリケーションプロセスで通信する仕組みである。この方法もmod_pythonと同様に高速化できるが、より汎用的に作られている。 |
| 153 | mod_fastcgiとmod_fcgidの2種類がある。mod_fcgidの方が新しく安定しているようなので、mod_fcgidを利用することをお勧めする。 |
| 154 | === mod_fcgid === |
| 155 | {{{ |
| 156 | # apt-get install libapache2-mod-fcgid |
| 157 | # a2enmod fcgid |
| 158 | /etc/apache2/mod-enabled/fcgid.conf |
| 159 | <IfModule mod_fcgid.c> |
| 160 | # TRAC_ENVもしくはTRAC_ENV_PARENT_DIRを設定 |
| 161 | DefaultInitEnv TRAC_ENV /home/trac/test |
| 162 | # DefaultInitEnv TRAC_ENV_PARENT_DIR /home/trac |
| 163 | AddHandler fcgid-script .fcgi |
| 164 | SocketPath /var/lib/apache2/fcgid/sock |
| 165 | </IfModule> |
| 166 | DefaultInit |
| 167 | /etc/apache2/site-enabled/xxx |
| 168 | ScriptAlias /trac /usr/share/trac/cgi-bin/trac.fcgi |
| 169 | <Location "/trac"> |
| 170 | </Location> |
| 171 | }}} |
| 172 | === mod_fastcgi === |
| 173 | {{{ |
| 174 | FastCgiConfig -initial-env TRAC_ENV=/tmp/trac |
| 175 | ScriptAlias /trac /usr/share/trac/cgi-bin/trac.fcgi |
| 176 | <Location "/trac"> |
| 177 | </Location> |
| 178 | }}} |