TracPlugins: バージョン 1 における更新

差分発生行の前後
無視リスト:
更新者:
trac (IPアドレス: 127.0.0.1)
更新日時:
2006/11/22 18:14:01 (18 年前)
コメント:

--

凡例:

変更無し
追加
削除
更新
  • TracPlugins

    v0 v1  
     1= Trac プラグイン = 
     2[[TracGuideToc]] 
     3 
     4バージョン 0.9 以降、 Trac はプラグイン機能に対応し、組み込み機能を拡張できるようになりました。プラグインの機能は [http://trac.edgewall.org/wiki/TracDev/ComponentArchitecture コンポーネント設計] に基づいています。 
     5 
     6== 必要条件 == 
     7 
     8Python egg が基になっている Trac のプラグインを使用するためには、 [http://peak.telecommunity.com/DevCenter/setuptools setuptools] (バージョン 0.6) をインストールしなければなりません。 
     9 
     10プラグインは単一の `.py` ファイルから成り立っていて、各 TracEnvironment かグローバルの `plugin` ディレクトリに配置します。 ''([http://trac.edgewall.org/milestone/0.10 milestone:0.10] 以降)'' 
     11 
     12`setuptools` をインストールするために、ブートストラップモジュールである [http://peak.telecommunity.com/dist/ez_setup.py ez_setup.py] をダウンロードし、以下に示すように実行して下さい: 
     13{{{ 
     14$ python ez_setup.py 
     15}}} 
     16 
     17もし `ez_setup.py` スクリプトが setuptools のインストールに失敗したら、 [http://www.python.org/pypi/setuptools PyPI] をダウンロードして手動でインストールしてください。 
     18 
     19== Trac プラグインのインストール == 
     20 
     21=== 単一のプロジェクト === 
     22 
     23プラグインは [http://peak.telecommunity.com/DevCenter/PythonEggs Python eggs] としてパッケージ化されています。つまり、拡張子が `.egg` となっている ZIP アーカイブのファイルです。プラグインのソースコードディストリビューションをダウンロードした場合は、以下のコマンドを実行して下さい: 
     24{{{ 
     25$ python setup.py bdist_egg 
     26}}} 
     27`.egg` ファイルをビルドできます。 
     28 
     29一度、プラグインアーカイブを作成したら、 [wiki:TracEnvironment TracEnvironment] の `plugins` ディレクトリにコピーする必要があります。また、 Web サーバーが egg プラグインを読み取るのに必要なパーミッションをつけてください。 
     30 
     31Python egg をビルドするための Python のバージョンと  
     32Trac を動かしている Python のバージョンが一致しなければなりません。 
     33例えば、 Trac を Python のバージョン 2.3 以前で動かしていて、 
     342.4 にアップグレードしたときに、  
     35Python egg は認識されなくなるでしょう。 
     36 
     37=== すべてのプロジェクト === 
     38 
     39==== 単一の .egg ファイル ==== 
     40 
     41いくつかのプラグイン (例えば [http://trac.edgewall.org/wiki/WebAdmin WebAdmin]) は `.egg` ファイルとしてダウンロードし、 `easy_install` プログラムでインストールすることができます: 
     42{{{ 
     43easy_install TracWebAdmin-0.1.1dev_r2765-py2.3.egg 
     44}}} 
     45 
     46もし、システムに `easy_install` がなくてプラグインをインストールするには上記の必要条件のセクションを見て下さい。 Windows ユーザは `Scripts` ディレクトリを Python をインストールしたディレクトリ (例えば、 `C:\Python23\Scripts`) を環境変数 `PATH` に加えなければなりません。 (より詳しい情報は、 [http://peak.telecommunity.com/DevCenter/EasyInstall#windows-notes easy_install の Windows Notes] を参照して下さい。) 
     47 
     48zipで固められた Python egg をインストールし、 Web サーバに Python egg のキャッシュディレクトリに書き込み権限をつけているのにも関わらず、 Trac がパーミッションエラーを出したら、 解凍した Python egg を単に置き直すことによって回避できます。 `easy_install` に `--always-unzip` オプションを付けるだけです: 
     49{{{ 
     50easy_install --always-unzip TracWebAdmin-0.1.1dev_r2765-py2.3.egg 
     51}}} 
     52zip で固められた Python egg ファイルと同じ名前のディレクトリ (拡張子が `.egg` で終わっているもの) ができ、そのなかに解凍した中身が入っているでしょう。 
     53 
     54Trac はまた `$prefix/share/trac/plugins` 配下に、グローバルにインストールされたプラグインを検索します ''(0.10 以降)''。 
     55 
     56==== ソースから ==== 
     57 
     58Subversion からダウンロードしたプラグインのソースや zip で固められたソースファイルはソース中に含まれている `setup.py` を使用してインストールできます: 
     59{{{ 
     60$ python setup.py install 
     61}}} 
     62 
     63==== プラグインを有効にする ==== 
     64個別の TracEnvironment にプラグインをインストールする場合と異なり、システム全体にインストールしたプラグインを有効にするためには、 [wiki:TracIni trac.ini] ファイルで明示的に指定しなければいけません。これは設定ファイルの `[components]` セクションに次のような記載を行います: 
     65{{{ 
     66[components] 
     67webadmin.* = enabled 
     68}}} 
     69 
     70オプションの名前はプラグインの Python パッケージ名です。これはプラグインのドキュメンテーションに指定されていなければいけませんが、ソースを見れば簡単に見つけることが出来ます。(最上位のディレクトリにあるファイル `__init__.py` を探してください。) 
     71 
     72Note: プラグインのインストール後、 Apache を再起動する必要があるでしょう。 
     73 
     74== プラグインのキャッシュの設定 == 
     75 
     76いくつかのプラグインは Python eggs のランタイム (`pkg_resources`) によって解凍される必要があります。というのもそれらの内容がファイルシステム上に実際に存在する必要があるからです。通常、 Python eggs は現在のユーザのホームディレクトリに解凍されますが、それにより問題が発生するかもしれません。その場合、環境変数 `PYTHON_EGG_CACHE` を設定してデフォルトのロケーションを上書きすることができます。 
     77 
     78`PYTHON_EGG_CACHE` を `SetEnv` ディレクティブを使用して Apache に設定するには以下のようにします: 
     79{{{ 
     80SetEnv PYTHON_EGG_CACHE /path/to/dir 
     81}}} 
     82 
     83これは [wiki:TracCgi CGI] と [wiki:TracModPython mod_python] のどちらをフロントエンドにしようと動作します。このディレクティブに [wiki:TracEnvironment Trac Environment] へのパスに設定し、例えば同じ `<Location>` ブロックにおいてください。 
     84 
     85例 (CGI用): 
     86{{{ 
     87 <Location /trac> 
     88   SetEnv TRAC_ENV /path/to/projenv 
     89   SetEnv PYTHON_EGG_CACHE /path/to/dir 
     90 </Location> 
     91}}} 
     92 
     93例 (mod_python用): 
     94{{{ 
     95 <Location /trac> 
     96   SetHandler mod_python 
     97   ... 
     98   SetEnv PYTHON_EGG_CACHE /path/to/dir 
     99 </Location> 
     100}}} 
     101 
     102 ''Note: これは `mod_env` モジュールが必要です。'' 
     103 
     104[wiki:TracFastCgi FastCGI] で、 Web サーバに設定するためには、 `-initial-env` オプションやサーバーが指定している方法で、環境変数を設定する必要があります。 
     105 
     106=== Subversion の フックスクリプトについて === 
     107 
     108もし、 Trac エンジンを呼び出すような Subversion の フックスクリプト - Trac の配布物の `/contrib` ディレクトリで提供されている post-commit フックスクリプトなど - を設定していたら、プラグインと同様にスクリプトの中で環境変数 `PYTHON_EGG_CACHE` を定義して下さい。 
     109 
     110== トラブルシューティング == 
     111 
     112=== setuptools は正しくインストールされていますか? === 
     113 
     114これコマンドラインで実行してみてください: 
     115{{{ 
     116$ python -c "import pkg_resources" 
     117}}} 
     118 
     119もし、コマンドラインから '''何も''' かえって来なければ、 setuptools はインストール '''されています'''。そうでなければ、 Trac を動かす前に setuptools をインストールする必要があります。 
     120 
     121=== Python egg は正しいバージョンですか? === 
     122 
     123Python egg はファイル名の中で Python のバージョンをエンコードします。例えば、 `MyPlugin-1.0-py2.4.egg` は Python 2.4 用の Python egg であり、異なる Python のバージョン (2.3 や 2.5) で動かそうとしても '''動かない''' でしょう。 
     124 
     125また、ダウンロードした Python egg ファイル が本当に ZIP アーカイブであるかどうかを確認して下さい。もし Trac サイトからダウンロードしたとしたら、 HTML プレビューページを代わりにダウンロードしているかもしれません。 
     126 
     127=== プラグインは有効になっていますか? === 
     128 
     129グローバル領域にプラグインをインストールした場合 (TracEnvironment の `plugin` ディレクトリ内 ''ではなく'') 、 [TracIni trac.ini] に明確に有効にする設定をしなければなりません。以下の事項を確認して下さい: 
     130 * `[components]` セクションに必要な行数を追加したか。 
     131 * パッケージ / モジュール名は正しいか 
     132 * もし、(クラスに対して) モジュールを参照しているならば、必要に応じて、 ".*" を追加しているかどうか。 
     133 * 正しい値、 "enabled" になっているかどうか。例えば、 "enable" ではなく。 
     134 
     135=== Python egg ファイルのパーミッションのチェック === 
     136 
     137Trac はもちろん Python egg ファイルを読めなければいけません。分かってるよね。;-) 
     138 
     139=== ログファイルのチェック === 
     140 
     141Trac で [TracLogging logging] を有効にし、ログレベルを `DEBUG` に設定し、プラグインがロードされるときのログメッセージを見て下さい。 
     142 
     143---- 
     144See also TracGuide, [http://trac.edgewall.org/wiki/PluginList プラグイン一覧], [http://trac.edgewall.org/wiki/TracDev/ComponentArchitecture コンポーネント設計] 
track feed