= Trac Environment =

Trac はプロジェクトのデータを保存するために、ディレクトリ構造とデータベースを使用します。このディレクトリを "Environment" と呼びます。

== Environment の作成 ==

新しい Trac Environment を作成するには、 [wiki:TracAdmin trac-admin] コマンドを使用します:
{{{
$ trac-admin /path/to/projectenv initenv
}}}

[wiki:TracAdmin trac-admin] はあなたに、プロジェクトの名前、
データベースに接続するための文字列 (以下に説明します) 、
ソースコードリポジトリの種類とパスを尋ねてきます。

''Note: Environment のディレクトリ配下は、 Web サーバの実行ユーザに書き込みパーミッションを
与える必要があります。適切なパーミッションの付与を忘れないようにしてください。
書き込みパーミッションの付与は、 Trac が最終的に使用している Subversion のリポジトリにも当てはまります。
ただし、あなたが Subversion リポジトリに Barkley DB のファイルシステムを使用していないならば、 
Trac は読み取りパーミッションしか必要としません。''

== データベースに接続するための文字列 ==

バージョン 0.9 以降の Trac では [http://sqlite.org/ SQLite],
[http://www.postgresql.org/ PostgreSQL] と [http://mysql.com/ MySQL] をバックエンドのデータベースとして
利用可能になりました。通常では SQLite を使用します。たぶんほとんどのプロジェクトにとっては SQLite で十分です。
データベースファイルは Environment のディレクトリに保存されます。そして、
[wiki:TracBackup Trac のバックアップ] で Environment の残りの部分 (データベースファイル以外のファイル) 
と一緒にバックアップすることができます。

組み込みの SQLite データベースに接続するための文字列は以下の通りです:
{{{
sqlite:db/trac.db
}}}

もしあなたが、 PostgreSQL や MySQL を代わりに使用する場合、
異なる接続用文字列を使用しなければなりません。 例えば、 PostgreSQL に接続するとき、
ユーザ名 `johndoe` でパスワード `letmein` で
ローカルホストの `trac` と呼ばれるデータベースに接続するには以下のように指定します:
{{{
postgres://johndoe:letmein@localhost/trac
}}}

もし、 PostgreSQL がデフォルト以外のポート番号 (例えば、 9432) で起動しているときはこのようにします:
{{{
postgres://johndoe:letmein@localhost:9342/trac
}}}

PostgreSQL を使用するとき、 `trac-admin initenv` を実行する前に
データベースを作成しなければいけません。

PostgreSQL データベースの名前は "trac" にしてください。そのほうが都合がいいです:
また、 trac-user-name に大文字を使用すると動きません。
{{{
sudo su - postgres -c createdb trac
sudo su - postgres -c psql trac
CREATE USER trac-user-name WITH PASSWORD 'trac-pass-name';
}}}

(sudo/su を設定していなければ、手動で createdb と psql を実行する必要があることに留意してください。このドキュメントを読んで最初そのことを理解するまで少し時間がかかりました。 (訳注: この一文は本家サイトの Wiki に寄せられた感想のようです))

== ソースコードリポジトリ ==

最初にリポジトリの ''type'' を指定しなければなりません。 (例 Subversion ならば `svn` 、
これがデフォルトです)、そしてリポジトリの ''path'' を指定しなければなりません。

リポジトリなしで、 Trac を使用したいときは、単に ''path'' 部分に何も入力しないままにして下さい。 
(その場合''type'' の情報は影響しません)

リポジトリシステムによっては、リポジトリへのパスだけではなく、リポジトリ内の ''scope'' を設定
することもできます。 Trac はそのスコープ以下に限定したファイルとチェンジセット
に関連する情報を表示します。 Trac のバックエンドで  Subversion を 使う場合
このようなことが可能です; 他のリポジトリシステムについては、対応するプラグインのドキュメントで確認して下さい。

Subversion リポジトリの設定の一例です:
{{{
[trac]
repository_type = svn
repository_dir = /path/to/your/repository
}}}

スコープを絞った Subversion リポジトリの設定の一例です:
{{{
[trac]
repository_type = svn
repository_dir = /path/to/your/repository/scope/within/repos
}}}

== ディレクトリ構造 ==

一つのプロジェクトの Environment のディレクトリは通常以下に示すファイルとディレクトリから成り立ちます。

 * `README` - Environment について記述したドキュメント。
 * `VERSION` - Environment のバージョン識別情報。
 * `attachments` - 全ての添付ファイルはここに保存されます。
 * `conf`
   * `trac.ini` - メインとなる設定ファイル。詳細は TracIni に記述しています。
 * `db`
   * `trac.db` - SQLite データベース (SQLite を使用しているならば)
 * `plugins` - Environment に固有の [wiki:TracPlugins プラグイン] (Python eggs)
 * `templates` - カスタム (プロジェクトに固有の) テンプレート
   * `site_css.cs` - カスタム CSS スタイルシート
   * `site_footer.cs` - カスタムフッタ
   * `site_header.cs` - カスタムヘッダ
 * `wiki-macros` - Environment に固有の [wiki:WikiMacros Wiki マクロ]

  '''Note: Trac Environment のディレクトリとソースコードリポジトリのディレクトリを一緒にしないで下さい。
上記のディレクトリ構造は Subversion リポジトリのディレクトリ構造をざっくりと真似ているだけですが、
2つは同じ場所においては ''いけません'' 。'''

----
See also: TracAdmin, TracBackup, TracIni, TracGuide
