Trac Installation Guide for 0.12
Table of Contents
Trac は Python で書かれており、データベースとして SQLite, PostgreSQL, MySQL のどれかが必要です。 Trac は HTML レンダリングのために Genshi テンプレートシステムを使用します。
バージョン 0.12 以降で Trac はローカライズされているため、自分が普段使っている言語に翻訳されているかもしれません。 Trac のインタフェースで別の言語を使用したい場合は、任意のパッケージである Babel をインストールする必要があります。ローカライズの機能を使用するための手順については、このページに記載する Trac のインストール セクションを参照してください。 Babal がない状態では、通常はデフォルトの英語版が使用されます。
新しい言語での翻訳の作成や、すでにある言語での翻訳のエンハンスをコントリビュートした場合は http://trac.edgewall.org/wiki/TracL10N TracL10N を見てみてください。 (訳注: 日本語の翻訳はすでにコントリビュートされています)
Trac のインストールとセットアップに対する一般的な手順を以下に示します。 Trac を特定のシステムにインストールする手順は Trac Project サイトの TracInstallPlatforms にありますが、 まず最初に以下の一般的な手順を読み通して タスクの関係を確実に理解してください。
インストール手順
- 依存関係
- Trac のインストール
- プロジェクト Environment の作成
- スタンドアロンサーバの起動
- Web サーバ上での Trac の起動
- 認証の構成
- SVN のチェンジセットを Trac のチケットに自動リンクする方法
- Tracを使用する
依存関係
必須の依存関係
Trac をインストールするためには以下のソフトウェアパッケージがインストールされていなければなりません:
- Python, 2.4 以上 3.0 未満 (Pyhton 2.3 のサポートは、このリリース (訳注: 0.12) で打ち切られました)
- setuptools, 0.6 以上
- Genshi, 0.6 以上
また、データベースと、それに対応する Python のバインディングが必要です。 データベースは SQLite, PostgreSQL, MySQL のいずれかが使用できます。
SQLite の場合
Python 2.5 か 2.6 の場合は、必要なライブラリは同梱されています。
Python 2.4 の場合、 pysqlite が必要です。 pysqlite は google code から Windows インストーラやソースからのビルド用の tar.gz アーカイブがダウンロードできます:
$ tar xvfz <version>.tar.gz $ cd <version> $ python setup.py build_static install
上記の手順で SQLite のコードも展開されバインディングがビルドされます。
SQLite 2.x は、もうじきサポートされなくなります。 SQLite 3.x 向けの pysqlite 1.1.x バインディングも、もうじきサポートされなくなるので、 pysqlite 2.x を使うようにしてください。
詳しくは PySqlite を参照してください。
PostgreSQL の場合
下記いずれかの Python バインディングをインストール擦る必要があります:
詳しくは DatabaseBackend を参照してください。
MySQL の場合
Trac は以下のガイドラインで、 MySQL でも良好に動作するようになりました。
非常に 重要なことが記載されているので、データベースを作成するときに MySqlDb のページを注意深く読んでください。
任意の依存関係
バージョン管理システム
Subversion
- Subversion, 1.5.x または 1.6.x と 対応する Python バインディング。 1.2.4, 1.3.2, 1.4.2 のような 1.0 以降の古いバージョンも、今のところ動作します。トラブルシューティングの情報が TracSubversion のページに記載されていますので、確認してみてください。
主要なプラットフォーム向けに コンパイル済みの SWIG バインディング が用意されていますので、通常はこれを使ってください。 Trac は Pysvn のような新しい ctype 形式のバインディングでは 動作しません。
重要な Note: Subversion を使用するなら Trac を 同じマシン にインストールする必要があります。リモートリポジトリは現在サポートされていません。
その他のバージョン管理システム
Subversion 以外のバージョン管理システムのサポートはサードパーティから提供されます。 PluginList および VersioningSystemBackend を参照してください。
Web サーバ
Trac にはサーバ機能が組み込まれているので、 Web サーバは必須ではありません。このページに下にある スタンドアロンサーバの起動 セクションを参照してください。
Trac は下記の要件を満たす Web サーバで動作します。
- Apache との組み合わせで
- FastCGI が使用可能な Web サーバ (TracFastCgi を参照)
- AJP が使用可能な Web サーバ ( TracOnWindowsIisAjp を参照)
- CGI が使用可能な Web サーバ (TracCgi を参照), しかし Trac を CGI スクリプトとして使用することは 全く推奨されていません ので、上に挙げた方法を選択するようにしてください。
その他の Python パッケージ
- Babel, 0.9.5 以上。 ローカライズの機能を使用する場合は必要。
- docutils, 0.3.9 以上。 WikiRestructuredText を使用する場合は必要。
- Pygments, シンタックスハイライト を使用する場合は必要。 SilverCity や Enscript も、今のところ使用できますが、 サポートを打ち切る予定なので、 Pygments を使用してください。
- pytz, タイムゾーンの完全なリストを取得する場合に必要。 pytz がない場合、 Trac は内部で定義している 短いタイムゾーンの実装にフォールバックします。
Attention: これらの依存関係は様々なバージョンで必ずしも置き換えできるとは限らないので、上記のバージョン番号に注意してください。 Trac を動かす上で問題が発生した場合は メーリングリスト や IRC チャネル で質問をする前にすべての依存関係を再度確認してください。
これらのパッケージのドキュメンテーションを参照して、それらが最も上手にインストールできる方法を探してください。また プラットフォーム特有の説明 の多くに、これらの依存関係のインストール方法が記述されています。しかしながら プラットフォーム特有の説明 の情報はあなたがインストールしている Trac より古い バージョンについての説明があることを覚えておいてください (なんと Trac 0.8 に関する説明をしているページもあります)。
Trac のインストール
easy_install を使用したインストール
Trac をインストールする方法のひとつに setuptools の利用があります。 setuptools を使用すると、 Trac を Subversion リポジトリからインストールすることもできます;
例:
- Trac 0.12 をインストールする:
easy_install Trac==0.12
- 開発中の最新バージョンをインストールする:
easy_install Trac==dev
Note: 最新のバージョンは十分テストされているとは限りません。 リリースされているバージョンを使用するか、ソースからのインストールをおすすめします。
pip を使用したインストール
'pip' は easy_install のリプレースであり、とても簡単に素早く Python パッケージをインストールすることができます。 Trac をインストールして起動するまでに5分程度でできてしまいます:
pip によってインストールされる場所を /opt/user/trac とした場合の例です
-
pip -E /opt/user/trac install trac psycopg2
または
-
pip -E /opt/user/trac install trac mysql-python
pip では OS 固有のヘッダファイルなとが整備されているため、 PostgreSQL (libpg-dev) や MySQL (libmysqlclient-dev) へのバインディングも自動でビルドされます。
また pip は (Genshi, Pygments などの) 依存関係を解決し、 pypi.python.org から最新のパッケージをダウンロードして、 /opt/user/trac の配下にインストールするところまで自動化されています。
すべてのコマンド (tracd, trac-admin) は /opt/user/trac/bin の配下にインストールされます。 mod_python (PythonHandler ディレクティブを使用する場合) や mod_wsgi (!WSGIDaemonProcess ディレクティブを使用する場合) などのファイルも配置されます。
加えて、 Trac プラグインのうちのいくつか ( ここ で一覧を見ることができます) も pip からインストールすることが可能です。
ソースからのインストール
もちろんのことながら、ソースコードディレクトリのトップで行う Python の伝統的な setup も動作します。
ソースはリリースに一致する .tar.gz や .zip の形式 (Trac-0.12.tar.gz など) で取得できます。また、リポジトリから直接取得することもできます (詳しくは SubversionRepository を参照してください)。
$ python ./setup.py install
このステップを実行するためには root 権限 (または root 権限と同等の権限) が必要です。
この操作で Python のソースコードがバイトコンパイルされ、 .egg ファイルかディレクトリが Python インストールの site-packages ディレクトリにインストールされます。 .egg には htdocs や templates のような、ソースファイル以外に標準インストールの Trac が必要とするすべてのリソースが含まれています。
このスクリプトは tracd スタンドアロンサーバと一緒に、 プロジェクト Environment を作成し維持するための trac-admin コマンドラインツールをインストールします。
ソースからインストールする場合や、新しい言語で Trac を国際化するためには Babel をインストールしておく必要があります。この場合も install を実行するだけです (Babel がインストールされていない状態で、すでに Trac をインストールしてしまった場合でも、 install をやり直すことで Babel サポートを有効化できます):
$ python ./setup.py install
また、 bdist_egg を実行すると dist ディレクトリに作成される .egg ファイルをインストール先にコピーしたり、 (bdist_wininst の実行によって) Windows インストーラを作成しても構いません。
高度なオプション
Trac のインストール場所を変えるなどの高度なインストールオプションを知りたければ以下を実行してください:
easy_install --help
詳細な情報は Python モジュールをインストールする を参照してください。
特にあなたは以下に興味を持つかもしれません:
easy_install --prefix=/path/to/installdir
Mac OS X に Trac をインストールする場合:
easy_install --prefix=/usr/local --install-dir=/Library/Python/2.5/site-packages
Note: Mac OS X 10.6 上で easy_install http://svn.edgewall.org/repos/trac/trunk を使用する場合は、オプションを指定しなくても /usr/local および /Library/Python/2.6/site-packages にインストールされます。
上記の例は、 tracd と trac-admin コマンドを /usr/local/bin に、 Trac のライブラリと依存ファイルを /Library/Python/2.5/site-packages にインストールします。これらのパスは Apple での Pyhton サードパーティアプリケーションの標準ロケーションです。(訳注: つまり、上記と違うパスにインストールしたい場合のみ、オプションの指定が必要になります)
プロジェクト Environment の作成
Trac Environment は Trac が Wiki ページ、チケット、レポート、設定などの情報を保存するバックエンドストレージです。基本的に人間が読み込み可能な 構成ファイル と他の様々なファイルやディレクトリで構成されます。
新しい Environment は trac-admin を使用して作成します:
$ trac-admin /path/to/myproject initenv
trac-admin は、プロジェクトの名前や データベース接続文字列 など、 Environment を新規作成するために必要な情報を入力するためのプロンプトを表示します。これらの設定項目について特に変更が必要ない場合は、単に <Enter> を押下すると、デフォルト値が使用されます。
データベース接続文字列のデフォルトは SQLite が使用されます。 SQLite がインストールされている場合は、他の設定は不要です。 他の データベースバックエンド を使用する場合は、あらかじめデータベースが使用可能な状態にしておかねばなりません。
0.12 以降で Trac は、新しい Environment の作成時に ソースコードリポジトリ を尋ねないようになりました。リポジトリを後で 追加する までの間、バージョン管理のサポートは無効化されます。
また、 ここで指定した値は conf/trac.ini 設定ファイルを直接編集することで後から変更できます。
最後に、 Web のフロントエンドを実行しているユーザアカウントは、 Environment のディレクトリと、その中のすべてのファイルに対する書き込み権限が必要です。 trac-admin ... initenv の実行を該当するユーザで実行した場合は、この作業は不要ですが、そうでない場合、ただしユーザに権限を付与する作業が必要になります。たとえば Linux で apache ユーザ apache グループで Web サーバを起動する場合は:
# chown -R apache.apache /path/to/myproject
スタンドアロンサーバの起動
Trac 環境を作成した後に、スタンドアロンサーバ tracd を実行することで簡単に Web インタフェースを試すことができます。
$ tracd --port 8000 /path/to/myproject
ブラウザを起動して、 http://localhost:8000/ にアクセスしてください。 tracd が認識しているすべての Environment の簡単な一覧が表示されます。作成した Environment へのリンクにアクセスすることで Trac が動作中であることを確認できます。 Trac でプロジェクトをひとつだけ管理したい場合、以下のように起動することで、スタンドアロンサーバは Environment 一覧の表示をスキップして、直接 Environment を表示します:
$ tracd -s --port 8000 /path/to/myproject
Web サーバ上での Trac の起動
Trac に "真の" Web サーバから接続するには、いくつかの方法があります: CGI, FastCGI, mod_wsgi, mod_python です。まともな性能を出すには FastCGI か mod_wsgi のどちらかを使用することが推奨されます。
Trac では AJP も使用できます。これを使うと IIS とも接続することができます。
Trac の cgi-bin ディレクトリを生成する
Trac を FastCGI などで正しく機能させるには、 FastCGI であれば trac.fcgi ファイル、 mod_wsgi であれば trac.wsgi ファイルが必要となります。これらのファイルは適切な Python コードをロードする Python スクリプトです。 trac-admin コマンドの deploy オプションを使用することで生成できます。
若干の「卵が先か鶏が先か」問題があります。 trac-admin コマンドが機能するためには Environment が必要なのですが、 deploy には既に存在するディレクトリは使用できません。これに起因して、 Environment は depoly するディレクトリのサブディレクトリを使用することができません。この制限を回避するには次のようにすます:
mkdir -p /usr/share/trac/projects/my-project trac-admin /usr/share/trac/projects/my-project initenv trac-admin /usr/share/trac/projects/my-project deploy /tmp/deploy mv /tmp/deploy/* /usr/share/trac
プラグインキャッシュの設定
Python プラグインの中にはキャッシュディレクトリを必要とするものがあります。デフォルトではキャッシュディレクトリは、現在のユーザのホームディレクトリに置かれます。 Trac を Web サーバで動作させている場合、ホームディレクトリを持たない専用ユーザであることが多く (強く推奨します)、プラグインの起動が妨げられることがあります。キャッシュディレクトリの場所を変更するには、環境変数 PYTHON_EGG_CACHE を設定してください。環境変数を設定する方法の詳細は使用しているサーバのドキュメントから参照してください。
認証の構成
認証のためのユーザアカウントを追加、削除、構成する方法は Trac を起動する方法により異なります。基本的な手順は TracCgi ページの 認証を追加する セクションで説明されていますが、各フロントエンドのための認証をセットアップする方法は、以下のいずれかを参照してください:
- スタンドアロンサーバ tracd を使用する場合は TracStandalone
- CGI か FastCGI を使用する場合は TracCgi
- Apache の mod_wsgi を使用する場合は TracModWSGI
- Apache の mod_python を使用する場合は TracModPython
SVN のチェンジセットを Trac のチケットに自動リンクする方法
変更をリポジトリにコミットした時に、チェンジセットへのリンクをチケットのコメントに自動で追加するように SVN を設定することができます。コミットメッセージには以下に示すいずれかの書式が含まれていなければなりません:
- Refs #123 - このチェンジセットへのリンクをチケット #123 に追加します
- Fixes #123 - このチェンジセットへのリンクをチケット #123 に追加し、チケットを fixed でクローズします。
この機能を使用するためには post-commit フックを TracRepositoryAdmin に記載したリポジトリにインストールし、 commit updater コンポーネントを有効にせねばなりません。コンポーネントの有効化は、 trac.ini ファイルの [components] セクションに下記記述を追加するか、 "プラグイン" (英語版では "Plugins") 管理パネルから設定します。
tracopt.ticket.commit_updater.* = enabled
詳細な情報は "プラグイン" 管理パネルの CommitTicketUpdater コンポーネントにあるドキュメントを参照してください。
Tracを使用する
一度 Trac サイトを稼働させれば、チケットを作成したり、タイムラインを見たり、 (設定されていれば) バージョン管理のリポジトリを閲覧したりできるはずです。
anonymous (ログインしていない) でアクセスするユーザは、デフォルトでほとんどの機能を使用することができますが、すべての機能を使用できるわけではないことに留意してください。すべての機能を使用するためには認証を構成して、認証されたユーザに対し アクセス許可 を与える必要があるでしょう。
Enjoy!
See also: TracInstallPlatforms, TracGuide, TracCgi, TracFastCgi, TracModPython, TracModWSGI, TracUpgrade, TracPermissions