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


Trac は Python で書かれており、データベースとして [http://sqlite.org/ SQLite], [http://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] にありますが、 '''まず最初に以下の一般的な手順を読み通して''' タスクの関係を確実に理解してください。

すでにインストールした Trac をアップグレードする手順は TracUpgrade を参照してください。


== リリース済みバージョンの簡単なインストール方法 == #QuickInstallaReleasedVersion
簡単にインストールするには、まず、 [http://python.org/download Python] (2.3-2.6) と [http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install easy_install] をインストールしておいてください。

その状態で次のコマンドを実行します (''存在しなければ 'sudo' は外してください'')
{{{
sudo easy_install Trac
}}}
Trac, SQLite, Genshi などがまとめてインストールされます。


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

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

 * [http://www.python.org/ Python] 2.3 以上 (3.0 以降は未対応)
   * 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://trac.edgewall.org/wiki/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

Python 2.5 か 2.6 の場合は、必要なライブラリは同梱されています。

Python 2.3, 2.4 の場合、 pysqlite が必要です。 pysqlite は
[http://code.google.com/p/pysqlite/downloads/list google code] から Windows
インストーラやソースからのビルド用の tar.gz アーカイブがダウンロードできます:
{{{
$ tar xvfz <version>.tar.gz 
$ cd <version> 
$ python setup.py build_static install 
}}}
 
最新の SQLite のバージョンをダウンロードし、バインディングをビルドできます。
That way, the latest SQLite version will be downloaded and built into the 
bindings. 

SQLite 2.x をまだ使っているのであれば、 pysqlite 1.0.x が必要ですが、この
パッケージはそう簡単には見つかりません。 SQLite 3.x の場合は pysqlite 2.x
を使用してください。 pysqlite 1.1.x は、もう古くなっています。

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

==== 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

 * [http://mysql.com/ MySQL] 4.1 以上 ([http://askmonty.org/wiki/index.php/MariaDB MariaDB] might work as well)
 * [http://sf.net/projects/mysql-python MySQLdb] 1.2.1 以上

詳しくは [http://trac.edgewall.org/wiki/MySqlDb MySqlDb] を参照してください。
データベースを作成する前に、このページを注意深く読んでください。 ''とても'' 重要なことが記載されています。

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

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

'''Please note:''' Subversion を使用するなら Trac を同じマシンにインストールする必要があります。リモートリポジトリは現在サポートされていません。 (Windows では {{{\\machine_name\path\to\svn}}} のような UNC パスは動作します)。

 * [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

== スタンドアロンサーバの起動 == #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 とも接続することができます。

==== Trac の cgi-bin ディレクトリを生成する ==== #GeneratingtheTraccgi-bindirectory

Trac を FastCGI や mod_python (訳註: おそらく mod_wsgi の誤り) で正しく機能させるには、 trac.cgi ファイルが必要となります。このファイルは適切な Python コードをロードする実行可能ファイルです。このファイルは [wiki:TracAdmin trac-admin] コマンドの `deploy` オプションを使用することで生成できます。

若干の「卵が先か鶏が先か」問題があります。 [wiki:TracAdmin 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
}}}

==== プラグインキャッシュの設定 ==== #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

