Okapi Project

CVS 用 Pserver のセットアップについて

バージョン
2003 年 08 月 24 日 Ver.1.0
作成者
T.Itoh ( Xware )

要約

CVS の Pserver を Linux 上にセットアップする手順についてまとめたものです。

目次


1.動作環境

当ドキュメント上で扱うセットアップ手順は以下の環境を元にしています。設定は Red Hat Linux と他のディストリビューションでは方法が異なります。したがって当ドキュメントの内容はあくまで Red Hat Linux 向けのものとしています。

マシンNEC LaVie LL500/1D
CPUDuron 900MHz
メモリ512MB
OSRed Hat Linux 7.3(FTP 版)


上記環境に、OS インストール時に CVS をインストールされるようにオプションを設定しています。OS インストール時に一緒に入れることで、設定を行う のみで CVS Pserver 1を利用することができます2
1.動作環境 での注釈
  1. 実は LAN 環境などでは Pserver をたてずとも共有フォルダを作る形で CVS が利用できますが、どうやらこれは WinCVS の機能のようで Eclipse など からは利用できません。したがって必然的に Pserver が必要になります。
  2. 最後の方まで読み進めるとわかりますが、Apache も一緒にインストールしておかないと事実上使えません。


2.Pserver の設定

次に CVS がインストールされているものとして各種設定ファイルの記述を行い、Pserver を稼動させます。

2.1.service ファイルの記述

最初に、/etc/service ファイルを編集します。当ドキュメント内ではエディタは emacs を利用します。

$> emacs /etc/service          ← /etc/service ファイルを emacs で開く

---------- emacs 編集領域 開始 ----------------------------

cvspserver       2401/tcp      ← 最終行にこの行を追加する

---------- emacs 編集領域 終了 ----------------------------

2.2.xinetd の設定

ここからの記述が Red Hat Linux 特有になっています。他のディストリビューションを利用する際には当該部分をそれぞれに合った内容で設定してください。 まず、/etc/xinetd.d 配下に cvspserver というファイルを作り、そこに以下の記述を行います。

$> cd /etc/xinetd.d          ← /etc/xinetd.d ディレクトリへ移動
$> emacs cvspserver          ← cvspserver というファイルを指定して emacs を起動(存在しないファイル名のため新規で作成される)

---------- emacs 編集領域 開始 ----------------------------

service cvspserver
{
     disable     = no
     socket_type = stream
     protocol    = tcp
     wait        = no
     user        = root
     passenv     =
     server      = /usr/bin/cvs                             ← ここは各環境に合わせる
     server_args = --allow-root=/usr/local/cvsrep pserver   ← ここも各環境に合わせる
}

---------- emacs 編集領域 終了 ----------------------------

2.3.ネットワークの再起動

最後にネットワークを再起動してこれまでの設定内容を反映させます。方法がよくわからなかった1のでとりあえずマシンを再起動してみました。

2.4.リポジトリの作成

実際に CVS を利用する時にはリポジトリと呼ばれるサーバ上の格納場所を必要とするので、Pserver 構築の際にはリポジトリも用意しておかなくてはなりません。WinCVS などを利用するとリポジトリを作成できるようですが、基本はサーバ上から構築します。
まずは以下のコマンドをたたいてください。

$> export CVSROOT=/usr/local/cvsrep
$> cvs init

これで CVSROOT に指定した場所に CVSROOT というフォルダが出来上がり、リポジトリとして扱われるようになります。その後は次節で示すユーザを作れば実際にアクセスすることが可能になります。

2.5.付録:複数のリポジトリを作る場合

環境によっては複数のリポジトリを作らなくてはならない場合もあります。その場合には 2.3 で記述した /etc/xinetd.d/cvspserver ファイルを以下のように修正します。

service cvspserver
{
     disable     = no
     socket_type = stream
     protocol    = tcp
     wait        = no
     user        = root
     passenv     =
     server      = /usr/bin/cvs
     server_args = --allow-root=/usr/local/cvsrep --allow-root=/usr/local/xxx1 --allow-root=/usr/local/xxx2 pserver
}

上記のように、 --allow-xxx 以降を作成するリポジトリの分だけ繰り返して記述することで複数のリポジトリ作成に対応することができます。
2.Pserver の設定 での注釈
  1. 正しくはネットワークの再起動を行います。


3.ユーザを作る

これまでの設定が上手くいくと、設定ファイル内で記述した /usr/local/cvsrep 配下に CVSROOT というフォルダが出来上がり、この中に CVS 関連の設定ファイルが格納されます。ここに passwd というファイルがあり、このファイルにユーザ名とパスワードを記述することで 実際に CVS を利用することができるようになります。

hoge:lldksfuosiu12dsfee:root
foo:ASDFATEG45FRWE22:root

passwd ファイルは上記のような書式になっており、「CVS のユーザ名:暗号化されたパスワード:Linux 上でのユーザ名」という形です。 基本的にはエディタから直接記述すれば良いですが、暗号化されたパスワードはツールを使った方が便利1なのでその方法を以下に紹介します。

$> htpswd -bcd /usr/local/cvsrep/CVSROOT/passwd hoge fuge

このコマンドは CVS のものではなく、Apache にあるコマンドを利用しています。コマンドオプションは新しくファイルを作成する場合に c を 設定していますが、追加でユーザを作る場合には c はいらないかもしれません2。引数には passwd ファイルの場所とユーザ名、パスワードを指定します。 このコマンドを実行するとパスワードファイルにユーザ名と暗号化されたパスワードが付与されます。

このあと、emacs などで passwd ファイルを開き、最後の :root の部分を追加3しておきます。
3.ユーザを作る での注釈
  1. 普通はパスワードを頭の中で暗号化できる人はいないはずです。常識的に考えてツールは必須です。
  2. オプションの c は CREATE の意味で、新規ファイルを作る場合のものです。したがって追加の場合はいらないはずです。
  3. CVS で割り当てたユーザが Linux 上でどのユーザに相当するか、のような設定が必要になります。もしくは Linux 上に同一のユーザを作ってしまう4のが良いです。
  4. この場合は passwd ファイルと同階層に writers というファイルが存在するため(無い場合は作成する)ここにコミット可能なユーザ名を記述しておきます。


4.利用する

以上で設定はすべて完了しているはずなので、WinCVS や Eclipse などを使って実際に CVS サーバへ接続します。

:pserver:hoge@okapiserver:/usr/local/cvsrep

設定は上記のパスで行います。@ 以降はサーバ名(もしくは IP アドレス)、CVSROOT の場所を指定します。

Copyright © 2003 - 2006 Okapi Project All Rights Reserved.