= Trac プラグイン = [[TracGuideToc]] バージョン 0.9 以降、 Trac はプラグインをサポートし、組み込み機能を拡張できるようになりました。プラグインの機能は [http://projects.edgewall.com/trac/wiki/TracDev/ComponentArchitecture コンポーネント設計] に基づいています。 == 必要条件 == Trac のプラグインを使用するためには、 [http://peak.telecommunity.com/DevCenter/setuptools setuptools] (バージョン 0.6) をインストールしなければなりません。 `setuptools` をインストールするために、ブートストラップモジュールである[http://peak.telecommunity.com/dist/ez_setup.py ez_setup.py]をダウンロードし、以下に示すように実行して下さい: {{{ $ python ez_setup.py }}} もし `ez_setup.py` スクリプトが setuptools のインストールに失敗したら、 [http://www.python.org/pypi/setuptools PyPI] をダウンロードして手動でインストールしてください。 == Trac プラグインのインストール == === 単一のプロジェクト === プラグインは [http://peak.telecommunity.com/DevCenter/PythonEggs Python eggs] としてパッケージ化されています。つまり、拡張子が `.egg` となっている ZIP アーカイブのファイルです。プラグインのソースコードディストリビューションをダウンロードした場合は、以下のコマンドを実行して下さい: {{{ $ python setup.py bdist_egg }}} `.egg` ファイルをビルドできます。 一度、プラグインアーカイブを作成したら、 [wiki:TracEnvironment TracEnvironment] の `plugins` ディレクトリにコピーする必要があります。また、 Web サーバーが egg プラグインを読み取るのに必要なパーミッションをつけてください。 === すべてのプロジェクト === すべてのプロジェクトでプラグインを使用したいとき ([http://projects.edgewall.com/trac/wiki/WebAdmin WebAdmin] など) はグローバルにインストールし動かすことができます。 {{{ $ python setup.py install }}} 代わりに、`.egg` ファイルを Python の `site-packages` ディレクトリにおくだけでもいいです。 個別の TracEnvironment にプラグインをインストールする場合と異なり、システム全体にインストールしたプラグインを有効にするためには、 [wiki:TracIni trac.ini] ファイルで明示的に指定しなければいけません。これは設定ファイルの `[components]` セクションに次のような記載を行います: {{{ [components] webadmin.* = enabled }}} オプションの名前はプラグインの Python パッケージ名です。これはプラグインのドキュメンテーションに指定されていなければいけませんが、ソースを見れば簡単に見つけることが出来ます。(最上位のディレクトリにあるファイル `__init__.py` を探してください。) == プラグインのキャッシュの設定 == いくつかのプラグインは Python eggs のランタイム (`pkg_resources`) によって解凍される必要があります。というのもそれらの内容がファイルシステム上に実際に存在する必要があるからです。通常、 Python eggs は現在のユーザのホームディレクトリに解凍されますが、それにより問題が発生するかもしれません。その場合、環境変数 `PYTHON_EGG_CACHE` を設定してデフォルトのロケーションを上書きすることができます。 `PYTHON_EGG_CACHE` を `SetEnv` ディレクティブを使用して Apache に設定するには以下のようにします: {{{ SetEnv PYTHON_EGG_CACHE /path/to/dir }}} これは [wiki:TracCgi CGI] と [wiki:TracModPython mod_python] のどちらをフロントエンドにしようと動作します。このディレクティブに [wiki:TracEnvironment Trac Environment] へのパスに設定し、例えば同じ `` ブロックにおいてください。 例 (CGI用): {{{ SetEnv TRAC_ENV /path/to/projenv SetEnv PYTHON_EGG_CACHE /path/to/dir }}} 例 (mod_python用): {{{ SetHandler mod_python ... SetEnv PYTHON_EGG_CACHE /path/to/dir }}} [wiki:TracFastCgi FastCGI] で、Web サーバに設定するためには、 `-initial-env` オプションやサーバーが指定している方法で、環境変数を設定する必要があります。 ---- See also: TracGuide, [http://projects.edgewall.com/trac/wiki/PluginList プラグイン一覧], [http://projects.edgewall.com/trac/wiki/TracDev/ComponentArchitecture コンポーネント設計]