Subversionのインストールと設定(svnserve編)
Apacheを用いたSubversionの設定は、既にApacheをインストールしていたり、
Subversionとの通信をhttpで行いたいというニーズがあれば有用ですが、
単にSubversionと言うバージョン管理システムを使いたい場合は、敷居が高く
なるだけかもしれません。
本サイトでも、 Apacheを用いたSubversionの設定をご紹介していましたが、このページでは
Subversionを単独で動作させる設定、SSHと共に動作させる設定をご紹介します。
Subversionのインストールを行います。SubversionはApacheと連携させて動作させる事も可能ですが、
ここではシンプルにSubversion単体でインストールし、動作させます。
(Apacheと連携させた場合のインストールはSubversionのインストールと設定(Apache編)をご覧ください)
Subversionをインストールします。
# emerge subversion
インストールされたSubversionのバージョンは1.1.3 でした。
Subversionがデータを管理するリポジトリと呼ばれる格納庫を作成します。
例では/var/svn/repsにリポジトリを作成しています。
# mkdir /var/svn/
# svnadmin create /var/svn/reps
Subversion専用のサーバー svnserve を用いてSubversionとのアクセスを提供する方法です。
ポートは3690 番が使用されます。
Gentoo Linux では、svnserveは デフォルトでは apacheユーザー apacheグループとして動作するので、
リポジトリの所有権を上記ユーザー:グループ に与えます。
# chown -R apache:apache /var/svn/reps/
svnserveを起動します。
# /etc/init.d/svnserve start
また、OS起動時に自動的にsvnserveを立ち上げるために、
デフォルトランレベルに登録しておきます。
# rc-update add svnserve default
デフォルトの設定では、読み取り専用でしか、リポジトリアクセスできません。
そこで、認証の設定を行い、認証を通過したアクセスに対しては書き込み権限を与えるように
設定します。
svnserveの認証はリポジトリ内にある conf/svnserve.conf ファイルで設定します。
[general]
anon-access = read
auth-access = write
password-db = passwd
アクセス権は以下の3つが設定できます。
- read:読み取り可
- write:読み書き可
- none:接続拒否
password-dbで指定したファイル(上記例では passwd ファイル)は以下の様になります。
[users]
gside = hoge
gentoo = fuga
svnserveに接続し、ファイルをバージョン管理下に置きます。
# svn import /etc svn://192.168.1.20/reps
例ではローカルの /etc 以下のファイルをバージョン管理下に置いています。実行後、ログ入力のためにエディタが起動します。
エディタ終了後、「c」を入力しEnterを押すと、パスワードの入力を求められるので、パスワードファイルに
指定したパスワードを入力してください。インポートが開始されます。
svnserveの起動時の設定は /etc/conf.d/svnserve に指定します。
svnserveを apacheユーザー apacheグループ以外で動作させる場合や、svnserveに起動オプションを
与えたい場合は、このファイルに指定します。
SVNSERVE_OPTS="--root=/var/svn"
SVNSERVE_USER="apache"
SVNSERVE_GROUP="apache"
svnserveを他のユーザー:グループで動作させる場合は、そのユーザー:グループにリポジトリの所有権を
与えてください。
SVNSERVE_OPTS |
svnserve起動時のオプションを指定します。何も指定しない場合は --root=/var/svn がデフォルト値です。
|
SVNSERVE_USER |
svnserve起動時のユーザーを起動します。何も指定しない場合は apache がデフォルト値です。 |
SVNSERVE_GROUP |
svnserve起動時のグループを起動します。何も指定しない場合は apache がデフォルト値です。 |
この方法は認証をSSHに受け持たす方法です。
Gentoo Linux では デフォルトでSSH が入っていますし、この接続方法が一番簡単です。
SSHを用いた接続を行う場合、SSHで接続するユーザーがリポジトリへのアクセス権を持っている必要があります。
ここでは、
- svnグループを作る。
- svnグループにリポジトリへのアクセス権を設定する。
- subversionを使用するユーザーを、svnグループに所属させる。
と言う方法で、複数ユーザーのリポジトリへのアクセスを設定しました。
# groupadd svn
# chown -R :svn /var/svn/
# chmod -R g+wr /var/svn/
# usermod -G svn gside
# usermod -G svn gentoo
svnserveに接続し、ファイルをバージョン管理下に置きます。
リポジトリの位置はフルパスで指定する点に気をつけて下さい。
# svn import /etc svn+ssh://192.168.1.20/var/svn/reps
実行後、ログ入力のためにエディタが起動します。
エディタ終了後、「c」を入力しEnterを押すと、パスワードの入力を求められるので、SSHで
接続する時と同じパスワードを入力してください。インポートが開始されます。