1. インストール(debian)
- Debian 3.1
-
DAV経由で使用する場合は、以下のパッケージを導入する。
apt-get install subversion libapache2-svn
DAV経由で使用する場合は、以下のパッケージを導入する。
apt-get install subversion libapache2-svn
mkdir /home/svn mkdir /home/svn/test svnadmin create /home/svn/test
ローカル内なら、
svn co file:///home/svn/test/
ネットワークごしでは、
svn co svn://[アドレス] (*) Subserve使用の場合 svn co http://[アドレス] (*) Apache経由の場合
ほかのコマンド(updateなど)については、svn help で。
core dumpするときなどに。
svnadmin recover /home/svn/svn_test
subversionのパッケージに含まれる専用サーバ(subserve)の設定をする。
まず、リポジトリを作成。
mkdir /home/svn mkdir /home/svn/svn_test svnadmin create /home/svn/svn_test
svnserve.conf を設定する。
# /home/svn/svn_test/conf/svnserve.conf [一部] [general] anon-access = none auth-access = write password-db = /home/svn/svn_test/conf/svnusers
svnusersファイルを作成する。
# /home/svn/svn_test/conf/svnusers [users] test = hoge
平文パスワードだけど・・・・・・。(いいのだろうか?)
サーバプロセスを起動する。(使いたいユーザのままで。特権ポートを使わないのでrootになる必要はない)
svnserve -d --root=/home/svn/
設定をとくにしなければ、TCP:3690 が使われるだろうか。
リポジトリの操作の手順でリポジトリの作成をしたのち、httpd.confに以下の設定をする。
# Apache Config File (httpd.conf)
<Location /svn_test>
DAV svn
SVNPath /home/svn/svn_test
<LimitExcept OPTIONS>
AuthType Digest
AuthName "test"
Require valid-user
AuthDigestFile /home/.svnpass
AuthGroupFile /dev/null
</LimitExcept>
</Location>
あと、パーミッションの設定を忘れずに。使用するリポジトリのディレクトリに、Apacheのユーザによる読み書き権限が必要。
chown -R www-data:www-data /home/svn/svn_test
DAV経由の利用の項の設定では、レポジトリの数が増えてくると厄介。
そこで、SVNParentPathを使う方法がある。
# Apache Config File (httpd.conf)
<Location /svn>
DAV svn
SVNParentPath /home/svn
<LimitExcept OPTIONS>
AuthType Digest
AuthName "test"
Require valid-user
AuthDigestFile /home/.svnpass
AuthGroupFile /dev/null
</LimitExcept>
</Location>
以上の設定で、仮に/home/svn/testというレポジトリがある場合、http://[host]/svn/test/でアクセスすることができる。
ユーザごとのきめ細かいアクセス権限の設定を行うために、AuthzSVNAccessFileを使う。
# Apache Config File (httpd.conf)
<Location /svn>
DAV svn
SVNParentPath /home/svn
AuthType Digest
AuthName "test"
Require valid-user
AuthDigestFile /home/.svnpass
AuthGroupFile /dev/null
AuthzSVNAccessFile /home/svnaccess
</Location>
指定したファイルを以下のような形式で設定する。
# AuthzSVNAccessFile /home/svnaccess [groups] developer = hoge reader = foo, bar [test:/] * = @reader = r @developer = rw [sample:/] * = r @developer = rw
以上の設定の場合、.svnpassに記載のユーザに対して、
となる。