前回 予告していたように、Tracのバージョンアップネタを。
まず前提として、Trac0.10を使っていてそろそろ0.11にバージョンアップしたいなぁという感じの人向けです。
Trac0.11へのアップグレード方法も基本的には、新規にインストールする方法とあまり変わりませんので、新規にインストールしたい場合でも流用可能だと思います。
まず、Trac0.11からテンプレートエンジンがClearSilver からGenshi に変わっています。
ということで、まずはGenshiのインストールをとなるのですが、Trac0.11をインストールしている途中で勝手にGenshiをインストールしてくれるので、いきなりTracのインストールを始めても問題ありません。
(Genshiを手動でインストールしたい場合は、末尾に記載の方法を参照してください)
それ以外の前提条件は、基本0.10の頃と変わりませんので、あわせて「バグトラッキングシステム「Trac」インストール 」の記事も参照してみてください。
Tracをバージョンアップする
1. Trac0.11のソースのダウンロードとサーバーへの展開
Tracのソースファイルですが、予め日本語化したものがインタアクト株式会社のサイト からダウンロードできますので、それを使います。
ダウンロードしたら、Tracをインストールしたいサーバーに持っていきます。
2. Trac0.11のインストール
適当なディレクトリにソースファイルを展開した後は、下記のコマンドでTracをインストールします。
# /usr/bin/python setup.py install
上記で、trac-adminなどのコマンドがバージョンアップされます。
実際に確認してみたければ
# trac-admin -v trac-admin 0.11.ja1
とすれば、バージョンが変わっていることが分かります。
3. TracのプロジェクトディレクトリとWikiのアップグレード
最後に、Tracのプロジェクトを展開しているディレクトリをアップグレードしてあげます。
これでバージョン間の差が解消されます。
# trac-admin /home/trac/project1 upgrade --no-backup
※ 私の環境では、TracのDBにPostgreSQLを使用しているため、最後に「--no-backup」オプションをつけています。
同様に、Wikiのアップグレードも行います。
# trac-admin /home/trac/project1 wiki upgrade
これで全ての作業が完了です。
ブラウザからTracへアクセスしてみましょう。
バージョンアップの方法は、Tracのソースファイル内の「UPGRADE」ファイルにも記載されていますので、あわせて確認するとよいでしょう。
Trac0.10の時は、この後にTracWebAdminのインストールへ と進むのですが、Trac0.11からはデフォルトで組み込まれているので、何もする必要がありません。
予断ですが、Trac0.10で組み込んだTiming and Estimationプラグイン に関しては、バージョンアップしてもそのまま使えました。
Tracバージョンアップ時のエラーの対処法
1. バージョンアップ後にブラウザでアクセスしてみると「Internal ServerError」が表示される
Apacheのエラーログを見てみると、下記のようなエラーが出力されていました。
PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/Genshi-0.5.1-py2.4-l inux-i686.egg/genshi/_speedups.py", line 7, in ? PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/Genshi-0.5.1-py2.4-l inux-i686.egg/genshi/_speedups.py", line 4, in __bootstrap__ PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/setuptools-0.6c7-py2 .4.egg/pkg_resources.py", line 840, in resource_filename\n return get_provider(package_or_requirement).get_resource_filename( PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/setuptools-0.6c7-py2 .4.egg/pkg_resources.py", line 1310, in get_resource_filename\n self._extract_resource(manager, self._eager_to_zip(name)) PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/setuptools-0.6c7-py2 .4.egg/pkg_resources.py", line 1331, in _extract_resource\n real_path = manager.get_cache_path( PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/setuptools-0.6c7-py2 .4.egg/pkg_resources.py", line 921, in get_cache_path\n self.extraction_error() PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/setuptools-0.6c7-py2 .4.egg/pkg_resources.py", line 887, in extraction_error\n raise err PythonHandler trac.web.modpython_frontend: ExtractionError: Can't extract file(s) to egg cache\n\nThe fo llowing error occurred while trying to extract file(s) to the Python egg\ncache:\n\n [Errno 13] Permission denied: '/root/.python-eggs'\n\nThe Python egg cache directory is currently set to:\n\n /root/.python-eggs\n\nPerhaps your account does not have write
前半の方に記述があるように、どうもGenshiが原因のようです。
で、調べてみたら下記のサイトに解決策が書いていました。
Genshi 0.5 再インストール + trac 0.11rc2 日本語版 @ takanory.net
とても助かりました・・・。
という事で、まずはインストールされているGenshiを削除
# rm /usr/lib/python2.4/site-packages/Genshi-0.5.1-py2.4-linux-i686.egg
次に、書かれているように圧縮しないでGenshiをインストール
# easy_install --always-unzip Genshi==0.5
もし、社内のLAN環境からアクセスする場合などは、環境ファイル(bashの場合、.bash_profileなど)に下記を書いておくと幸せになるかもしれません。
export http_proxy=http://プロキシサーバーのアドレス:ポート/
あとは、Apacheを再起動してみてアクセスしてみたら、問題なく表示されるようになりました。