うまいぼうぶろぐ

linuxとhttpdとperlのメモ

tracのinstall まとめ

./configure --prefix=/usr/local/python-2.6.2
make 
make install
ln -s /usr/local/python-2.6.2 /usr/local/python

2.4以上?2.6出てるからそれでもいいか。

モジュールとか

subversion

install時にpythonのpathを指定するぐらいで後は普通に。
subversion-deps取ってきたら依存関係解消するの楽チンなので。
あと、installしたpython 2.6を指定したかったのでconfigureで環境変数指定。

cd /usr/local/src/
wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
tar xzf subversion-1.6.6.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
tar xzf subversion-deps-1.6.6.tar.gz
### ./subversion-1.6.6 以下に依存するものが入る
cd subversion-1.6.6
./configure 
PYTHON=/usr/local/python-2.6.2/bin/python \
--prefix=/usr/local/subversion-1.6.6 \
--with-swig=/usr/bin/swig \
--with-apxs=/usr/local/apache2/bin/apxs \
--without-berkeley-db 

make
make install
ln -s /usr/local/subversion-1.6.6 /usr/local/subversion
## 上のsubversionのソースディレクトリのまま
make swig-py
make install-swig-py
  • pythonライブラリ用のpathを通す
echo /usr/local/subversion/lib/svn-python > \ 
 /usr/local/python/lib/python2.6/site-packages/subversion.pth

mod_python

CentOS 5.4だとflexのバージョン低すぎたのでソースで入れる。

./configure && make && make install

ソース修正
makeでこけるからソース修正する必要あり
src/conobject.cの142行目付近

- !(b == APR_BRIGADE_SENTINEL(b) ||
+ !(b == APR_BRIGADE_SENTINEL(bb) ||
./configure \
  --with-apxs=/usr/local/apache-2.2.14/bin/apxs \
  --with-python=/usr/local/python-2.6.2/bin/python \
  --with-flex=/usr/local/bin/flex
make && make install
LoadModule python_module   modules/mod_python.so

Trac

日本語版で。

wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.5.ja1.zip
unzip Trac-0.11.5.ja1.zip
cd Trac-0.11.5.ja1
/usr/local/bin/python setup.py build
/usr/local/bin/python setup.py install
## trac管理用のコマンドはpythonのディレクトリにinstallされるのでsymlink
ln -s /usr/local/python/bin/trac* /usr/local/bin/
## tracのファイル一式がpythonライブラリの中にinstallされて探しにくいのでsymlink
ln -s /usr/local/lib/python2.6/site-packages/Trac-0.11.5.ja1-py2.6.egg/trac/ /usr/local/trac

Tracのplugin install

webからユーザ追加できるようにする。

  • WebAdmin

### trac 0.11からcoreに統合されたので不要

$ svn export http://svn.edgewall.org/repos/trac/plugins/0.10/webadmin
$ cd webadmin
$ /usr/local/bin/python setup.py build
$	/usr/local/bin/python setup.py install
  • AccountManagerPlugin

webからbasic/digest認証ファイルを編集するplugin?
でもユーザ追加しようとしたら、internal server errorで失敗した。
ぐぐったら不具合があるのでソース編集する必要があるらしいのでeasy_installじゃなくて、リポジトリから取ってくる。

TracError instance has no attribute 'acctmgr' on new user creation
$ svn co http://trac-hacks.org/svn/accountmanagerplugin/0.11 accountmanagerplugin	
$ cd accountmanagerplugin/	
$ vi acct_mgr/admin.py	
$ vi acct_mgr/web_ui.py	
## 以下のdiffを参考にそれぞれ1箇所ずつ修正	
$ 
$ diff -u admin.py.org admin.py
--- admin.py.org      2009-12-28 13:43:07.000000000 +0900
+++ admin.py          2009-12-28 17:21:00.000000000 +0900
@@ -185,7 +185,7 @@
                         _create_user(req, self.env, check_permissions=False)
                     except TracError, e:
                         data['registration_error'] = e.message
-                        data['acctmgr'] = e.acctmgr
+                        data['acctmgr'] = getattr(e, 'acctmgr', '')
                 else:
                     data['registration_error'] = 'The password store does ' \
                                                  'not support creating users'
$ diff -u web_ui.py.org web_ui.py
--- web_ui.py.org   2009-12-28 13:43:07.000000000 +0900
+++ web_ui.py       2009-12-28 17:21:09.000000000 +0900
@@ -70,7 +70,7 @@
     try:
         mgr.set_password(user, password)
     except TracError, e:
-        e.acctmge = acctmgr
+        e.acctmgr = acctmgr
         raise e

     db = env.get_db_cnx()
$ /usr/local/bin/python setup.py build
$ /usr/local/bin/python setup.py install	
  • AuthzWebadminPlugin

webからsubversionの認証ファイル編集するplugin

$ svn co http://trac-hacks.org/svn/authzwebadminplugin
$ cd authzwebadminplugin/0.9
$ /usr/local/bin/python setup.py build
$ /usr/local/bin/python setup.py install

installしてもplugin一覧に反映されないぞ???
もしかしてtrac0.9までしか対応してないのかな。

こっちでやってみる。SvnAuthzAdminPlugin
=> できた

webのメニューから追加できる。
ただし自由に編集はできないぽい?。
グループメンバの追加とか。
adminでログインしてても自分以外のユーザをグループに追加できなかっり。。
# ちゃんとは確認してない

svn co http://trac-hacks.org/svn/svnauthzadminplugin/
cd svnauthzadminplugin/0.11
/usr/local/bin/python setup.py build
/usr/local/bin/python setup.py install
[components]
svnauthz.* = enabled 

[svnauthzadmin]
show_all_repos = true

こんなんもあった。
こちらはauthzファイルを普通に編集する感じ。
なので自由に編集可能。
当然、メニューによる案内がないので全部自分で編集する必要あり。
ちなみに、↑のpluginとは共存できないもよう。

easy_install https://svn.geophysik.uni-muenchen.de/svn/tracmods/tracsvnauthzplugin/0.11
# or
svn co https://svn.geophysik.uni-muenchen.de/svn/tracmods/tracsvnauthzplugin/0.11
cd 0.11 
/usr/local/bin/python setup.py build
/usr/local/bin/python setup.py install
[components]
svnauthz.svnauthz.svnauthzplugin = enabled

[trac]
authz_file = /opt/svn/.authz