[ Topページへ戻る ]

CentOS 5.xにCollabNet Subverion 1.6を入れる


CollabNet Subversionのインストール

CollabNetは、RedHat Enterprise 5用に、最新バージョンのSubversion RPMパッケージを提供しています。これをCentOS 5にインストールし、Apache HTTPサーバ経由でアクセスするための設定を行います。

入手

CollabNetの配布ページは、Subversionホームページから辿ることができます。

左側メニューの[Binary Packages]を辿り、[Red Hat Linux]を辿ると、Red Hat Linux 用に3つのそれぞれのバイナリ提供先がリストされています。この1つがCollabNetです。[CollabNet]を辿ると、CollabNet Subversionダウンロードページに飛びます。

2010/06/01現在、以下のRPMがダウンロードページにあります。

今回は、32bit版のCentOS 5.5にインストールするので、前者3つを入手します。

なお、入手には、無償ですがユーザー登録が必要です。

ダウンロードするファイルは以下3つとなります。

CollabNetSubversion-client-1.6.11-1.i386.rpm
CollabNetSubversion-server-1.6.11-1.i386.rpm
CollabNetSubversion-extras-1.6.11-1.i386.rpm

インストール

CentOS 5の標準搭載Subversion(バージョン1.4)は予め削除しておきます。

入手したRPMファイルをインストールします。

# rpm -ivh CollabNetSubversion-client-1.6.11-1.i386.rpm
    :
# rpm -ivh CollabNetSubversion-server-1.6.11-1.i386.rpm
    :
# rpm -ivh CollabNetSubversion-extras-1.6.11-1.i386.rpm

インストールされるディレクトリ構成は以下です。

/opt/CollabNet_Subversion
      +-- bin
      +-- build
      +-- docs
      +-- lib
      +-- licenses
      +-- modules
      +-- openssl
      +-- sbin
      +-- share
/etc/init.d/collabnet_subversion
/etc/opt/CollabNet_Subversion
          +-- cgi-bin
          +-- conf
          +-- default-site
          +-- icons
/var/opt/CollabNet_Subversion
          +-- error
          +-- logs
          +-- run

設定

環境変数の設定

CollabNetのSubversionは、標準パスには入らないので、コマンドを実行するためには、環境変数PATHに追記します。

必要な環境変数は以下です。

PATH=/opt/CollabNet_Subversion/bin:$PATH
MANPATH=/opt/CollabNet_Subversion/share/man:$MANPATH
LOCPATH=/opt/CollabNet_Subversion/share/locale:$LOCPATH

設定方法は、ユーザ毎に記述するのは面倒なので、システムで一括で定義します。

/etc/profile.d/collabnet-subversion.sh

# CollabNet Subversion environments
PATH=/opt/CollabNet_Subversion/bin:$PATH
MANPATH=/opt/CollabNet_Subversion/share/man:$MANPATH
LOCPATH=/opt/CollabNet_Subversion/share/locale:$LOCPATH

export PATH MANPATH LOCPATH

/etc/profile.d/collabnet-subversion.csh も定義した方がよさそうですが、エラーになる(MANPATHが未定義のとき、setenvがエラーになる)

サーバーの設定

CollabNet Subversion Serverに内蔵のApache Webサーバーを使用し、Subversionリポジトリを作成し、ユーザアカウントを生成します。

これらの設定をするスクリプトが用意されているので、これを実行し、対話的に質問に答えていくと、必要な設定が行われます。

# Configure-CollabNet-Subversion

CollabNet Subversion Server is a free download of open-source Subversion,
compiled and tested by CollabNet. For more information about CollabNet
Subversion, visit the CollabNet community at http://open.collab.net.

Would you like to configure the CollabNet Subversion Server now? [yes]
Welcome to CollabNet Subversion Server setup.

You will now be asked some questions to configure CollabNet Subversion.
Defaults are given in square brackets. If a default is okay for you
Just hit [Enter] to continue.

This setup can configure either Apache or svnserve as Subversion
server, for you. Would you like to configure Apache as your
Subversion server now? [yes]

Continuing with apache Subversion server configuration ...

Specify the base directory for Subversion repositories: [/var/svn/repositories]

Non-existing base path, Let me create and continue [yes]

Base path created.
Would you like to create a new Subversion repository? [yes]

What should be your new Subversion repository name? primus

New repository created.
Would you like to initialize the repository with trunk/branches/tags folders? [no] yes

Done.

Would you like to create another Subversion repository? [yes] no

Would you like to give the name and port that the server uses to identify itself? [yes]

Registered DNS name or IP address: 192.168.0.1

Server port number: 8086

Allow anonymous read access? [no]
  
0 users currently have access to this repository:

Would you like to create a new Subversion account? [yes]

Account username
(To re-create or delete a Subversion account, enter an existing username): torutk

Account password: xxxxxx

Retype account password: xxxxxx

Adding password for user torutk
Account created

Would you like to create another user account? [yes] no

Would you like to configure ViewVC?  [yes]

Stopping CollabNet Subversion: httpd (no pid file) not running
                                                           [  OK  ]
Starting CollabNet Subversion:                             [  OK  ]

  Congratulations! You have successfully configured the CollabNet
  Subversion server.

  You can access your repositories at the following URL:
  http://192.168.0.1:8086/svn/YOUR-REPOS-NAME
  http://192.168.0.1:8086/viewvc/YOUR-REPOS-NAME
#

ポート番号は、CentOS標準のhttpdが80ポートを使用しているので、別なポート番号を指定します。この例では、8086を指定しました。

この一連の設定で、サーバーが自動起動し、Subversionリポジトリが生成され、ユーザー設定が行われます。

$ chkconfig --list|grep -i subversion
collabnet_subversion    0:off   1:off   2:off   3:on    4:on    5:on    6:off
$ service collabnet_subversion status
CollabNet Subversion (apache [4213]) Running ...           [  OK  ]
$

設定が記載されるファイルは以下です。

/etc/opt/CollabNet_Subversion/conf
           +-- collabnet_subversion_httpd.conf
           +-- server
           +-- svn_access_file
           +-- svn_auth_file
           +-- viewvc.conf
           +-- viewvc_httpd.conf

以下URLでリポジトリにアクセスできるようになります。

ユーザーの設定

ユーザーの設定は、/etc/opt/CollabNet_Subversion/conf/svn_auth_file に記述します。追加には以下コマンドを使用します。

# htpasswd /etc/opt/CollabNet_Subversion/conf/svn_auth_file fuga
New password: xxxxxx
Re-type new password: xxxxxx
#

アクセス権の設定

どのユーザがどのリポジトリにアクセスできるかを設定するには、/etc/opt/CollabNet_Subversion/conf/svn_access_file に記述します。

[groups]
primus-developers = marcus,gaius,lucius,frontinus
secundus-developers = publius,agrippa,appius,dossennus,gnaeus
admin = jullus, lars

[priums:/]
@priums-developers = rw
@admin = rw
aulus = r

[secondus:/]
@admin = rw
@secundus-developers = r

[secundus:/trunk]
@secundus-developers = rw
decimus = r

ユーザー個別に指定してもよいですし、グループを定義してグループ毎に指定してもよいです。

グループの定義は、[groups]に、グループ名 = ユーザ名,... の形で指定します。

各リポジトリのアクセス権は、[リポジトリルート名:ディレクトリ名]で指定します。リポジトリルートは、collabnet_subversion_httpd.confで記述した、SVNParentPathの直下に作成したリポジトリのディレクトリ名となります。ディレクトリは、リポジトリディレクトリ名を/としたそれ以下のディレクトリパスを指定します。