= Trac Installation Guide for 0.12 = 
[[TracGuideToc]]

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

バージョン 0.12 以降で Trac はローカライズされているため、自分が普段使っている言語に翻訳されているかもしれません。 Trac のインタフェースで別の言語を使用したい場合は、任意のパッケージである [#OtherPythonPackages Babel] を **最初に** インストールする必要があります。 Babel がない場合、通常通り、デフォルトの英語バージョンのみ使用することができます。もし、 Babel を Trac よりも後にインストールした場合は、 Trac を再インストールする必要があります。

新しい言語での翻訳の作成や、すでにある言語での翻訳のエンハンスをコントリビュートした場合は [http://trac.edgewall.org/wiki/TracL10N TracL10N] を見てみてください。 (訳注: 日本語の翻訳はすでにコントリビュートされています)

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

[[PageOutline(2-3,インストール手順,inline)]]

== 依存関係 == #Dependencies
=== 必須の依存関係 === #MandatoryDependencies
Trac をインストールするためには以下のソフトウェアパッケージがインストールされていなければなりません:

 * [http://www.python.org/ Python], 2.4 以上 3.0 未満
   (Pyhton 2.3 のサポートは、このリリース (訳注: 0.12) で打ち切られました)
 * [http://peak.telecommunity.com/DevCenter/setuptools setuptools], 0.6 以上
 * [http://genshi.edgewall.org/wiki/Download Genshi], 0.6 以上

また、データベースと、それに対応する Python のバインディングが必要です。
データベースは SQLite, PostgreSQL, MySQL のいずれかが使用できます。

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

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

Python 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 のコードも展開されバインディングがビルドされます。

SQLite をインストールするときに、システムが開発用のヘッダを必要とするかもしれません。これらのヘッダなしでは、ビルドしたときに GCC 関連のエラーがいろいろと出るでしょう:

{{{
$ apt-get install libsqlite3-dev
}}}

SQLite 2.x も !PySqlite 1.1.x ももはやサポートしていません。

既知のバグとして、 !PySqlite バージョン 2.5.2-4 では、 Trac のデータベースを
0.11.x から 0.12. にアップグレードすることができません。 2.5.5 以降か 2.5.1 と
それ以前のバージョンを使用して下さい。詳細については、 [http://trac.edgewall.org/ticket/9434 本家チケット 9434] を参照して下さい。

[http://trac.edgewall.org/wiki/PySqlite PySqlite] も参照することができます。

==== PostgreSQL の場合 #ForPostgreSQL

下記いずれかの Python バインディングをインストールする必要があります:
 * [http://www.postgresql.org/ PostgreSQL], バージョン 8.0 以降
 * [http://pypi.python.org/pypi/psycopg2 psycopg2]

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


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

Trac は以下のガイドラインで、 MySQL でも良好に動作するようになりました。

 * [http://mysql.com/ MySQL], 5.0 以降
 * [http://sf.net/projects/mysql-python MySQLdb], 1.2.2 以降

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

=== 任意の依存関係 === #OptionalDependencies

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

===== Subversion =====
 * [http://subversion.apache.org/ Subversion], 1.5.x または 1.6.x と '''''対応する''''' Python バインディング。 1.4 系の古いバージョンも、今のところ動作します。トラブルシューティングの情報が [http://trac.edgewall.org/wiki/TracSubversion#Troubleshooting TracSubversion] のページに記載されていますので、確認してみてください。1.4.0より以前のバージョンでは、動作しないかもしれません。というのも、 Trac が使用する svn の中心機能 (例:svn_path_canonicalize) が (svn ライブラリそのものには存在していたとしても) svn のバージョン 1.3.x 以前では python の swig のラッパーで実装されていないからです。

主要なプラットフォーム向けに [http://subversion.apache.org/packages.html コンパイル済みの SWIG バインディング] が用意されていますので、通常はこれを使ってください。 ( 頑張って Windows 用のコンパイル済み SWIG バインディングをリストから見つけて下さい。 [http://trac.edgewall.org/wiki/TracSubversion TracSubversion] が [http://alagazam.net Algazam] を指し示すでしょう。 Python 2.6 では動作します。 )

Note: Trac は [http://pysvn.tigris.org/ PySVN] のような新しい `ctype` 形式のバインディングでは '''動作しません'''。 [ctype バインディングを実装するチケットはあるかな？]


'''重要な Note:''' Subversion を使用するなら Trac を '''同じマシン''' にインストールする必要があります。リモートリポジトリは現在[http://trac.edgewall.org/ticket/493 サポートされていません]。


===== その他のバージョン管理システム ===== #Others

Subversion 以外のバージョン管理システムのサポートはサードパーティから提供されます。 [http://trac.edgewall.org/wiki/PluginList PluginList] や [http://trac.edgewall.org/wiki/VersioningSystemBackend VersioningSystemBackend] を参照して下さい。

==== Web サーバ ==== #WebServer
Trac にはサーバ機能が組み込まれているので、 Web サーバは必須ではありません。このページに下にある [#RunningtheStandaloneServer スタンドアロンサーバの起動] セクションを参照してください。

Trac は下記の要件を満たす Web サーバで動作します。
 * [http://httpd.apache.org/ Apache] との組み合わせで 
   - [http://code.google.com/p/modwsgi/ mod_wsgi], [wiki:TracModWSGI] および
     http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac を参照
   - [http://modpython.org/ mod_python 3.3.1], 廃止予定: TracModPython 参照)
 * [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] 参照)
 * CGI が使用可能な Web サーバ (TracCgi 参照), '''しかし Trac を CGI スクリプトとして使用することは
   全く推奨されていません''' ので、上に挙げた方法を選択するようにして下さい。 
   

==== その他の Python パッケージ ==== #OtherPythonPackages

 * [http://babel.edgewall.org Babel], 0.9.5 以上 
   ローカライズの機能を使用する場合は必要。[[BR]]
   ''Note: '' 他の言語で Trac のインタフェースを使用したい場合、必ず最初に Babel をインストールして下さい。 Babel をインストールしていない場合は、通常通りデフォルトの英語バージョンの Trac を使用することができます。 Babel を後からインストールした場合、 Trac を再インストールする必要があります。
 * [http://docutils.sourceforge.net/ docutils], 0.3.9 以上
   WikiRestructuredText の機能を使用する場合は必要
 * [http://pygments.pocoo.org Pygments] 
   [wiki:TracSyntaxColoring シンタックスハイライティング] の機能を使用する場合は必要。
   [http://silvercity.sourceforge.net/ SilverCity] や 
   [http://gnu.org/software/enscript/enscript.html Enscript] も、今のところ使用できますが、
   サポートを打ち切る予定なので、 Pygments を使用して下さい。
 * [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
=== `easy_install` を使用したインストール ===#Usingeasy_install
Trac をインストールする方法のひとつに [http://pypi.python.org/pypi/setuptools setuptools] の利用があります。
setuptools を使用すると、 Trac を Subversion リポジトリからインストールすることもできます;

例:

 - 始めに最新の安定バージョン Trac 0.12.1 とローカライズサポートをインストールする:
   {{{
   easy_install Babel==0.9.5 Genshi==0.6
   easy_install Trac
   }}}
   ''`easy_install` コマンドを二回、別々に実行することはとても重要です。そうしなければ、メッセージカタログが生成されません。''

 - 最新バージョンの Trac にアップグレードする:
   {{{
   easy_install -U Trac
   }}}

 - 最新の開発中のバージョン (0.13dev) にアップグレードする:
   {{{
   easy_install -U Trac==dev
   }}}

アップグレードの場合には、必ず TracUpgrade を読むようにして下さい。

=== ソースからのインストール === #Fromsource
よりインストールを管理したい場合には、アーカイブにあるソースをダウンロードできます。また、本家 [http://trac.edgewall.org/wiki/TracRepositories ソースコードリポジトリ] からチェックアウトすることができます。

必ず事前にインストール条件を整えておいて下さい。 Genshi と Babel のソースパッケージは http://www.edgewall.org で手に入れることができ、同様の手順でインストールすることができます。また、これらのパッケージは単に easy_install でインストールすることもできます。[#Usingeasy_install 上記] 参照。

Trac アーカイブの解凍またはチェックアウトを実行した後、トップレベルのディレクトリに移動し、以下を実行します:
{{{
$ python ./setup.py install
}}}

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

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

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

ソースからインストールする場合や、新しい言語で Trac を国際化するためには Babel をインストールしておく必要があります。この場合も `install` を実行するだけです (Babel がインストールされていない状態で、すでに Trac をインストールしてしまった場合でも、 `install` をやり直すことで Babel サポートを有効化できます):
{{{
$ python ./setup.py install
}}}
また、 `bdist_egg` を実行すると dist ディレクトリに作成される .egg ファイルをインストール先にコピーしたり、 (`bdist_wininst` の実行によって) Windows インストーラを作成しても構いません。

=== 高度なオプション === #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
}}}
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 サードパーティアプリケーションの標準ロケーションです。(訳注: つまり、上記と違うパスにインストールしたい場合のみ、オプションの指定が必要になります)

=== `pip` を使用したインストール === #Usingpip
'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 
}}}

PostgreSQL (libpg-dev) や MySQL (libmysqlclient-dev) へのバインディングも自動でビルドできるように、 pip が OS 固有のヘッダファイルを確実に利用できるようにして下さい。

また pip は (Genshi, Pygments などの) 依存関係を解決し、 pypi.python.org から最新のパッケージをダウンロードして、 /opt/user/trac の配下にインストールするところまで自動化されています。

すべてのコマンド (tracd, trac-admin) は /opt/user/trac/bin の配下にインストールされます。 mod_python (!PythonHandler ディレクティブを使用する場合) や mod_wsgi (!WSGIDaemonProcess ディレクティブを使用する場合) においても活用することができます。

加えて、 Trac プラグインのうちのいくつか ([http://pypi.python.org/pypi?:action=search&term=trac&submit=search ここ] で一覧を見ることができます) も pip からインストールすることが可能です。



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

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

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

[TracAdmin trac-admin] は、プロジェクトの名前や [TracEnvironment#DatabaseConnectionStrings データベース接続文字列] など、 Environment を新規作成するために必要な情報を入力するためのプロンプトを表示します。これらの設定項目について特に変更が必要ない場合は、単に `<Enter>` を押下すると、デフォルト値が使用されます。

データベース接続文字列のデフォルトは SQLite が使用されます。 SQLite がインストールされている場合は、他の設定は不要です。
他の [http://trac.edgewall.org/wiki/DatabaseBackend データベースバックエンド] を使用する場合は、あらかじめデータベースが使用可能な状態にしておかねばなりません。

0.12 以降で Trac は、新しい Environment の作成時に [TracEnvironment#SourceCodeRepository ソースコードリポジトリ] を尋ねないようになりました。リポジトリを後で [TracRepositoryAdmin 追加する] までの間、バージョン管理のサポートは無効化されます。

また、 ここで指定した値は [TracIni conf/trac.ini] 設定ファイルを直接編集することで後から変更できます。

最後に、 Web のフロントエンドを実行しているユーザアカウントは、 Environment のディレクトリと、その中のすべてのファイルに対する書き込み権限が必要です。 `trac-admin ... initenv` の実行を該当するユーザで実行した場合は、この作業は不要ですが、そうでない場合、ただしユーザに権限を付与する作業が必要になります。たとえば Linux で `apache` ユーザ `apache` グループで Web サーバを起動する場合は:
{{{
# chown -R apache.apache /path/to/myproject
}}}

{{{#!div class=important
'''警告''' アカウント名とプロジェクトパスには ASCII 文字のみを使用して下さい。 unicode 文字はサポートしていません。
}}}


== スタンドアロンサーバの起動 == #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 サーバから接続するには、いくつかの方法があります: [wiki:TracCgi CGI], [wiki:TracFastCgi FastCGI], [wiki:TracModWSGI mod_wsgi], [wiki:TracModPython mod_python] です。まともな性能を出すには FastCGI か mod_wsgi のどちらかを使用することが推奨されます。

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

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

Trac を FastCGI などで正しく機能させるには、 FastCGI であれば `trac.fcgi` ファイル、 mod_wsgi であれば `trac.wsgi` ファイルが必要となります。これらのファイルは適切な Python コードをロードする 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 "認証を追加する"] セクションで説明されていますが、各フロントエンドのための認証をセットアップする方法は、以下のいずれかを参照してください:

 * スタンドアロンサーバ `tracd` を使用する場合は TracStandalone
 * CGI か FastCGI を使用する場合は TracCgi
 * Apache の mod_wsgi を使用する場合は [wiki:TracModWSGI]
 * Apache の mod_python を使用する場合は TracModPython


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

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

この機能を使用するためには post-commit フックを [wiki:TracRepositoryAdmin#ExplicitSync TracRepositoryAdmin] に記載したリポジトリにインストールし、  commit updater コンポーネントを有効にせねばなりません。コンポーネントの有効化は、 [wiki:TracIni#components-section trac.ini] ファイルの `[components]` セクションに下記記述を追加するか、 "プラグイン" (英語版では "Plugins") 管理パネルから設定します。
{{{
tracopt.ticket.commit_updater.* = enabled
}}}
詳細な情報は "プラグイン" 管理パネルの `CommitTicketUpdater` コンポーネントにあるドキュメントを参照してください。

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

一度 Trac サイトを稼働させれば、チケットを作成したり、タイムラインを見たり、 (設定されていれば) バージョン管理のリポジトリを閲覧したりできるはずです。

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

'' Enjoy! ''

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

----
See also: [trac:TracInstallPlatforms TracInstallPlatforms], TracGuide, TracCgi, TracFastCgi, TracModPython, [wiki:TracModWSGI], TracUpgrade, TracPermissions
