= Trac インストールガイド 0.11 = #TracInstallationGuidefor0.11
[[TracGuideToc]]

Trac は Python で書かれており、データベースとして [http://sqlite.org/ SQLite], [http://www.postgresql.org/ PostgreSQL], [http://mysql.com/ MySQL] のどれかが必要です。 Trac は HTML レンダリングのために [http://genshi.edgewall.org Genshi] テンプレートシステムを使用します。

Trac のインストールとセットアップに対する一般的な手順を以下に示します。 Trac を特定のシステムにインストールする手順は Trac Project サイトの [http://trac.edgewall.org/wiki/TracInstallPlatforms TracInstallPlatforms] にありますが、 '''まず最初に以下の一般的な手順を読み通して''' タスクの関係を確実に理解してください。

== 簡単な方法 - リリースバージョン向け == #Short-Installareleasedversion
クイックインストールをするためには [http://python.org Python-2.5], [http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install easy_install], SQlite-3.3.4 がすでにインストールされていなければなりません (各バージョンは、より新しいものでも可)。 (Genshi をビルドするのであれば、 python-dev (訳注: のような Python のビルド環境パッケージ) も必要になります)
{{{
sudo easy_install Trac
}}}

== インストール条件 == #Requirements
Trac を動作させるためのハードウェア要件は、当然のことながらデータ (Wiki ページ, チケット, リビジョンの数) のボリュームやトラフィックに強く依存します。とても小さなプロジェクトであれば、 500MHz のプロセッサ一つに 128MB の RAM でも SQLite を使って充分動作させられます。高速なハードディスクであればさらに動作が快適になるでしょう。

Trac をインストールするためには以下のソフトウェアパッケージがインストールされていなければなりません:

 * [http://www.python.org/ Python] 2.3 以上
   * XML 関連が組み込まれた mod_python を使用する場合、 python-2.5 を使用してください。 expat モジュールがネームスペース化されているので、 apache のクラッシュが引き起こされることがなくなります。 (詳細は [http://www.dscpl.com.au/wiki/ModPython/Articles/ExpatCausingApacheCrash ここ] を参照してください) 。
   * RPM ベースのシステムでは、 `python-devel` と `python-xml` パッケージが必要になるかもしれません。
   * 注意事項を参照してください。 [http://trac.edgewall.org/wiki/TracOnWindows/Python2.5 "TracOnWindows/Python2.5"]
 * [http://peak.telecommunity.com/DevCenter/setuptools setuptools] 0.6 以上
 * [http://genshi.edgewall.org/wiki/Download Genshi] 0.5 以上 (バージョン 0.4.1 以上という記述は 0.11 のリリース候補以前の場合でした)
 * データベースシステムと対応する Python ドライバが必要です。
   データベースは SQLite, PostgreSQL, ''MySQL (実験的)'' のどれかが使えます。
 * プラグインが必要とする場合は [http://www.clearsilver.net/ ClearSilver] が必要です。

==== SQLiteの場合 ==== #ForSQLite

 * [http://www.sqlite.org/ SQLite] 3.3.4 以上を推奨します (Note: Python 2.5.2 には同梱されています)。
 * Python-2.5 を使用しないなら [http://pysqlite.org/ PySQLite] が必要です (2.3.2 を推奨します)。 SQLite 2.x を使用する場合 PySQLite version 1.x 、 SQLite 3.x を使用する場合 PySQLite version 2.x がそれぞれ必要です。 詳細は [http://trac.edgewall.org/wiki/PySqlite PySqlite] を参照してください。

''Note: 'contrib/trac-post-commit-hook' を使用する場合、 Trac は 0.9 以降、 PySQLite は 2.x が必要です。

''Note: Mac OS X のユーザは注意してください; Apple が提供している SQLite は AFP や SMB のようなネットワークファイルシステムでのがいるロックを行うための追加コードが含まれています。このコードは現在のメインラインのソース (3.3.6) では存在しませんので、ソースから SQLite をビルドした場合にこのようなファイルシステムでは正しく機能しないでしょう - 通常は "{{{database is locked}}}" というエラーが発生します。 Apple のコードをベースにした 3.3.6 向けの [http://www.alastairs-place.net/2006/07/sqlite_and_mac/ パッチ] があります。また、 Apple から提供されている別のバージョン (今のところ 3.1.3) を使用するのがおそらく最も良いでしょう。''

==== PostgreSQLの場合 ==== #ForPostgreSQL

 * [http://www.postgresql.org/ PostgreSQL]
 * [http://initd.org/projects/psycopg2 psycopg2]
 * See [http://trac.edgewall.org/wiki/DatabaseBackend#Postgresql DatabaseBackend]

'''Warning''': PostgreSQL 8.3 は厳密な型チェックメカニズムを採用しています。 Trac で PostgreSQL の バージョン 8.3 を使用するには、 [http://trac.edgewall.org/changeset/6512 trac-0.11] 以降でなければなりません。

==== MySQLの場合 ==== #ForMySQL

'''Warning''': MySQL のサポートは今のところ ''まだ'' 実験段階です。 環境によっては動作しますが、特に unicode の使用と、リポジトリキャッシュのキー長に関して、いくつかの問題が残っています。より詳細な情報は [http://trac.edgewall.org/wiki/MySqlDb MySqlDb] を参照してください。

 * [http://mysql.com/ MySQL] 4.1 以上
 * [http://sf.net/projects/mysql-python MySQLdb] 1.2.1 以上

== 非必須の条件 == #OptionalRequirements

==== バージョン管理システム ==== #VersionControlSystem

'''Please note:''' Subversion を使用するなら Trac を同じマシンにインストールする必要があります。リモートリポジトリは現在サポートされていません。

 * [http://subversion.tigris.org/ Subversion] 1.0 以上 (1.2.4, 1.3.2, 1.4.2 のいずれかが推奨されます) と '''''対応する''''' Python バインディングに対応しています。トラブルシューティングには [http://trac.edgewall.org/wiki///trac.edgewall.org/wiki/TracSubversion TracSubversion] を参照してください。
   * Trac は Subversion のディストリビューションに含まれる [http://svnbook.red-bean.com/svnbook-1.1/ch08s02.html#svn-ch-8-sect-2.3 SWIG] バインディングを使用します。 [http://pysvn.tigris.org/ PySVN] では '''ありません''' (PySVN は時々、標準の SWIG バインディングと混同されることがあります)。
   * SWIG バインディングを含まない Subversion が既にインストールされている場合、 Unix であれば `make swig-py` と `make install-swig-py` による Subversion の再構成が必要です。
   * Win32 の場合、 [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 pre-compiled bindings] から取得してください。
 * サードパーティから他のバージョン管理システムのサポートが提供されています。 [http://trac.edgewal.org/wiki/PluginList PluginList] と [http://trac.edgewall.org/wiki/VersioningSystemBackend VersioningSystemBackend] を参照してください。

==== Web サーバ ==== #WebServer
 * CGI が利用可能な Web サーバ (TracCgi を参照してください) または
 * [http://www.fastcgi.com/ FastCGI] が利用可能な Web サーバ (TracFastCgi を参照してください) または
 * [http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html AJP] 互換の Web サーバ ([http://trac.edgewall.org/wiki/TracOnWindowsIisAjp TracOnWindowsIisAjp] を参照してください) または
 * [http://httpd.apache.org/ Apache] と [http://code.google.com/p/modwsgi/ mod_wsgi] ([wiki:TracModWSGI] や http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac を参照してください)
    * mod_wsgi は非常に新しく、いくらか実験的ですが、これは Apache 1.3, 2.0 または 2.2 で動作するはずで、 mod_python を使用するよりも良いパフォーマンスが出るはずです。
 * [http://httpd.apache.org/ Apache] と [http://www.modpython.org/ mod_python 3.1.3 以降] (TracModPython を参照してください)
    * mod_python をインストールするときは、開発向けの Python と Apache が必須になります (実際にはライブラリとヘッダファイル) 。

Trac を Apache と [http://www.modpython.org/ mod_python 2.7] で動かすことも可能です。([http://trac.edgewall.org/wiki/TracModPython2.7 TracModPython2.7] を参照してください) 。このガイドは 0.8.4 以降更新されていないので動作が異なるかもしれません。

==== その他の Python ユーティリティ ==== #OtherPythonUtilities
 * WikiRestructuredText は [http://docutils.sourceforge.net/ docutils] 0.3.9 以降が必要です。
 * '''シンタックスハイライト''' を行うには [http://pygments.pocoo.org Pygments] が必要です。 [http://silvercity.sourceforge.net/ SilverCity] の 0.9.7 以降や、 [http://gnu.org/software/enscript/enscript.html GNU Enscript] なども併せて使用することができます。詳細は TracSyntaxColoring を参照してください。
 * [http://pytz.sf.net pytz] からタイムゾーンの完全なリストを取得します。 pytz を使用しなければ Trac は内部実装された短いリストを使用します。

'''Attention''': これらの依存関係は様々なバージョンで必ずしも置き換えできるとは限らないので、上記のバージョン番号に注意してください。 Trac を動かす上で問題が発生した場合は [http://trac.edgewall.org/wiki/MailingList メーリングリスト] や [http://trac.edgewall.org/wiki/IrcChannel IRC チャネル] で質問をする前にすべての依存関係を再度確認してください。

これらのパッケージのドキュメンテーションを参照して、それらが最も上手にインストールできる方法を探してください。また [http://trac.edgewall.org/wiki/TracInstallPlatforms プラットフォーム特有の説明] の多くに、これらの依存関係のインストール方法が記述されています。しかしながら [http://trac.edgewall.org/wiki/TracInstallPlatforms プラットフォーム特有の説明] の情報はあなたがインストールしている Trac より古い バージョンについての説明があることを覚えておいてください (なんと Trac 0.8 に関する説明をしているページもあります)。

== Tracのインストール == #InstallingTrac

Trac をインストールする 1 つの方法は `setuptools` を使用することです。
setuptools は subversion のリポジトリから Trac をインストールすることができます;
0.11 のリリースバージョンをインストールするための例を以下に示します:
{{{
easy_install http://svn.edgewall.org/repos/trac/tags/trac-0.11
}}}

もちろん、ソースディレクトリのトップでの典型的な python セットアップもできます:
{{{
$ python ./setup.py install
}}}

''Note: このステップを実行するためには root 権限 (または root 権限と同等の権限) が必要です。''

この操作で Python のソースコードがバイトコンパイルされ、 .egg ファイルかディレクトリが Python インストールの `site-packages` ディレクトリにインストールされます。
.egg には htdocs や templates のような、ソースファイル以外に標準インストールの Trac が必要とするすべてのリソースが含まれています。

このスクリプトは [wiki:TracStandalone tracd] スタンドアロンサーバと一緒に、 [wiki:TracEnvironment プロジェクト Environment] を作成し維持するための [wiki:TracAdmin trac-admin] コマンドラインツールをインストールします。

==== 高度なオプション ==== #AdvancedOptions

Trac のインストール場所を変えるなどの高度なインストールオプションを知りたければ以下を実行してください:
{{{
easy_install --help
}}}

詳細な情報は [http://docs.python.org/inst/inst.html Python モジュールをインストールする] を参照してください。

特にあなたは以下に興味を持つかもしれません:
{{{
easy_install --prefix=/path/to/installdir
}}}
Mac OS X に Trac をインストールする場合:
{{{
easy_install --prefix=/usr/local --install-dir=/Library/Python/2.5/site-packages
}}}

上記の例は、 `tracd` と `trac-admin` コマンドを `/usr/local/bin` に、 Trac のライブラリと依存ファイルを `/Library/Python/2.5/site-packages` にインストールします。これらのパスは Apple での Pyhton サードパーティアプリケーションの標準ロケーションです。(訳注: つまり、上記と違うパスにインストールしたい場合のみ、オプションの指定が必要になります)

== プロジェクト Environment の作成 == #CreatingaProjectEnvironment

[wiki:TracEnvironment Trac Environment] は Trac が Wiki ページ、チケット、レポート、設定などの情報を保存するバックエンドストレージです。基本的に人間が読み込み可能な構成ファイルと他の様々なファイルやディレクトリで構成されます。

新しい環境は [wiki:TracAdmin trac-admin] を使用して作成します:
{{{
$ trac-admin /path/to/myproject initenv
}}}

[wiki:TracAdmin trac-admin] はプロジェクト名、 [wiki:TracEnvironment#SourceCodeRepository ソースコードのリポジトリ] のタイプとパス、 [wiki:TracEnvironment#DatabaseConnectionStrings データベース接続文字列] など、 Environment を作成するのに必要な情報の入力を促します。これらのオプションを指定せず、空白を入力するとデフォルト値が使用されます。 SQLite がインストールされている場合、データベース接続文字列はいつでもデフォルト値で動作します。バージョン管理システムのリポジトリへのパスを指定しない場合、バージョン管理に関するすべての機能が無効化されますが、基本システムが動いていればいつでもバージョン管理に関する機能を追加することができます。

また、 ここで指定した値は [wiki:TracIni] 設定ファイルを直接編集することで後から変更できることに留意してください。

''Note: Web サーバのユーザアカウントは Environment のディレクトリと、その中のすべてのファイルに対する書き込み権限が必要です。 Linux では、 Web サーバが apache というユーザ、 apache というグループで起動している場合は以下のように入力してください。:''

  chown -R apache.apache /path/to/myproject

'''Warning: インストールされたファイルの中から trac.cgi を探しても見つかりません。現在のドキュメントは不完全な状態です; trac-admin の 'deploy' コマンドを使う必要があります。詳細は http://trac.edgewall.org/ticket/7312 や http://trac.edgewall.org/ticket/6827 を参照してください。'''

== スタンドアロンサーバの起動 == #RunningtheStandaloneServer

Trac 環境を作成した後に、スタンドアロンサーバ [wiki:TracStandalone 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 の起動 == #RunningTraconaWebServer

Trac に "真の" Web サーバから接続するには 3 つの方法があります: [wiki:TracCgi CGI], [wiki:TracFastCgi FastCGI], [wiki:TracModPython mod_python] です。まともな性能を出すには FastCGI か mod_python のどちらかを使用することが推奨されます。

また、新しいコードを実行することを恐れていないのであれば [wiki:TracModWSGI mod_wsgi] を実行してみることもできます。 mod_wsgi は mod_python 以上の性能を提供するはずですが、 mod_python に比べ充分テストされたわけではありません。

Trac では [http://trac.edgewall.org/wiki/TracOnWindowsIisAjp AJP] も使用できます。これを使うと IIS とも接続することができます。

==== プラグインキャッシュの設定 ==== #SettingupthePluginCache

Python プラグインの中にはキャッシュディレクトリを必要とするものがあります。デフォルトではキャッシュディレクトリは、現在のユーザのホームディレクトリに置かれます。 Trac を Web サーバで動作させている場合、ホームディレクトリを持たない専用ユーザであることが多く (強く推奨します)、プラグインの起動が妨げられることがあります。キャッシュディレクトリの場所を変更するには、環境変数 PYTHON_EGG_CACHE を設定してください。設定方法の詳細は使用しているサーバのドキュメントから参照してください。

== 認証の構成 == #ConfiguringAuthentication

認証のためのユーザアカウントを追加、削除、構成する方法は Trac を起動する方法により異なります。基本的な手順は TracCgi ページの [wiki:TracCgi#AddingAuthentication "認証を追加する"] セクションで説明されていますが、各フロントエンドのための認証をセットアップする方法は、以下のいずれかを参照してください:

 * TracStandalone スタンドアロンサーバ `tracd` を使用する場合
 * TracCgi CGI か FastCGI を使用する場合
 * TracModPython mod_python を使用する場合

== SVN のチェンジセットを Trac のチケットに自動リンクする方法 == #AutomaticreferencetotheSVNchangesetsinTractickets

ファイルをリポジトリにコミットした時に、チェンジセットへのリンクをチケットのコメントに自動で追加するように SVN を設定することができます。コミットメッセージには以下に示すいずれかの書式が含まれていなければなりません:
 * '''Refs !#123''' - このチェンジセットへのリンクをチケット !#123 に追加します
 * '''Fixes !#123''' - このチェンジセットへのリンクをチケット !#123 に追加し、チケットを ''fixed'' でクローズします。

SVN リポジトリの ''post-commit'' hook を編集し、 Trac 配布物に含まれる ''trac-post-commit-hook'' が実行されるようにしてください。

''post-commit'' hook を編集するときは、まず SVN リポジトリ内の hooks フォルダに移動し、 ''post-commit'' 用のテンプレートファイルを rename してファイルを作成します:

{{{
$ cd /path/to/svn/repository/hooks
$ mv post-commit.tmpl post-commit
$ chmod 755 post-commit
}}}

続いて、ファイルをテキストエディタで開き、以下の行を追加します。パスは編集中の SVN リポジトリに接続している Trac environment のパス、および ''trac-post-commit-hook'' スクリプトのパスで置き換えてください:

{{{
REPOS="$1"
REV="$2"
TRAC_ENV="/path/to/your/trac/project"

/usr/bin/python /usr/local/bin/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"
}}}

もちろん ''trac-post-commit-hook'' は上記のパスに存在し、 SVN を実行しているユーザの権限で実行できる必要があります。このスクリプトは Trac 配布物中では contrib フォルダに配置されています。最新のバージョンは [http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook trunk/contrib/trac-post-commit-hook] からダウンロードすることができます。


== プラットフォーム固有のインストール方法 == #Platform-specificsinstallations

 * [http://trac.edgewall.org/wiki/TracInstallPlatforms TracInstallPlatforms] を参照してください。
 

== Tracを使用する == #UsingTrac

一度 Trac サイトを稼働させれば、 Subversion のリポジトリをブラウズする、チケットを作成する、タイムラインを見るなどが可能になるはずです。

anonymous (ログインしていない) でアクセスするユーザは、デフォルトでほとんどの機能を使用することができますが、すべての機能を使用できるわけではないことに留意してください。すべての機能を使用するためには認証を構成して、認証されたユーザに対し [wiki:TracPermissions アクセス許可] を与える必要があるでしょう。

'' Enjoy! ''

[http://trac.edgewall.org/wiki/TracTeam The Trac Team]

----
See also:  [http://trac.edgewall.org/wiki/TracInstallPlatforms TracInstallPlatforms], TracGuide, TracCgi, TracFastCgi, TracModPython, [wiki:TracModWSGI], TracUpgrade, TracPermissions
