さくらインターネットにTracを構築する(Trac0.11b1, Trac0.11rc1)
さくらインターネットにTrac0.11-beta1をインストールします。このサイトでは0.10がすでに動いていますので、これを壊さないようにやってみます。
追記(2008/5/1):Trac0.11rc1のインストール方法は、これを参照。
0. まず注意。
使いたいプラグインがTrac0.11-beta1に対応しているか確認してください。Trac0.11はいまだ開発中のため、内部の仕様が変化しています。0.11に対応していると書いてあるプラグインでも、Trac0.11-beta1で動くとは限りません。ローカルで環境を作って、実際に動かしてみるのをお勧めします。
以降、Trac0.11-beta1をTrac0.11と記載します。
1.環境変数とか
~/.cshrcに以下を記載します。以降、$TRAC011HOME(=~/trac011)をインストール先として扱います。
なお、以下の変数として既に別の値を設定している場合は、自分の環境に合わせて適切に設定してください。Tracの過去のバージョンを入れている場合は、ぶつからないように前のバージョン用の値は削ったほうがよいでしょう。
setenv TRAC011HOME $HOME/trac011 setenv PYTHONPATH $TRAC011HOME/py-lib:$TRAC011HOME/lib/svn-python:$TRAC011HOME/lib/python2.4/site-packages setenv LD_LIBRARY_PATH $TRAC011HOME/lib:/usr/local/lib set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin $TRAC011HOME/bin)
以下の環境変数をセットしています。
TRAC011HOME | $HOME/trac011 | |
PYTHONPATH | $TRAC011HOME/py-lib $TRAC011HOME/lib/svn-python $TRAC011HOME/lib/python2.4/site-packages | |
LD_LIBRARY_PATH | $TRAC011HOME/lib /usr/local/lib | |
PATH(追加) | $TRAC011HOME/bin |
環境変数を反映させるために、 一度シェルを終了してログインしなおしてください。 envコマンドを打って、正しく環境変数が反映されていることを確認してください。
必要なフォルダを作ります。
cd ~ mkdir $TRAC011HOME mkdir $TRAC011HOME/src mkdir $TRAC011HOME/py-lib mkdir $TRAC011HOME/bin
2.Subversion関係
ダウンロード。depsは、subversionが依存するパッケージらしい。zip版にはconfigureが含まれないので注意。あと、 http://trac.edgewall.org/wiki/TracSubversion によると、swigはsubversionにバンドルされているらしい。まとめてインストールする。
configureするときに以下にあるようにオプション(--with-ssl -with-zlib --enable-shared --enable-static)を指定しないと、 あとでPythonから使うときにエラーが起きるので注意(参考:やっとむでぽん)
cd $TRAC011HOME/src wget http://subversion.tigris.org/downloads/subversion-1.4.6.tar.gz wget http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.gz gunzip subversion-1.4.6.tar.gz tar xvf subversion-1.4.6.tar gunzip subversion-deps-1.4.6.tar.gz tar xvf subversion-deps-1.4.6.tar cd subversion-1.4.6 ./configure --with-ssl -with-zlib --enable-shared --enable-static --prefix=$TRAC011HOME make clean make clean-swig-py make make install make swig-py make install-swig-py
swigはインストールフォルダ($TRAC011HOME)配下のlib/svn-python-svnにインストールされる。これはPYTHONPATHに加えること。(今回の例ではすでに.cshrcに記載してある)
テスト
%cd %python Python 2.4.3 (#2, Nov 7 2006, 13:07:47) [GCC 3.4.4 [FreeBSD] 20050518] on freebsd6 Type "help", "copyright", "credits" or "license" for more information. >>> from svn import fs, repos, core, delta >>>
3. Sqlite3とpysqlite
2007/1/3現在、さくらにはsqlite3がすでにインストールされてるみたい。(バージョンは3.3.17)。なので、Sqlite3はインストールせずにpysqliteのみをインストールします。
cd $TRAC011HOME/src wget http://initd.org/pub/software/pysqlite/releases/2.4/2.4.0/pysqlite-2.4.0.tar.gz gunzip pysqlite-2.4.0.tar.gz tar xvf pysqlite-2.4.0.tar cd pysqlite-2.4.0
このままビルドするとエラーになってしまいます。
pysqlite-2.4.0/setup.cfgを以下のように書き換えます。
[build_ext] define= include_dirs=/usr/local/include library_dirs=/usr/local/lib libraries=sqlite3
その後、
python setup.py build python setup.py install --prefix=$TRAC011HOME
インストール中にpy25tests.pyでエラーが出ているけど、まあとりあえず気にせずに。
ちなみに、pysqliteは$TRAC011HOME/lib/python2.4/site-packages/pysqlite2 にインストールされます。
インストールが終わったらテスト。(以下はプロンプト付きで記載しています)
%cd %python Python 2.4.3 (#2, Nov 7 2006, 13:07:47) [GCC 3.4.4 [FreeBSD] 20050518] on freebsd6 Type "help", "copyright", "credits" or "license" for more information. >>> from pysqlite2 import test >>> test.test() (省略) OK >>>
4.EasyInstallの準備
EasyInstallを使えるようにします。
さくらインターネットでは、Admin権限はもらえませんので、自分のホームにインストールされるように設定を変更します。EasyInstallのサイトによると、いくつか方法があるようですが、今回は「 "Traditional" PYTHONPATH-based Installation 」で行きます。
以下の内容の~/ .pydistutils.cfg ファイルを作成します。
[install] install_lib = $TRAC011HOME/py-lib install_scripts = $TRAC011HOME/bin
念のため、ここで一度シェルを終了してログインしなおしてください。 $TRAC011HOME/py-libがPYTHONPATHに含まれていますか?envコマンドで確認しておいてください。
cd $TRAC011HOME/src wget http://peak.telecommunity.com/dist/ez_setup.py chmod 744 ez_setup.py python ez_setup.py
5. Tracとかのインストール
ここまで来たら、あとはeasy_installを使って必要なものをインストールします。
easy_install Pygments easy_install Genshi easy_install Trac
注意:現時点では、以下のバージョンがインストールされました。時期によって変わるでしょう。
Pygments | Pygments 0.9 |
Genshi | Genshi 0.4.4 |
Trac | Trac 0.11b1 |
6. 動くまでの設定
(1) subversionのリポジトリを作成
mkdir -p $TRAC011HOME/var/svn svnadmin create --fs-type=fsfs $TRAC011HOME/var/svn/repo
リポジトリ内にフォルダを作る。
mkdir $TRAC011HOME/tmp cd $TRAC011HOME/tmp mkdir proj cd proj mkdir trunk branches tags cd .. svn import proj file:///$TRAC011HOME/var/svn/repo -m "Import First" rm -r proj
これで、リポジトリへのフォルダの作成はできた。
(2) trac の環境を設定
mkdir -p $TRAC011HOME/var/trac trac-admin $TRAC011HOME/var/trac/repo initenv
リポジトリフォルダは~とか使わずに/home/XXXという形で全部入力すること。
(3) trac.cgiの作成
trac.cgiが見つからないので、Edgewallのサイトからダウンロードします。
[None trac-0.11b1用のもの] をダウンロードして、trac011_.cgiというファイル名で$HOME/www/にFTPで置きます。
おいたら、パーミッションを変更します。
cd $HOME/www chmod 755 trac011_.cgi
trac011.cgiを作ります。XXXはユーザフォルダに置き換えること。
#!/bin/sh TRAC011HOME=/home/XXX/trac011;export TRAC011 LD_LIBRARY_PATH=$TRAC011HOME/lib:/usr/local/lib;export LD_LIBRARY_PATH TRAC_ENV=$TRAC011HOME/var/trac/repo;export TRAC_ENV PYTHONPATH=$TRAC011HOME/py-lib:$TRAC011HOME/lib/python2.4/site-packages:$TRAC011HOME/lib/svn-python;export PYTHONPATH /usr/local/bin/python /home/XXX/www/trac011_.cgi
AccountManagerプラグイン
easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk
失敗した。
Trac0.11 ja1
%cd src %wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.ja1.zip --18:44:40-- http://www.i-act.co.jp/project/products/downloads/Trac-0.11.ja1.zip => `Trac-0.11.ja1.zip' Resolving www.i-act.co.jp... 221.186.147.250 Connecting to www.i-act.co.jp|221.186.147.250|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 955,241 (933K) [application/zip] 100%[==============================================>] 955,241 5.80M/s 18:44:41 (5.80 MB/s) - `Trac-0.11.ja1.zip' saved [955241/955241] %unzip Trac-0.11.ja1.zip Archive: Trac-0.11.ja1.zip creating: Trac-0.11.ja1/ (省略) inflating: Trac-0.11.ja1/wiki-macros/README %easy_install Trac-0.11.ja1 Processing Trac-0.11.ja1 Running setup.py -q bdist_egg --dist-dir /home/hoge/trac011/src/Trac-0.11.ja1/egg-dist-tmp-HzS9Z3 Removing Trac 0.11rc1 from easy-install.pth file Adding Trac 0.11.ja1 to easy-install.pth file Installing trac-admin script to /home/hoge/trac011/bin Installing tracd script to /home/hoge/trac011/bin Installed /home/hoge/trac011/py-lib/Trac-0.11.ja1-py2.4.egg Processing dependencies for Trac==0.11.ja1 Searching for Genshi>=0.5 Reading http://pypi.python.org/simple/Genshi/ Reading http://genshi.edgewall.org/ Reading http://genshi.edgewall.org/wiki/Download Best match: Genshi 0.5.1 Downloading http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.zip Processing Genshi-0.5.1.zip Running Genshi-0.5.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-3VKOJU/Genshi-0.5.1/egg-dist-tmp-llinYD warning: no previously-included files found matching 'doc/2000ft.graffle' warning: no previously-included files matching '*' found under directory 'doc/logo.lineform' Removing Genshi 0.4.4 from easy-install.pth file Adding Genshi 0.5.1 to easy-install.pth file Installed /home/hoge/trac011/py-lib/Genshi-0.5.1-py2.4-freebsd-6.1-RELEASE-p23-i386.egg Finished processing dependencies for Trac==0.11.ja1 %