Subversionを導入しよう
導入
パッケージのインストール
yum install subversion
IPパケットのフィルタリング設定変更
svnが使用するポートに対するポートへのパケットを許可します。
#!/bin/sh iptables -I INPUT -p tcp -s クライアントのIP -d サーバのIP --dport 3690 -j ACCEPT
こんなスクリプトを書いて、 /etc/rc.d/init.d/filtertab として保存します。
これを起動時に適応させるために
chmod 755 /etc/rc.d/init.d/filtertab cd /etc/rc.d/rc3.d/ ln -s ../init.d/filtertab S98filtertab
これで、svnへのパケットが通るようになりました。
リポジトリ作成と設定
コードの置き場をリポジトリというらしいですが、それを作成しユーザの認証設定を行います。
svnadmin create /var/svn/repos
これでリポジトリルートが作成されたので、次に認証設定を変更します。
認証設定のファイルは /var/svn/repos/conf/svnserve.conf ですので、これを以下のように書き換えました。
[general] anon-access = read auth-access = write password-db = passwd
匿名アクセスは読み取りのみの権限、認証アクセスには読み書きの権限を与えます。
[users] #ユーザ名 = パスワード
を /var/svn/repos/conf/passwd に記述します。
xinetdでsvnserve起動
ずっとスーパーサーバはinetdだと思い込んでいたのですが、xinetdなんですね。古すぎました。
service svn { disable = no socket_type = stream port = 3690 wait = no user = svn server = /usr/bin/svnserve server_args = -i -r /var/svn/repos log_on_failure += USERID }
のような内容を /etc/xinetd.d/svn に記述します。
service名は /etc/services に記載されているものに合わせます。
結果
バージョン管理システムはcvsとvssしか使ったことがなかったのですが、svnはなかなかシンプルかつ直感的でいいですね。
svnを使いこんで、次はgitにチャレンジしてみようと思います。