CentOS 5にSubversionをインストールする

CentOS 5.6にSubversionをインストールし、Apacheと連携して動作させるようにします。

LinkIconWebサーバApacheをインストールする
LinkIconSubversionをインストールする
LinkIconsvnserveで接続する
LinkIconsvnserve+SSHで接続する

LinkIconSubversionコマンド
LinkIconRapidSVNをCentOS 5.6にインストールする

milk_btn_pagetop.png

WebサーバApacheをインストールする  

CentOS 5.6にWebサーバApacheをインストールします。

httpdのインストール

httpdをインストールします。

# yum -y install httpd

httpdの起動

httpd を起動します。

# /etc/rc.d/init.d/httpd start

自動起動の設定

CentOS 5.6起動時に自動起動できるように設定します。
ランレベルが 3、4、5 で自動起動するようにします。

# chkconfig --level 345 httpd on

2011.08.30
milk_btn_pagetop.png

Subversionをインストールする  

CentOS 5.6にSubversionをインストールします。

Subversionのインストール

# yum -y install mod_dav_svn subversion

httpdの設定

/etc/httpd/conf/httpd.conf の編集

/etc/httpd/conf/httpd.conf を編集して、webdav モジュールを有効にします。

# nano /etc/httpd/conf/httpd.conf

LoadModule dav_module modules/mod_dav.so
のコメントが外れていることを確認します。

/etc/httpd/conf.d/subversion.conf の編集

/etc/httpd/conf.d/subversion.conf を編集して、subversion を有効にします。

# nano /etc/httpd/conf.d/subversion.conf

コメントを外して、以下のようにします。

LoadModule dav_svn_module     /usr/lib/httpd/modules/mod_dav_svn.so
LoadModule authz_svn_module   /usr/lib/httpd/modules/mod_authz_svn.so
...
<Location /repos>
   DAV svn
   SVNParentPath /var/www/svn
#

#   # Limit write permission to list of valid users.
#   <LimitExcept GET PROPFIND OPTIONS REPORT>
#      # Require SSL connection for password protection.
#      # SSLRequireSSL
#
#      AuthType Basic
#      AuthName "Authorization Realm"
#      AuthUserFile /path/to/passwdfile
#      Require valid-user
#   </LimitExcept>
</Location>

httpd設定のリロード

httpdの設定をリロードします。

# service httpd reload

リポジトリの作成

リポジトリを作成します。
(新しいリポジトリ名を sample とします。)

# mkdir /var/www/svn
# cd /var/www/svn
# svnadmin create sample
# chown -R apache:apache sample

リポジトリsampleへのアクセス

Webブラウザからリポジトリ sample にアクセスします。

http://localhost/repos/sample

/var/www/svn/sample の内容

リポジトリディレクトリの内容を表示します。

# cd /var/www/svn/sample
# ls -l
合計 24
-rw-r--r-- 1 apache apache  229  8月 30 20:49 README.txt
drwxr-xr-x 2 apache apache 4096  8月 30 20:49 conf
drwxr-sr-x 6 apache apache 4096  8月 30 20:49 db
-r--r--r-- 1 apache apache    2  8月 30 20:49 format
drwxr-xr-x 2 apache apache 4096  8月 30 20:49 hooks
drwxr-xr-x 2 apache apache 4096  8月 30 20:49 locks
# 

環境変数SVN_EDITORの設定

環境変数SVN_EDITORにログメッセージ入力用のエディタを設定します。

/etc/profile ファイルを編集します。
# nano /etc/profile

ファイルの最後に、
 export SVN_EDITOR=nano
を追加します。
(ここでは nanoエディタを指定しています。)
設定を反映させます。
# source /etc/profile

設定を確認します。
# echo $SVN_EDITOR
nano
#

追加 2011.09.10
2011.08.30
milk_btn_pagetop.png

svnserveで接続する  

Subversion専用のサーバsvnserveを用いてSubversionと接続できるように設定します。svnserveによる接続ではポート番号3690を使用します。

svnserveの起動

svnserveを起動します。

# /etc/init.d/svnserve start

svnserveの自動起動設定

OS起動時に自動的にsvnserveを起動するように設定します。
ランレベルが 3、4、5 で自動起動するようにします。

# chkconfig --level 345 svnserve on

認証設定

認証の設定を行います。認証を通過したアクセスに対しては書き込み権限を与えるように設定します。

conf/svnserve.confファイルの編集

svnserveの認証設定はリポジトリ内にある conf/svnserve.conf ファイルに対して行います。

[general]
# 匿名アクセスに対して読み取りのみの権限を与えます。
anon-access = read

# 認証を通過したアクセスに対しては読み書きの権限を与えます。
auth-access = write

# パスワードファイルの場所を相対パスで指定します。
password-db = passwd

(注)
アクセス権は次の3つが設定できます。
read 読み取り可
write 読み書き可
none アクセス拒否

passwdファイルの設定

password-dbで指定したファイル(passwdファイル)でユーザ名とパスワードを設定します。

[ユーザ] = [パスワード] の形式で記述します。

# nano passwd

[users]
user1 = password1
user2 = password2

svnserveによる接続確認

svnserveに接続し、インポートします。

# svn import /tmp/svn svn://<svnserveのIPアドレス>/var/www/svn/sample -m コメント
パスワードを求められます。
passwdファイルで設定したパスワードを入力します。

tmp/svn 以下のファイルをインポートします。

変更 2011.09.05
2011.09.01
milk_btn_pagetop.png

svnserve+SSHで接続する  

SSH認証でSubversionと接続できるように設定します。

アクセス権の設定

SSH認証で接続を行う場合、SSHで接続するユーザがリポジトリへのアクセス権を持っている必要があります。

複数ユーザがリポジトリへアクセスできるように設定します。
・svnグループを作ります。
・svnグループにリポジトリへのアクセス権を設定します。
・subversionを使用するユーザをsvnグループに所属させます。

svnグループを追加します。
# groupadd svn

svnグループにリポジトリの所有権を与えます。
# chown -R :svn /var/www/svn/

svnグループに読み書きの権限を与えます。
# chmod -R g+wr /var/www/svn/

ユーザ user1 をsvnグループに所属させます。
# usermod -G svn user1

#ユーザー gentoo をsvnグループに所属させる。
# usermod -G svn user2

SSHによる接続確認

svnserveに接続し、ファイルをバージョン管理下に置きます。
リポジトリの位置はフルパスで指定します。

# svn import /tmp/svn svn+ssh://<svnserveのIPアドレス>/var/www/svn/sample -m コメント

パスワードの入力を求められます。
SSHで接続する時と同じパスワードを入力します。

/tmp/svn 以下のファイルをインポートします。

2011.09.01
milk_btn_pagetop.png

追加 2011.09.01
2011.08.30