Tech エントリー[アプリケーション・フレームワーク]

国際化対応済み (標準で日本語化されている) Trac 0.12dev をインストール

あとで読む コメント (0) トラックバック (0) Atom/RSS

以前書いた 0.10 のころ (だったと思いますが...) のインストール方法のエントリーが結構参照されているっぽい

Trac-ja を新規でインストール

CentOS 5.2 の標準的な環境 (Python なんかが初期状態) で Trac 0.12dev をインストールしてみました。

長いこと 0.10 系だったせいか、0.11 や 0.12 の情報が少ない。0.11 はようやく正式版が出たけど、0.12 に至っては...

最近、Subversion, Trac の新書が出ていた。

入門Subversion―Windows/Linux対応
上平 哲
秀和システム
売り上げランキング: 25622
おすすめ度の平均: 4.5
5 Subversionを使えるようになります。
5 初心者には適した解説本
4 個人から小規模の開発用途までに
必要十分な内容
3 概念を学びたい人には適してます。
4 バックアップツール
入門Trac with Subversion―Linux/Windows対応
高山 恭介
秀和システム
売り上げランキング: 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_catalogsetup.py buildsetup.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.confSetEnv PYTHON_EGG_CACHE を追記する前は /home/.python-eggs の部分が /root/.python-eggs だった。訳が分からない。

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 ってエラーが

タグ (関連キーワード)

トラックバック


コメント (投稿する)

コメント投稿





エントリー検索



最近のエントリー




テクノラティプロフィール

フィードメーター - Jamz Update (all blogs)

スカウター : Jamz

awasete.oshira.se

あわせて読みたい

track feed
SEO対策 | ブログパーツ


イベント情報

LL魂
08月04日(土)開催 参加予定


クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.

テクノラティプロフィール