Warning: リポジトリと同期できません (サポートされていないバージョンコントロールシステム "svn です。 Python のライブラリに "svn" が正しくインストールされているか確認してください。)
バージョン 1 (更新者: trac, 19 年 前)

--

Trac プラグイン

バージョン 0.9 以降、 Trac はプラグインをサポートし、組み込み機能を拡張できるようになりました。プラグインの機能は コンポーネント設計 に基づいています。

必要条件

Trac のプラグインを使用するためには、 setuptools (バージョン 0.6) をインストールしなければなりません。

setuptools をインストールするために、ブートストラップモジュールであるez_setup.pyをダウンロードし、以下に示すように実行して下さい:

$ python ez_setup.py

もし ez_setup.py スクリプトが setuptools のインストールに失敗したら、 PyPI をダウンロードして手動でインストールしてください。

Trac プラグインのインストール

単一のプロジェクト

プラグインは Python eggs としてパッケージ化されています。つまり、拡張子が .egg となっている ZIP アーカイブのファイルです。プラグインのソースコードディストリビューションをダウンロードした場合は、以下のコマンドを実行して下さい:

$ python setup.py bdist_egg

.egg ファイルをビルドできます。

一度、プラグインアーカイブを作成したら、 TracEnvironmentplugins ディレクトリにコピーする必要があります。また、 Web サーバーが egg プラグインを読み取るのに必要なパーミッションをつけてください。

すべてのプロジェクト

すべてのプロジェクトでプラグインを使用したいとき (WebAdmin など) はグローバルにインストールし動かすことができます。

$ python setup.py install

代わりに、.egg ファイルを Python の site-packages ディレクトリにおくだけでもいいです。

個別の TracEnvironment にプラグインをインストールする場合と異なり、システム全体にインストールしたプラグインを有効にするためには、 trac.ini ファイルで明示的に指定しなければいけません。これは設定ファイルの [components] セクションに次のような記載を行います:

[components]
webadmin.* = enabled

オプションの名前はプラグインの Python パッケージ名です。これはプラグインのドキュメンテーションに指定されていなければいけませんが、ソースを見れば簡単に見つけることが出来ます。(最上位のディレクトリにあるファイル __init__.py を探してください。)

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

いくつかのプラグインは Python eggs のランタイム (pkg_resources) によって解凍される必要があります。というのもそれらの内容がファイルシステム上に実際に存在する必要があるからです。通常、 Python eggs は現在のユーザのホームディレクトリに解凍されますが、それにより問題が発生するかもしれません。その場合、環境変数 PYTHON_EGG_CACHE を設定してデフォルトのロケーションを上書きすることができます。

PYTHON_EGG_CACHESetEnv ディレクティブを使用して Apache に設定するには以下のようにします:

SetEnv PYTHON_EGG_CACHE /path/to/dir

これは CGImod_python のどちらをフロントエンドにしようと動作します。このディレクティブに Trac Environment へのパスに設定し、例えば同じ <Location> ブロックにおいてください。

例 (CGI用):

 <Location /trac>
   SetEnv TRAC_ENV /path/to/projenv
   SetEnv PYTHON_EGG_CACHE /path/to/dir
 </Location>

例 (mod_python用):

 <Location /trac>
   SetHandler mod_python
   ...
   SetEnv PYTHON_EGG_CACHE /path/to/dir
 </Location>

FastCGI で、Web サーバに設定するためには、 -initial-env オプションやサーバーが指定している方法で、環境変数を設定する必要があります。


See also: TracGuide, プラグイン一覧, コンポーネント設計