MacPortsでTrac 1.0にバージョンアップ
Snow LeopardのTracをMacPortsを使ってバージョンアップしてみた。
環境
- Mac mini 1,1 (Core Duo)
- Snow Leopard 10.6.8
- Xcode 4.2
- MacPorts 2.1.2
バージョンアップ
とりあえず、MacPortsを2.1.2にバージョンアップして(sudo port selfupdateではうまくいかなかったので、インストーラから入れ直したけど)パッケージを更新。
sudo port upgrade outdated
インストールされたパッケージを見てみる。
apache2 @2.2.22_2+preforkmpm subversion-python27bindings @1.7.7_0 trac @1.0_0+python27+subversion
Tracにアクセスしてみると...エラーが出て動かなくなってる。
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch\n default=default_handler, arg=req, silent=hlist.silent) [error] File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mod_python/importer.py", line 1202, in _process_target\n module = import_module(module_name, path=path) [error] File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mod_python/importer.py", line 304, in import_module\n return __import__(module_name, {}, {}, ['*']) [error] ImportError: No module named trac.web.modpython_frontend
mod_pythonで問題がありそうなので、本家サイトの情報を確認してみると、mod_pythonはメンテナンスされていないとのこと。仕方ないので、FastCGIで動かすことにする。(後で考えるとPYTHONPATHの問題だったと思う)
FastCGIで動かす
mod_fastcgiをインストール。
sudo port install mod_fastcgi
TracFastCgi – MIST Projectの情報を見て設定。
途中、次のようなエラーが出たので、PYTHONPATHを設定する。
Oops… Trac detected an internal error: No module named trac.web Traceback (most recent call last): File "/opt/local/share/trac/contrib/cgi-bin/trac.fcgi", line 19, in <module> from trac.web import fcgi_frontend ImportError: No module named trac.web
これでうまくいったかと思ったら、リポジトリブラウザが表示されない。
エラーの内容をみると、Pythonのバージョンが合っていないようなので、FastCGIでPython 2.7を使うように設定。
import_svn from svn import fs, repos, core, delta File "/opt/local/lib/svn-python2.7/svn/fs.py", line 26, in <module> from libsvn.fs import * File "/opt/local/lib/svn-python2.7/libsvn/fs.py", line 26, in <module> File "/opt/local/lib/svn-python2.7/libsvn/fs.py", line 22, in swig_import_helper ImportError: dlopen(/opt/local/lib/svn-python2.7/libsvn/_fs.so, 2): Symbol _import_svn() File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tracopt/versioncontrol/svn/svn_fs.py", line 72, in _import_svn from svn import fs, repos, core, delta File "/opt/local/lib/svn-python2.7/svn/fs.py", line 26, in <module> from libsvn.fs import * File "/opt/local/lib/svn-python2.7/libsvn/fs.py", line 26, in <module> _fs = swig_import_helper() File "/opt/local/lib/svn-python2.7/libsvn/fs.py", line 22, in swig_import_helper _mod = imp.load_module('_fs', fp, pathname, description) ImportError: dlopen(/opt/local/lib/svn-python2.7/libsvn/_fs.so, 2): Symbol not found: _PyCapsule_Import Referenced from: /opt/local/lib/libsvn_swig_py27-1.0.dylib Expected in: flat namespace in /opt/local/lib/libsvn_swig_py27-1.0.dylib
設定内容
httpd.conf の設定
<IfModule mod_fastcgi.c> AddHandler fastcgi-script .fcgi </IfModule> LoadModule fastcgi_module modules/mod_fastcgi.so ScriptAlias /trac /opt/local/share/trac/contrib/cgi-bin/trac.fcgi SetEnv TRAC_ENV_PARENT_DIR /Trac SetEnv PYTHONPATH /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages <Directory "/opt/local/share/trac/contrib/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
#!/opt/local/bin/python2.7 # (以下省略)
Trac入門 ――ソフトウェア開発・プロジェクト管理活用ガイド
- 作者: 菅野裕,今田忠博,近藤正裕,杉本琢磨
- 出版社/メーカー: 技術評論社
- 発売日: 2008/09/18
- メディア: 大型本
- 購入: 23人 クリック: 233回
- この商品を含むブログ (88件) を見る