Warning: リポジトリと同期できません (サポートされていないバージョンコントロールシステム "svn です。 Python のライブラリに "svn" が正しくインストールされているか確認してください。)

さくらインターネットに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

注意:現時点では、以下のバージョンがインストールされました。時期によって変わるでしょう。

PygmentsPygments 0.9
GenshiGenshi 0.4.4
TracTrac 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
%