ubuntu/subversion

Subversionの設定

インストール

# apt-get install subversion libapache2-svn

ユーザを作成

ユーザを作成

# useradd -d /home/svn -s /bin/bash svn

ホームディレクトリを作成

# mkdir /home/svn
# chown -R svn:svn /home/svn

レポジトリを作成

svnユーザに変更

# su - svn

レポジトリを作成

$ svnadmin create /home/svn/repos

オーナとパーミッションを変更

$ chown -R svn: www-data repos
$ chown -R g+w repos

svnユーザをwww-dataグループに追加(スーパーユーザーに戻る)

# vigr
以下の行にsvnを追加
www-data:x:48:www-data,svn

httpアクセス設定

パスワードファイルを作成

#  htpasswd -c /usr/local/share/svn/.htpasswd username

/etc/apache2/mods-enabled/dav_svn.conf を編集

<Location /svn_xxx>  
    DAV svn
    SVNPath /home/svn/repos
    AuthzSVNAccessFile /usr/local/share/svn/dav_svn.authz
    AuthUserFile /usr/local/share/svn/.htpasswd
    AuthGroupFile /dev/null
    AuthName "Subversion Repository"
    AuthType Basic
    Require valid-user
    Satisfy All
    allow from 192.168.1.0/24
    deny from all
</Location>

dav_svn.authzの作成

[groups] 
group1 = user1,user2

[/]
* =
@group1 = rw

Apacheを再起動して,http://127.0.0.1/svn_xxx にアクセスをしてみる.
認証が求められて,正しいユーザ名/パスワードを入力するとディレクトリが表示される.

tracの設定

インストール

apt-get install trac trac-ja-resource libapache2-mod-python

設定

保存先ディレクトリの作成

$ mkdir /home/svn/trac

初期設定

$ trac-admin /home/svn/trac/projname initenv
途中でtemplateの質問には"/usr/share/trac-ja-resource/templates"を指定

日本語のwikiをロードする

$ trac-admin /home/svn/trac/projname wiki load /usr/share/trac-ja-resource/wiki-default

オーナとパーミッションを変更

$ chown -R svn: www-data trac
$ chown -R g+w trac

Apacheの設定変更(/etc/apache2/conf.d/tracを作成)

<Location /trac>
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /var/trac
  PythonOption TracUriRoot /trac
  SetEnv PYTHON_EGG_CACHE /usr/local/share/svn/
</Location>
<LocationMatch "/trac/[^/]+/login">
  AuthType Basic
  AuthName "trac"
  AuthUserFile /usr/local/share/svn/.htpasswd
  Require valid-user
  Satisfy All
  allow from 192.168.1.0/24
  deny from all
</LocationMatch>

AuthUserFile?をSVNで使ったものと同じにする.
Apacheを再起動してhttp://127.0.0.1/trac にアクセスしてみる.
amd64の環境なのでApache起動時にエラーがでる.

  • /var/log/apache2/error.logの該当箇所
    TracError: ClearSilver not installed (/usr/lib/python2.5/site-packages/neo_cgi.so: undefined symbol: Py_InitModule4)

    clearsilverをインストールする

    # apt-get build-dep python-clearsilver
    # apt-get install python-dev
    # wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz
    # tar zxvf clearsilver-0.10.5.tar.gz
    # cd clearsilver-0.10.5
    # ./configure  --with-python=/usr/bin/python2.5
    # make
    # make install

ソースブラウザの文字コードを自動判定にする

  • 参考
  • chardetモジュールのインストール
    # apt-get install python-chardet
  • パッチファイルの編集
    ヤマロぶろぐにあるパッチファイルの行数をmiau's blog?を参考に編集する.
  • patchを当てる
    api.pyが複数あったので全てにpatchを当てていく.

    # cd  /var/lib/python-support/python2.4/
    # patch -p1 < /tmp/trac_charset.patch
    # cd /var/lib/python-support/python2.5/
    # patch -p1 < /tmp/trac_charset.patch
    # cd /usr/share/python-support/trac/
    # patch -p1 < /tmp/trac_charset.patch
    # cd /usr/share/trac-ja-resource/python/
    # patch -p1 < /tmp/trac_charset.patch

プラグインのインストール

webadminプラグインのインストール

  • EasyInstall?をインストール
    setuptoolsからez_setup.pyをダウンロード

    # python ez_setup.py
  • webadminをインストール
    チェックアウト

    # svn co http://svn.edgewall.com/repos/trac/sandbox/webadmin/

    ビルド&インストール

    # cd webadmin
    # python setup.py install

    trac.iniの編集(/home/svn/trac/projname/conf/trac.ini).以下を最終行に追加

    [components]
    webadmin.* = enabled

    利用するユーザにTRAC_ADMIN権限を付与

    # trac-admin /path/to/trac/ permission add username TRAC_ADMIN

    Apacheを再起動してログインをすると"admin"タグが増えている.

AuthzWebadminPlugin?のインストール

  • インストール
    # svn co http://trac-hacks.org/svn/authzwebadminplugin
    # cd authzwebadminplugin/0.9/
    # python setup.py install
  • 設定
    trac.iniに以下を追加

    [trac]
    authz_file = /usr/local/share/svn/subversion.authz

    TracのWebにアクセスして,adminのpluginからenableに設定する.

Account Manager Pluginのインストール

  • インストール
    Trac HacksのFor Trac 0.10:に従う.

    # easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.10

    Tracのadminタブのplug-inにAccountManager? 0.1.3dev-r3515が追加されている.必要なモジュールのenableにチェックをいれる.

参考