openSUSE で Subversionサーバー構築

openSUSE 10.3でSubversonのインストール&設定を行います。 既にインストールされているApache・WebDAVと連携をしてみます。

Subversionのインストール

openSUSEなんで、yastでいれます。 [yast] ⇒ [Software] ⇒ [Software Management] より、インストール。

subversion 1.4.4
subversion-server 1.4.4

Apache WebDAVとの連携

  • apacheの設定追加

[yast] ⇒ [System] ⇒ [/etc/sysconfig Editor] より、Apache2 を開く。

Network
 - WWW
  - Apache2
  • APACHE_MODULESに以下を追加する。
dav dav_lcok dav_fs dav_svn authz_svn
  • /etc/apache2/sysconfig.d/loadmodule.confに以下が追加されていること
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
  • /etc/apache2/conf.d/subversion.confに以下を追記する

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はアクセス不可
  • Apacheを再起動して上記の設定を反映する
# service apache2 restart

リポジトリのバックアップとリカバリ

  • バックアップ

以下のようにして、ダンプファイルを生成することができる。

svnadmin dump /srv/svn/repos > /backup/repos-full
  • リカバリ

リカバリ先のリポジトリを作成し、ダンプファイルをロードする。

svnadmin create /home/svn/repos
svnadmin load /home/svn/repos < /backup/repos-full

外部リンク

homeserver/subversion.txt · 最終更新: 2008/11/21 19:04 by whiteapple
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0 openSUSE