subversionインストール


Ubuntu Feistyにsubversionをインストール、設定にはまった。

まずはバイナリーのインストールは
apt-get install subversion
ですんなり終了。

subversion用のユーザーを作成
useradd -d /home/svn -s /bin/bash svn
でsvnユーザーでログインしなおす。
su – svn

リポジトリの作成を行う。
svnadmin create /var/svn/repos

既存のソースをリポジトリにインポート
svn import -m ‘initial import’ mysrc file://var/svn/repos/mysrc

リモートからアクセスしたいのでsvnserveの設定を行う。
/var/svn/repos/mysrc/conf/svnserve.confを以下のように記述。
anon-access = none
auth-access = write
password-db = passwd
authz-db-authz
realm= My Source Repository

anon-accessは匿名ユーザーのアクセスを禁止しているのだが、noneにしておかないと許可しているユーザーのアクセスのときに変なエラーがでてアクセスが拒否されてしまった。
Googleで調べるとここをnoneにしろと書いてあったがなんかバグらしい。
とりあえずこれでアクセスできた。

同じディレクトリにpasswdファイルを作成し以下のような感じでアクセスさせたいユーザー名とパスワードを記述。

user1 = pass1
user2 = pass2

パスワードはクリアテキストで通常のパスワードファイルのようにハッシュになっていない。
(大丈夫か?)

これでsvnserveを以下のように起動。

svnserve -d -r /var/svn/repos

-dはデーモンモードで起動するオプションで、-rはリポジトリディレクトリを指定する。
-rで指定しないとリモートでアクセスできなかったので必ず指定しなければいけないのだろう。

後はクライアントから以下のコマンドでアクセスしてみる。

svn checkout svn://svnホスト名/mysrc dir1

リポジトリのファイルがクライアントのdir1というディレクトリにダウンロードされる。
これでクライアントローカルでファイルの変更が可能になる。
変更後svn statusで見ると変更されたファイルリストが表示されるはずだ。

M aaa.c
M bbb.pl

変更されたファイルをsvnサーバーのリポジトリに反映させるにはcommitコマンドを使う。

svn commit aaa.c bbb.pl

アクセス制御の設定をちゃんとしておかないとここで拒否される。
自分はここではまって何回もリポジトリを作りなおしたり、設定ファイルの変更を行った。
svnserveの起動ユーザーとリポジトリファイルのオーナーがあっていないとアクセスエラーになってしまうので注意が必要だ。
root権限でsvnserveを起動するのは危険なのでsvnユーザーのようにsubversion専用のユーザーを作成し、そのユーザーでsvnserveを動かした方がいいだろう。

今日は半日これをずっとやっていて疲れた。
次はWebDAV経由でアクセスできるように設定しないと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です