openSUSE 10.3でSubversonのインストール&設定を行います。 既にインストールされているApache・WebDAVと連携をしてみます。
openSUSEなんで、yastでいれます。 [yast] ⇒ [Software] ⇒ [Software Management] より、インストール。
subversion 1.4.4 subversion-server 1.4.4
[yast] ⇒ [System] ⇒ [/etc/sysconfig Editor] より、Apache2 を開く。
Network - WWW - Apache2
dav dav_lcok dav_fs dav_svn authz_svn
LoadModule dav_module /usr/lib/apache2-prefork/mod_dav.so LoadModule dav_lock_module /usr/lib/apache2-prefork/mod_dav_lock.so LoadModule dav_fs_module /usr/lib/apache2-prefork/mod_dav_fs.so LoadModule dav_svn_module /usr/lib/apache2/mod_dav_svn.so LoadModule authz_svn_module /usr/lib/apache2/mod_authz_svn.so
SVNPathで指定したディレクトリがリポジトリになります。
<Location /svn> DAV svn #SVNPath /srv/svn/repos SVNParentPath /srv/svn <--※ AuthType Basic AuthName "Authorization Realm" AuthUserFile /etc/apache2/.svnpasswd <-- パスワード管理ファイル AuthzSVNAccessFile /srv/svn/svnauthz.conf <-- アクセス制御ファイル Require valid-user </Location>
※複数リポジトリを管理したい場合はこっちの設定。
親ディレクトリを指定しておくと、その下のリポジトリ(/reposなど)を増やしても(/svn/repos)でアクセスできるようになる。
# mkdir -p /srv/svn/repos # svnadmin create /srv/svn/repos # chown -R wwwrun:www /srv/svn/repos
htpasswd2で作成。hogeとpowユーザーを作成してみる。
# htpasswd2 -b -c /etc/apache2/.svnpasswd hoge hogepass # htpasswd2 -b /etc/apache2/.svnpasswd pow powpass
アクセス制御は([リポジトリ名:パス])の下にユーザー毎の権限を指定します。権限は親ディレクトリの設定を継承します。
# vi /srv/svn/svnauthz.conf [repos:/] *=r <-- 全てのユーザーが読み込み可能 [repos:/branch] hoge=rw <-- hogeは読み書き可能 pow= <-- powはアクセス不可
# service apache2 restart
以下のようにして、ダンプファイルを生成することができる。
svnadmin dump /srv/svn/repos > /backup/repos-full
リカバリ先のリポジトリを作成し、ダンプファイルをロードする。
svnadmin create /home/svn/repos svnadmin load /home/svn/repos < /backup/repos-full