Tech エントリー[アプリケーション・フレームワーク]
国際化対応済み (標準で日本語化されている) Trac 0.12dev をインストール
以前書いた 0.10 のころ (だったと思いますが...) のインストール方法のエントリーが結構参照されているっぽい
CentOS 5.2 の標準的な環境 (Python なんかが初期状態) で Trac 0.12dev をインストールしてみました。
長いこと 0.10 系だったせいか、0.11 や 0.12 の情報が少ない。0.11 はようやく正式版が出たけど、0.12 に至っては...
最近、Subversion, Trac の新書が出ていた。
秀和システム
売り上げランキング: 25622

Subversionを使えるようになります。
初心者には適した解説本
個人から小規模の開発用途までに必要十分な内容
概念を学びたい人には適してます。
バックアップツール秀和システム
売り上げランキング: 3273
さておき、0.8, 0.9 あたりから 0.10 を長いこと使っていたのでちょっと戸惑った。
インストールなど基本的なことはあまり変わっていない、むしろ簡便になっているとは思うけど若干勝手が違ったのでメモしておく。
Trac のソースより trunk (0.12dev) の INSTALL を覗くと
python ./setup.py install
とあるだけ、これなら以前と変わらない。
でも、(0.11 対象だけど) 公式サイトを参照すると何やら色々必要なモジュール (ライブラリ) が色々あるっぽい。
TracInstall - The Trac Project - Trac
easy_install が入っていれば以下のコマンドで必要なモジュールも含めて ? インストールされる。
easy_install Trac
どんなものが必要なのか知っておきたいので、見当のつくモジュールは先にインストールした。
必要なモジュールに関しては trunk (0.12dev) の setup.py を見るとヒントがある。
# 70行目前後
install_requires = [
'setuptools>=0.6b1',
'Genshi>=0.5'
],
extras_require = {
'Babel': ['Babel>=0.9.2'],
'Pygments': ['Pygments>=0.6'],
'reST': ['docutils>=0.3'],
'SilverCity': ['SilverCity>=0.9.4'],
'Textile': ['textile>=2.0'],
},
0.12 では 開発元の Edgewall が開発している Genshi や Babel などのモジュール (ライブラリ) も利用するようだ。
まずは easy_install をインストール。Perl でいうところの cpan みたいなもの (だと思っている)
EasyInstall - The PEAK Developers' Center
上記より、ez_setup.py を入手。
wget http://peak.telecommunity.com/dist/ez_setup.py
python ./ez_setup.py
これにより easy_install というコマンドが /usr/bin に追加される。
次にライブラリ関係のインストール
yum install python-setuptools
easy_install Genshi
easy_install Babel
easy_install Pygments
easy_install docutils
easy_install textile
easy_install SilverCity はエラーこいたので取り敢えず無視。トラブル発生したら追求する。多分、ソース拾ってきてインストールすれば入ると思う。
ちなみに SilverCity のエラーはこんな感じ。
No local packages or download links found for SilverCity
error: Could not find suitable distribution for Requirement.parse('SilverCity')
っで、ようやく Trac 本体のインストール
0.12dev = svn の trunk ということになるので、常時コミットされているような開発版ということでもある。なので定期的にインストール (アップグレード) する必要がありそう。
少々面倒な気もするけど、標準で日本語化されているというのは大きい。というか、、最新を使いたいという興味が強いだけかっ...
0.11 のローカライズ版 (有志の型の日本語版 Trac ) もあるようだけど、あくまでも派生系だから。
入門Trac with Subversion Linux/Windows対応
当該ページにおきまして、Trac日本語版(以下trac-ja)のバージョン0.11の正式なリリースが行なわれているかのような記述がありますが、そのような事実はありません。
したがいまして、記載内容通りにインストール作業を進める事ができません。
trac-jaは、英語版が正式リリースされてから新しいバージョンのリリースが行なわれるので、現時点で、trac-jaのバージョン0.11のリリースの予定は未定です。
そこで、英語版Tracの最新リリースである0.11rc1をもとに、trac-jaのバージョン0.10.4時点での翻訳を反映したバージョンを作成いたしました。trac-jaから派生した完全に別のリリースであるため、こちらのリリースはtrac-shuwaと呼ぶ事にします。
サポート|秀和システム
っで、trunk からどうインストールするかなんだけど、まずはソースを適当なディレクトリに svn checkout もしくは svn export してくる。
svn export http://svn.edgewall.com/repos/trac/trunk ./trunk
っで、ここからが知らないと分からない。
python setup.py compile_catalog -f
python setup.py build
python setup.py install
INSTALL を見ると setup.py install としか書いていない。もしかすると setup.py compile_catalog や setup.py build は setup.py install で一括してやってくれるのか ?
それと Trac の初期設定のコマンドの内容が少し変更になっている。以前はテンプレートを指定することになっていたど、これがいらないみたい。
trac-admin --help で参照してみると <templatepath> がなくなっている。
initenv <projectname> <db> <repostype> <repospath>
ちなみに、trac-admin /path/to/trac/install/dir initenv で対話式で初期設定してもテンプレートのパスを聞いてこない。
あわせて、古いバージョンだとテンプレート関係が /usr/share/trac に配置 (配布) されていたけど、今回インストールしたときにそれがなかった。
あとは、trac.ini の中身を見てみると以前との違いが色々分かる。それらについては追々理解しく。
Genshi の EGG のキャッシュがバグを含んでいる ??
インストール後、最初に躓いたことをメモしておく。
プラグインのキャッシュの設定でものによっては SetEnv PYTHON_EGG_CACHE というのを httpd.conf に書かないといけない場合があるけど、これがなぜかちゃんと認識してくれない。
TracPlugins# Setting up the Plugin Cache - The Trac Project - Trac
初期設定した Trac のページにアクセスするとapache のエラーログにはキャッシュディレクトリにアクセスできないペーミッションが正しくないんじゃない ? 的な記録が残っていた。
ExtractionError: Can't extract file(s) to egg cache
The following error occurred while trying to extract file(s) to the Python egg
cache:
[Errno 13] Permission denied: '/home/.python-eggs'
The Python egg cache directory is currently set to:
/home/.python-eggs
Perhaps your account does not have write access to this directory? You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory.
httpd.conf に SetEnv PYTHON_EGG_CACHE を追記する前は /home/.python-eggs の部分が /root/.python-eggs だった。訳が分からない。
- trac 0.11rc2 がリリース(Genshi でハマる) -- takanory.net
- Genshi 0.5 再インストール + trac 0.11rc2 日本語版 -- takanory.net
Plone マスター ? takanory さんのサイトに解決策があった。
Genshi 0.5 再インストール + trac 0.11rc2 日本語版
なるほど、unzipという方法もあるんですね。私は、#7320のコメントを参考に、/etc/sysconfig/httpd のファイルにexport PYTHON_EGG_CACHE=(eggのキャッシュフォルダ)を追記して動かしていました(CentOS5.0)が、httpdの設定ファイルを書き換えるのもなぁ・・・と思っていました(^^;
※どうも、httpd.confのSetEnvが無視されるようになってしまったのが原因のようで。
takanory.net
どうやら本家でチケットが切られている問題っぽい。
#7320 (traceback for genshi-related error)
The quick/simple fix is to add to the end of: /etc/sysconfig/httpd export PYTHON_EGG_CACHE=/tmp
The Trac Project - Trac
これを知ったのが解決した後だったので...
私はエラーログの指摘の通り、/home/.python-eggs ディレクトリを作成して、apache が書き込みできるように設定した... (後述)
ただ、ちょっと気になるのは takanory さんのエントリーにあった 「httpd.confのSetEnvが無視されるようになってしまった」というコメント。
これって、apache がダメなの ? mod_python がダメなの ? それとも Trac ?
話を戻して、最終的には (/home/.python-eggs は気持ち悪いので) PYTHON_EGG_CACHE が認識されるよう /etc/sysconfig/httpd に設定を追加して、/tmp あたりにキャッシュ用のディレクトリを作成して対応した。
vim /etc/sysconfig/httpd
# PYTHON_EGG_CACHE=/tmp/.python-eggs
export PYTHON_EGG_CACHE=/tmp/.python-eggs
行末に設定を追記して、
cd /tmp
mkdir .python-eggs
chmod 777 .python-eggs
した ... けどダメだった。結局、最初の /home/.python-eggs しか認識してくれない...
記述が間違ってた。export PYTHON_EGG_CACHE=/tmp/.python-eggs の export が抜けていた...
mod_python の 設定内容が変わっている
0.10 の頃の設定で正常に動いていると思っていたけど、甘かった。
ブラウザ越しに一通り眺めて login しようと思ったらできず...
設定項目 ? ディレクティブ ? パラメーター ? (呼称がわかりませんが) httpd.conf の Location ディレクティブにて設定する項目が増えていた。
TracModPython#Simpleconfiguration - The Trac Project - Trac
上記の公式ページを見ると、一つ目は必須の設定項目で、二つ目以降が options available で紹介されている。
PythonInterpreter main_interpreter
# For a single project
PythonOption TracEnv /var/trac/myproject
# For multiple projects
PythonOption TracEnvParentDir /var/trac/myprojects
# For the index of multiple projects
PythonOption TracEnvIndexTemplate /srv/www/htdocs/trac/project_list_tepmlate.html
# A space delimitted list, with a "," between key and value pairs.
PythonOption TracTemplateVars key1,val1 key2,val2
# Useful to get the date in the wanted order
PythonOption TracLocale en_GB.UTF8
# See description above
PythonOption TracUriRoot /projects/myproject
TracEnvIndexTemplate ってのがとても気になる。多分、複数の Trac を利用しているときにルートで一覧表示される Trac の一覧のことなんじゃないかと思うけど、これがカスタマイズできるのは大変ありがたい。
と勝手に予測しているけど、あっているかどうかは不明...
私の設定は以下のような感じ。
<Location />
SetHandler mod_python
#SetEnv PYTHON_EGG_CACHE /home/.python-eggs
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /path/to/trac/project
#PythonOption TracEnvParentDir /path/to/trac/project
PythonOption TracLocale ja_JP.UTF8
PythonOption TracUriRoot /
</Location>
#<LocationMatch "/[^/]+/login">
<Location /login>
AuthType Digest
# Trac login
AuthName "Authentication Directory"
#AuthDigestDomain
AuthDigestProvider file
AuthUserFile /etc/httpd/.htdigest
Require valid-user
</Location>
#</LocationMatch>
login も正常に動作しているっぽい。もう少し運用してみると、もしかすると問題が出てくるかも...
おまけ
淡々と、Trac 0.12dev のインストールログをアップしている人がいた。この人のログもちょこちょこ参照しました。
コメント (0) トラックバック (0) Atom/RSS
投稿: 2008年06月29日 01:37 / 最終更新: 2008年07月28日 22:18
» WWW SQL Designer 2.1.1 の日本語化
« MacOSX 10.4 + MacPorts の Python 2.5 で smtplib 使ってたら socket.ssl ってエラーが





コメント (投稿する)