2009/08/09

Trac と Mercurial Plugin を coreserverに導入する

いろいろと忘れがちな今日この頃。
お客様とのやりとりに、issue Management のtrac導入を検討中。
coreserverにインストールをしたのでメモを残しておくことに。

前提: pythonはインストール済み
     レポジトリ管理はmercurialを利用。こちらインストール済み
      http://gattigrandi.blogspot.com/2009/07/mercurialcoreserver.html

さてさて、でわでわここから

★setuptoolの為に以下のディレクトリを準備
me:~> cd $HOME/local/lib
me:~/local/lib> ln -s python python2.4
me:~/local/lib> cd python2.4
me:~/local/lib> mkdir site-packages
環境変数を設定
.bashrcに以下を記載
------------
export PYTHONPATH=$HOME/local/lib/python:$HOME/local/lib/python/site-packages
export PATH=$PATH:$HOME/local/bin
export LD_LIBRALY=$HOME/local/lib
-----------


★setuptoolのインストール
me:~> wget http://peak.telecommunity.com/dist/ez_setup.py
me:~> python ez_setup.py --install-dir=$HOME/local/lib/python/

★tracのインストール
me:~> wget http://ftp.edgewall.com/pub/trac/Trac-0.11.5.tar.gz
me:~> tar -xvzf Trac-0.11.5.tar.gz
me:~> cd Tr*
me:~/Trac-0.11.5> python ./setup.py install --prefix=$HOME/local

★Mercurial Pluginのインストール(参考 http://trac.edgewall.org/wiki/TracMercurial)
me:~> svn co ttp://svn.edgewall.com/repos/trac/sandbox/mercurial-plugin-0.11
me:~/mercurial-plugin-0.11> python setup.py bdist_egg
me:~/mercurial-plugin-0.11> python setup.py install --prefix=$HOME/local/

★ pysqliteのインストール
me:~> wget http://initd.org/pub/software/pysqlite/releases/2.4/2.4.1/pysqlite-2.4.1.tar.gz
me:~> tar -xvzf pysqlite-2.4.1.tar.gz
me:~> cd pys*
me:~/pysqlite-2.4.1> python ./setup.py install --prefix=$HOME/local

★利用するTracディレクトリの作成と初期化
me:~> cd ~
me:~> mkdir trac    <-- このディレクトリの下にtrac用のプロジェクトディレクトリ作成

 4つのことを聞かれる
  プロジェクト名、DB(インストールしたSQLiteを利用)
  レポジトリ(mercurialは"hg"と指定)、レポジトリのディレクトリ
 以下で実行
me:~> trac-admin $HOME/trac/sample initenv
++++++表示はこんな感じ
Creating a new Trac environment at /virtual/xxx/trac/sample

Trac will first ask a few questions about your environment
in order to initialize and prepare the project database.

Please enter the name of your project.
This name will be used in page titles and descriptions.

Project Name [My Project]> sample project

Please specify the connection string for the database to use.
By default, a local SQLite database is created in the environment
directory. It is also possible to use an already existing
PostgreSQL database (check the Trac documentation for the exact
connection string syntax).

Database connection string [sqlite:db/trac.db]>

Please specify the type of version control system,
By default, it will be svn.

If you don't want to use Trac with version control integration,
choose the default here and don't specify a repository directory.
in the next question.

Repository type [svn]> hg

Please specify the absolute path to the version control
repository, or leave it blank to use Trac without a repository.
You can also set the repository location later.

Path to repository [/path/to/repos]> /hg/repos/test

・・・設定開始
+++++++

★設定のの追加
$ cd ~/trac/sample/conf
trac.ini
==================以下を最後に追加
[components]
tracext.hg.* = enabled

[hg]
# -- Show revision number in addition to the changeset hash
show_rev = yes

# -- Changeset hash format
node_format = short
# hex: Show the full SHA1 hash
# short: Show a shortened hash for the changesets
======================

★CGIのインストール
me:~> mkdir ~/local/share/trac
me:~> cd ~/tools/Trac...
me:~/tools/Trac...> cp -r cgi-bin ~/local/share/trac
me:~> cd public_html/xxx.com/
me:~/public_html/xxx.com/> cat <<EOF > trac.cgi
#!/bin/sh
export HOME=/virtual/xxx
export TRAC_ENV=$HOME/trac/sample
export PYTHONPATH=$HOME/local/lib/python:$HOME/local/lib/python2.4/site-packages
/usr/local/bin/python $HOME/local/share/trac/cgi-bin/trac.cgi
EOF
===================
実行できるようにして
me:~/public_html/xxx.com/> chmod 755 trac.cgi
.htaccessを設定
me:~/public_html/xxx.com/> cat <<EOF > .htaccess
#AddHandler cgi-script-debug .cgi
RewriteEngine on
RewriteRule ^trac$ trac.cgi [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^trac/(.*)$ /trac.cgi/$1 [L]
EOF
==============================

★管理者権限の付与
me:~> trac-admin $HOME/trac/test permission add xxx TRAC_ADMIN

★trac.iniの設定変更:メール環境とレポジトリエンコーディング
=メール送信=====================
smtp_enabled = true
use_tls = true
mime_encoding = base64
smtp_server = smtp.xxx.com
smtp_port = 587
smtp_user = xxxmail
smtp_password = password
always_notify_owner = true
always_notify_reporter = true
smtp_from =xxxmail@xxx.com

・・・

[trac]
default_charset = utf8
======================

※じつはこれだけでは、mercurialのレポジトリ内の日本語が化けます。

cd `/local/share/trac/cgi-binにコピーした trac.cgi に以下を追加

--------------------

try:
from trac.web import cgi_frontend
cgi_frontend.run()
except SystemExit:

  ↓ 二行追加

try:
import os
os.environ['HGENCODING'] = "UTF-8"
from trac.web import cgi_frontend
cgi_frontend.run()
except SystemExit:

--------------------

参考 http://sakito.jp/python/trac.html

★アクセス制御
ベーシック認証をかけると、そのユーザがtracで使えます。
>>設定方法省略

以上、完了!!



以下は、覚え書き

最初、以下のエラーが表示されていた。
Can't synchronize with the repository (Unsupported version control
system "hg": Can't find an appropriate component, maybe the
corresponding plugin was not enabled? ). Look in the Trac log for more
information.

これは単に、mercurialの0.12バージョンを使っていたかららしい。
0.11を利用することでエラーが消えてレポジトリも読めるようになった。

当初のインストール
me:~> svn co http://svn.edgewall.com/repos/trac/sandbox/mercurial-plugin-0.12
me:~/mercurial-plugin-0.12> python setup.py bdist_egg
--> これにてエラーが出る
No local packages or download links found for Trac>=0.12dev
error: Could not find suitable distribution for
Requirement.parse('Trac>=0.12dev')

どうも、trac0.11はmercurial0.11を使わねばならぬらしい。
ということで、plug-inは0.11利用と言うことで上記を記載しています。


それから、当初最新版英語しかないと思ったけど、日本語もあったのでアップデート
unzip Trac-0.11.5.ja1.zip
cd Trac-0.11.5.ja1
英語版消さずに日本語版をインストール
~/tools/Trac-0.11.5.ja1> python ./setup.py install --prefix=$HOME/local

その後の確認では、やったぁ、メニューが日本語♪
$PYTHONLIB/site-packages/easy-install.pth の中身は入れ替わっているみたい。
ファイルを削除
~/local/lib/python2.4/site-packages> rm -r Trac-0.11.5-py2.4.egg
~/local/bin のtracd ファイルは入れ替わっているみたいなのでそのまま

Pythonモジュールの削除について以下を参考に
http://d.hatena.ne.jp/kokiya/20080920/1221931695

同様に最初に入れてしまった、mercurialのモジュールも削除

あとは、実際の運用サイトの準備をしてみるだけかな。

参考サイト
http://tach.arege.net/trac/wiki/TracInstall
http://d.hatena.ne.jp/sixpetals/20080218/p2
http://d.hatena.ne.jp/a2c/20080303

0 件のコメント: