Skip to content. | Skip to navigation

okalabo 神奈川県相模原市在住のフリープログラマです

Sections
Personal tools
You are here: Home 技術メモフォルダ trac導入
Document Actions

trac導入

by Tetsuya Okada last modified 2009-01-27 16:09

Vine Linuxへのtracインストール手順です。

参考にしたサイト

http://takanory.net/server/trac/

Subversionの導入

trac と連携して動作させるため Subversion をインストールします。

Vine のパッケージとして提供されているので、それを活用することにします。

パッケージのインストール

Synaptic から以下のパッケージをインストールします。

subversion			-- Subversion本体
subversion-devel -- 開発用ライブラリ等のツール
subversion-mod_dav_svn -- Apacheとの連携
subversion-python -- pythonからのアクセスに必要
swig -- pythonからのアクセスに必要

Apache 連携

Apache と連携させるため、設定ファイルを作成します。

Vine における Apache の設定ファイルは、以下の構成になっているようです。

/etc/apache2/conf/httpd.conf	-- 基本の設定ファイル
/etc/apache2/conf.d/*.conf -- 追加設定

Subversion の導入により、/etc/apache2/conf.d の下に subversion.conf というファイルが作成されているので、以下の記述を追加します。

<Location /svn>
DAV svn
SVNParentPath /home/svnrepos
SVNAutoversioning on

# Limit write permission to list of valid users.
<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require SSL connection for password protection.
# SSLRequireSSL

AuthType Basic
AuthName "Subversion Auth"
AuthUserFile /home/.htaccess
Require valid-user
</LimitExcept>
</Location>

PostgreSQL の導入

PostgreSQL もパッケージから導入します。

パッケージのインストール

Synaptic を使い以下のパッケージを追加します。

postgresql
postgresql-contrib
perl-DBD-Pg
postgresql-docs
postgresql-libs
postgresql-pl
postgresql-server

PostgreSQLの動作環境

インストールしたままでは導入マシン以外からアクセスできないので、以下の設定を変更しました。

  • ファイアウォールにより余計なポートはrejectされているので、port=5432を空けます。
  • PostgreSQLへのリモートからのアクセスを許可する
    /var/lib/pgsql/data の下にある設定ファイルを修正し、LAN 内他のマシンからのアクセスを許可します。
pg_hba.confに以下の行を追加
host all all 192.168.0.0/24 trust

postgresql.confの以下の行を有効化
listen_addresses='*'
port=5432

個別インストール

その他、以下のソフトウェアを個別にダウンロードし、インストールします。

ClearSilver

trac の画面をレンダリングするテンプレートエンジンです。0.9.3以上ですがここでは0.10.4をインストールしました。

入手先:
http://www.clearsilver.net/
# tar xvfz clearsilver-0.10.4.tar.gz
# cd clearsilver-0.10.4
# ./configure --with-python=/usr/bin/python --disable-ruby
# make install

mod_python

apache で python プログラムを実行させるためのモジュールです。Apache が 2.2系なので 3.2.10以上をインストールする必要があります。

入手先:
http://www.modpython.org/
# tar xvfz mod_python-3.2.10.tgz
# cd mod_python-3.2.10
# ./configure
# make
# make install

docutils

trac の Wiki 上で reStructuredText を使用する場合はインストールします。

入手先:
http://docutils.sourceforge.net/
# tar xvfz docutils-0.4.tar.gz
# cd docutils-0.4
# python setup.py install

SilverCity

ソースコードリポジトリで、言語別のシンタックスハイライティングを行う場合はインストールします。0.9.6 は trac と相性が悪いようなので、0.9.5 をインストールします。

入手先:
http://silvercity.sourceforge.net/
# tar xvfz SilverCity-0.9.5.tar.gz
# cd SilverCity-0.9.5
# python setup.py install

psycopg2

trac からの PostgreSQL データベースアクセスに使用します。当初 Vine パッケージの psycopg をインストールしましたが、なぜか trac から認識できなかったため、新しい psycopg2 を代わりに個別インストールしました。

入手先:
http://initd.org/tracker/psycopg/

インストールをを実行する前に、setup.cfg の include_dirs を PostgreSQL の導入先にあわせ修正します。今回は /usr/include/pgsql:/usr/include/pgsql/server に修正しました。

# tar xvfz psycopg2-2.0.5.1.tar.gz
# cd psycopg2-2.0.5.1
# python setup.py install

tracの導入

trac に必要なソフトウェアが全て導入されたので、trac 本体を導入します。trac は、日本語化されたバージョンが配布されており、今回は0.10-ja-3をインストールします。

入手先:
http://www.i-act.co.jp/project/products/products.htm

# unzip -x trac-0.10-ja-3.zip
# cd trac-0.10-ja-3
# python setup.py install

プロジェクトの作成

trac が使用するプロジェクトの環境を作成します。

DBスキーマ作成

tracが使用するDBスキーマをあらかじめ作成しておきます。PostgreSQL の他の DB では構築したことはないのですが、おそらくプロジェクトごとにアクセスできるアカウントとオブジェクト作成領域が必要となるので、あらかじめ作成しておきます。

今回、trac_db というデータベースの中に、プロジェクトごとにスキーマを作成して環境を構築することにします。プロジェクト名は project1 とします。
(以下の例では権限とかあまり考えていません。ロールをうまく活用すればもっとすっきりするかもしれません)

-- アカウントをまとめるロール "trac_group" を作成する。
-- プロジェクトのアカウントにはこのロール "trac_group" を付与する。
CREATE ROLE trac_group
NOSUPERUSER NOINHERIT CREATEDB NOCREATEROLE;

-- プロジェクトのアカウントを作成する。
CREATE ROLE project1 LOGIN
ENCRYPTED PASSWORD '********'
NOSUPERUSER INHERIT CREATEDB NOCREATEROLE;
GRANT trac_group TO project1;

-- trac プロジェクトを格納するデータベースを作成する。
CREATE TABLESPACE trac_space
OWNER postgres
LOCATION '/home/postgres/trac_space';

CREATE DATABASE trac_db
WITH OWNER = trac_group
ENCODING = 'UTF8'
TABLESPACE = trac_space;
GRANT TEMPORARY ON DATABASE trac_db TO public;
GRANT ALL ON DATABASE trac_db TO trac_group;

-- プロジェクト用スキーマを作成する。
CREATE SCHEMA project1
AUTHORIZATION project1;
GRANT ALL ON SCHEMA project1 TO project1;
GRANT ALL ON SCHEMA project1 TO trac_group;

リポジトリ作成

trac と Subversion のリポジトリを作成します。trac の環境を /home/tracrepos 配下、Subversion の環境を /home/svnrepos 配下にプロジェクト名で作成することにします。

trac の初期化コマンド trac-admin を実行すると、いくつかプロンプトが現れるので環境に合わせ入力します。その後、初期化処理を行い Conguratulations! のメッセージが出れば完了です。

apache からアクセスするため、ディレクトリを作成した後にオーナー、グループを apache に変更します。

# svnadmin create /home/svnrepos/project1
# trac-admin /home/tracrepos/project1 initenv

Creating a new Trac environment at /home/tracrepos/project1

Project Name [My Project]> project1

Database connection string [sqlite:db/trac.db]> postgres://project1:project1@localhost/trac_db

Repository type [svn]>

Path to repository [/path/to/repos]> /home/svnrepos/project1

Templates directory [/usr/share/trac/templates]>

Creating and Initializing Project

Conguratulations!

# chown -R apache:apache /home/svnrepos/project1
# chown -R apache:apache /home/tracrepos/project1

トラブルシューティング

今回のインストール時に発生した問題について記します。

ClearSilverのコンパイルでエラー

以下のメッセージが表示された。

cannot find -lz

対策として、zlib-devel パッケージをインストールして解消したが、続いて、以下のメッセージ。

 open /usr/lib/python2.4/config/Makefile (No such file or directory)

こんどは、python-devel, python-egenix-mx-base を追加しました。

mod_python configureでエラー

以下のようなメッセージがでました。

checking for --with-apxs... no
checking for apxs in /usr/local/apache/sbin... no
checking for apxs in your PATH... checking for apxs... no
checking for apxs2 in your PATH... checking for apxs2... no
configure: WARNING: **** apxs was not found, DSO compilation will not be available.
configure: WARNING: **** You can use --with-apxs to specify where your apxs is.
configure: error: Neither static nor DSO option available, there is no point in continuing.
apache2-devel をインストールして解決しました。


Powered by Plone CMS, the Open Source Content Management System