Tracの使い方 - Trac0.10からTrac0.11へのバージョンアップ - | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

前回 予告していたように、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を再起動してみてアクセスしてみたら、問題なく表示されるようになりました。