1. Subversionサーバについて
1.1 Subversionサーバとはなにか?
Subversionは自身をサーバとしてネットに公開する機能があります。接続方法にはSubversion独自のプロトコルを使うsvn形式とsshを使って接続するsvn+ssh形式があります。
ここでは接続が簡単にできるsvn形式でSubversionサーバを作成する方法を説明します。
2. Subversionサーバの設定
2.1 サーバ設定の概要
Subversionサーバを使用するためには次のような設定をする必要があります。
- サーバ用ユーザの作成
- /etc/servicesにsvnプロトコルを設定
- svnプロトコル用にinetdを設定
- svnserveにログインするようにsvnserveを設定
- svnプロトコルが通るよう、ファイヤウォールを設定
以上の設定をすることで、Subversionサーバを使うことができるようになります。
2.2 サーバ用ユーザの作成
次の手順で、Subversionサーバ用ユーザsvn を作成します。
- rootでログインします。
[atsushifx@agartha atsushifx]$ su
パスワード(P):******
[root@agartha atsushifx]#
- グループ svnを作成します。
[root@agartha atsushifx]# /usr/sbin/groupadd -g 302 svn
[root@agartha atsushifx]#
- ユーザー svnを作成します。
[root@agartha atsushifx]# /usr/sbin/useradd -g svn -u 302 svn
[root@agartha atsushifx]#
- ユーザー svnのパスワードを設定します。
[root@agartha atsushifx]# passwd svn
Changing password for user svn.
New password: *****
Retype new password: *****
passwd: all authentication tokens updated successfully.
[root@agartha atsushifx]#
- vipwを使いsvnのhomeをsubversionのリポジトリに変更します。
- /etc/passwd
.
.
27:svn:x:302:302::/var/svn:/bin/false
.
.
- 前のホームディレクトリ/home/svnを削除します。
[root@agartha atsushifx]# rm -fr /home/svn
[root@agartha atsushifx]#
以上で、Subversion用ユーザーsvnの作成は終了です。
2.3 プロトコルの設定
Vine Linux 4ではすでに/etc/servicesにsvnプロトコルの設定がしてあります。
/etc/servicesが次のようになっていたら設定は終了です。
- /etc/services
-
.
.
533:svn 3690/tcp # Subversion
534:svn 3690/udp # Subversion
.
.
以上で、プロトコルの設定は終了です。
2.4 inetdの設定
次の手順で、inetdでsvnserveを使う設定をします。
- rootでログインします。
[atsushifx@agartha atsushifx]$ su
パスワード(P):******
[root@agartha atsushifx]#
- /etc/inetd.confに次の行を追加します。
- /etc/inetd.conf
.
.
84:# Subverion svnserver
85:#
86:svn stream tcp nowait svn /usr/bin/svnserve svnserve -i -r /var/svn
.
.
- inetdを再起動します。
[root@agartha etc]# /etc/init.d/inet restart
Stopping INET services: [ OK ]
Starting INET services: [ OK ]
[root@agartha etc]#
以上で、inetdの設定は終了です。
2.5 svnserveの設定
次の手順で、Subversionサーバー用にログインユーザーの設定を追加します。
- /var/svn/conf/下のsvnserve.confを変更します。
- /var/svn/conf/svnserve.conf
8:[general]
9:realm = atsushifx's Repository
10:anon-access = read
11:auth-access = write
12:password-db = svnusers
以上の設定で、指定したユーザのみアクセスできるようになります。
- /var/svn/conf/下にsvnusersを作成します。
- /var/svn/conf/svnusers
1:[users]
2:atsushifx = hogehoge
以上で、svnserveの設定は終了です。
2.6 ファイヤウォールの設定
Vine Linux 4の初期設定では、svnプロトコルがファイヤウォールにより使えません。
次の手順で、ファイヤウォールに穴をあけます。
- rootでログインします。
[atsushifx@agartha atsushifx]$ su
パスワード(P):******
[root@agartha atsushifx]#
- /etc/sysconfig/iptablesに次の行を追加します。
- /var/svn/conf/svnserve.conf
29:[0:0] -A INPUT -p tcp -m tcp --dport 3690 -j ACCEPT
30:[0:0] -A INPUT -p udp -m udp --dport 3690 -j ACCEPT
- iptablesを再起動します。
[root@agartha atsushifx]# /etc/init.d/iptables restart
[root@agartha atsushifx]#
以上で、ファイヤウォールの設定は終了です。
3. Subversionサーバを使う
3.1 Subversionをネットワーク経由で使う
2.のように設定すると、ネットワーク上のクライアントからSubversionにファイルを登録できるようになります。
Subversionでファイルをネットワーク経由で登録するときはURLをsvnで指定します。
たとえば、プロジェクトをチェックアウトするときは、
Z:\> svn co svn://atsushifx@agartha/agl agl
などとすることで、ネットワーク経由でファイルをとってくることができます。
サンプルとして、SubversionによるWebサイトの管理があるので参考にしてください。
4. 参考資料
4.1 Webサイト
Subversionサーバ(svnserve)を立ち上げるには以下のサイトを参考にしました。
- Subversionによるバージョン管理
- 公式ドキュメント。まずはここを理解することから。
|