エンジニア成長日記

成長するにはインプットばかりでなく、アウトプットも必要である。日々の成長記録を書き留めていきたい。

Subversion 1.8インストール手順

はじめに

CentOS6.5では、「1.6」が標準インストールされているが、1.6は、サポートが終了している+便利機能が追加されていることもあり、 最新の「1.8」を利用します。

最新の1.8をインストールする方法は色々とありますが、今後のメンテも考慮し、米WANDiscoが公開していCentOS6向けのリポジトリの設定を追加します。

subversionでは、リポジトリへ接続するプロトコルとして5つ(file,svn,svn+ssl,http,https)用意されていますが、今回は、sslを利用した接続は記載していません。

また、プロセスは必要に応じて起動するため、スーパーサーバー(xinetd)を用いて構築します。

構成について

OS

実行ユーザ

  • root権限を持つ任意のユーザ

SW

ソフトウェア バージョン 備考
Subversion  1.8.9
xinetd    2.3.14
mod_dav_svn 1.8.14-1 apache連携

インストール作業

サービス名の設定

  • svnserve(3603)を「/ete/service」ファイルに追記する。
# vi /etc/services
(以下、変更)
  542 svnserve        3690/tcp                        # Subversion
  543 svnserve        3690/udp                        # Subversion

ポート開放

* svnserve(3603)ポートを追加する。
vi /etc/sysconfig/iptables
(以下、追記)
-A INPUT -p tcp -m tcp --dport 3690 -j ACCEPT            #「svn://」経由用
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT              #「http://」経由用

リポジトリ追加

WANDiscoリポジトリ

  • 設定ファイルを作成する。
# vi /etc/yum.repos.d/wandisco.repo
(以下、追記)
[wandisco-svn]
name=WANDisco Repository - snv-1.8 centos6
baseurl=http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-WANdisco
  • GPGキーを追加する。
rpm --import http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
yum repolist --enablerepo=wandisco-svn
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
~略~
wandisco-svn         WANDisco Repository - snv-1.8 centos6                        171
repolist: 8,364

パッケージインストール

Subversion

  • インストールする。
# yum install -y --enablerepo=wandisco-svn subversion
  • バージョンを確認する。
# svn --version
svn, version 1.8.14 (r1692801)

xinetd

  • インストールする。
# yum install -y xinetd
  • バージョンを確認する。
# xinetd -version
xinetd Version 2.3.14 libwrap loadavg

mod_dav_svn

  • apachemavenを連携させるため、モジュールをインストールする。
# yum install  --enablerepo=wandisco-svn mod_dav_svn

Subversion設定

動作確認のため、新規にリポジトリを作成します。

リポジトリ作成

# mkdir /var/lib/svn
# svnadmin create /var/lib/svn/sample

各種設定

# vi svnserve.conf
(以下、修正差分)
    12,13c12,13
    < anon-access = none    #匿名のアクセスを許可するかどうかを設定。(read,write,none)
    < auth-access = write    #認証されたユーザのアクセス権を設定。(read,write,none)
    ---
    > # anon-access = read
    > # auth-access = write
    20c20
    < password-db = passwd     #ユーザとパスワードが記述されたファイルへのパスを設定。(相対パスor絶対パス)
    ---
    > # password-db = passwd
    27c27
    < authz-db = authz
    ---
    > # authz-db = authz
    32c32
    < realm = Proteus ★説明★ Repository
    ---
    > # realm = My First Repository
  • リポジトリへアクセスするユーザを追記する。※書式:ユーザ名 = パスワード
# vi passwd
(以下、修正)
7,11d6
< taro = taro01
< jiro = jiro01
  • ログインユーザに権限を与える。
# vi authz
~省略~
# diff authz authz_20130517
24,29d23
< developer = taro
< viewer = jiro
<
< [/]
< @developer = rw
< @viewer = r

ディレクトリのユーザ・グループ権限変更

  • ユーザ「apache」・グループ「apache」に変更する。
# pwd
/var/lib/svn
# ll sample
~略~
drwxrwxr-x 6 root   root  4096  5月 17 10:58 sample
# chown -R apache. apache sample
  • 「conf」ディレクトリを、ユーザ「root」・グループ「root」に変更する。
# ll sample
drwxrwxr-x 6 apache clsys 4096  5月 17 10:58 sample

# chown -R root.root sample/conf
# ll sample
合計 48
drwxrwxr-x 2 apache clsys 4096  5月 17 10:58 locks
drwxrwxr-x 2 apache clsys 4096  5月 17 10:58 hooks
-r--r--r-- 1 apache clsys    2  5月 17 10:58 format
drwxrwsr-x 6 apache clsys 4096  5月 17 10:58 db
-rw-rw-r-- 1 apache clsys  229  5月 17 10:58 README.txt
drwxrwxr-x 2 root   root  4096  5月 17 11:07 conf

xinetd設定

  • svnserve用の設定ファイルを作成する。
# vi /etc/xinetd.d/svnserve
(以下、設定)
# default: on
# svn configuration
service svnserve
{
    disable = no
    socket_type = stream
    protocol = tcp
    wait = no
    user = root
    server = /usr/bin/svnserve
    server_args = -i --root /var/lib/svn
}
  • サービス再起動する。
# service xinetd restart
  • 設定が反映されていることを確認する。
# chkconfig --list
xinetd ベースのサービス:
~略~
        svnserve:       on

http+svn連携設定

  • 設定ファイルに接続情報を記載する。
vi /etc/httpd/conf.d/subversion.conf
~略~
# ModDavSvn Configuration For Maven2

  DAV svn
  SVNPath /var/lib/svn/maven2
#  AuthType Basic       #認証種類
#  AuthName "SVN Maven2"    #認証名
#  AuthUserFile /opt/WANdisco/apache22/conf/svn.passwd  #パスワードファイル場所
#  Require valid-user   #ユーザ+パスワード一致。

動作確認