1.動作環境
当ドキュメント上で扱うセットアップ手順は以下の環境を元にしています。設定は Red Hat Linux と他のディストリビューションでは方法が異なります。したがって当ドキュメントの内容はあくまで Red Hat Linux 向けのものとしています。
マシン | NEC LaVie LL500/1D |
CPU | Duron 900MHz |
メモリ | 512MB |
OS | Red Hat Linux 7.3(FTP 版) |
上記環境に、OS インストール時に CVS をインストールされるようにオプションを設定しています。OS インストール時に一緒に入れることで、設定を行う
のみで CVS Pserver
1を利用することができます
2。
1.動作環境 での注釈
- 実は LAN 環境などでは Pserver をたてずとも共有フォルダを作る形で CVS が利用できますが、どうやらこれは WinCVS の機能のようで Eclipse など
からは利用できません。したがって必然的に Pserver が必要になります。
- 最後の方まで読み進めるとわかりますが、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 の設定 での注釈
- 正しくはネットワークの再起動を行います。
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.ユーザを作る での注釈
- 普通はパスワードを頭の中で暗号化できる人はいないはずです。常識的に考えてツールは必須です。
- オプションの c は CREATE の意味で、新規ファイルを作る場合のものです。したがって追加の場合はいらないはずです。
- CVS で割り当てたユーザが Linux 上でどのユーザに相当するか、のような設定が必要になります。もしくは Linux 上に同一のユーザを作ってしまう4のが良いです。
- この場合は passwd ファイルと同階層に writers というファイルが存在するため(無い場合は作成する)ここにコミット可能なユーザ名を記述しておきます。
4.利用する
以上で設定はすべて完了しているはずなので、WinCVS や Eclipse などを使って実際に CVS サーバへ接続します。
:pserver:hoge@okapiserver:/usr/local/cvsrep
設定は上記のパスで行います。@ 以降はサーバ名(もしくは IP アドレス)、CVSROOT の場所を指定します。