CVS pserver on Vinelinux

フリーで高機能なバージョン管理システムである CVS(Concurrent Versions System) を Vinelinux上で動かすためのメモ。

クライアントとしての用途ではなく、サーバとしての用途を想定している。

Vine Linux 上に CVSサーバを立て、外部から cvs pserver を利用した認証リモートアクセス可能な設定を行う。

::目次::

1.CVSのインストール
2.CVS専用ユーザの追加
3.cvsroot ディレクトリの作成・初期化
4.inetd への登録
5.CVSユーザの管理
6.サービスの起動と接続確認
7.CVSクライアントとして Eclipse を使用する場合

CVSのインストール

Vine Linux を普通にインストールすれば CVS は既にインストールされている。
インストールされているかどうかの確認は、以下のように rpm コマンドで可能。

$ rpm -qa | grep -i cvs

「cvs-1.12.9-0vl3.1」のように表示されればOK.

何も表示されなければ apt-get で以下のように取得する。

# apt-get install cvs

また、インストール後のバージョン確認は、

$ cvs --version

とすることで確認できる。


CVS専用ユーザの追加・初期化

CVSサーバに対して、ログイン・チェックアウト等の作業を行うことのできる専用ユーザ「cvs」を Linux に追加する。
(セキュリティ対策のため、CVSサーバに対するリモートアクセスは専用ユーザ cvs のみが行えることにする。)
以下のように、普通にユーザを追加。

# /usr/sbin/adduser cvs

cvsroot ディレクトリの作成

cvsroot ディレクトリとは、CVSでバージョン管理されるソースとCVSの管理情報が格納されるディレクトリのこと。
ディレクトリ名としては、「cvsroot」とするのが一般的であるが、別名称でも構わない。

ここでは例として、「/home/cvs/cvsroot」を cvsroot ディレクトリとして設定を行う。
なお、cvsroot ディレクトリの作成は、su(Swich User) でユーザ cvs となって行う。

# su - cvs

cvsroot ディレクトリの作成。

$ mkdir ~/cvs

cvsroot ディレクトリの初期化。

$ cvs -d /home/cvs/cvsroot init

inetd への登録

Vine Linux上で cvs pserver をデーモンとして起動させるため、inetd に登録する。
まず、cvspserver の記述が /etc/services にあることを確認する(デフォルトでは記述されている)。

$ less /etc/services | grep cvspserver

次に /etc/inetd.conf に次の一行を追記する。

cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvs/cvsroot pserver

--allow-root で指定するディレクトリは、上で作成した cvsroot ディレクトリを指定する。

ちなみに、RedHat 9以降などの xinetd を利用しているディストリビューションの場合は、/etc/xinetd.d/cvspserver を以下のように作成する。

service cvspserver
{
     disable = no
     socket_type = stream
     protocol    = tcp
     wait        = no
     user        = cvs
     log_on_success += DURATION USERID
     log_on_failure += USERID
     passenv     =
     server      = /usr/bin/cvs
     server_args = -f --allow-root=/home/cvs/cvsroot pserver
}

CVSユーザの管理

cvs pserver 経由でアクセス可能なユーザを追加する。
ここでは読み取り専用ユーザとして「guest」、書き込み可能(コミット可能)なユーザとして「editor」を追加する。 /home/cvs/cvsroot/CVSROOT ディレクトリに移動し、htpasswd コマンドを使用して passwd ファイルを作成する。

$ htpasswd -c passwd guest ← passwdファイルを作成し、ユーザ guest を追加。
$ htpasswd passwd editor  ← ユーザ editor を追加(-c オプションは不要)。

htpasswd コマンドで作成した passwd ファイルをエディターで開き、次のように「:cvs」を追記する。

guest:UlousE0fTIyqA:cvs
editor:JyFWTMoTjEQ72:cvs

次に、読み取り専用/書き込み権限をユーザごとに制限する。
/home/cvs/cvsroot/CVSROOT ディレクトリに移動し、writers ファイルを作成し、書き込み可能(コミット可能)なユーザ名 editor を記述する。

$ echo editor > writers

writers ファイルに記述されていないユーザは読み取り専用となる。


サービスの起動と接続確認

以上の設定が完了したら、cvs pserver を inetd 経由で起動する。
設定を反映させるため、inetd を以下のように再起動する。

# /etc/rc.d/init.d/inet restart

cvs pserver 経由での接続を確認するため、一般ユーザにて CVSサーバへのログインを試す。

$ export CVSROOT=:pserver:guest@localhost:/home/cvs/cvsroot
$ cvs login

guest のパスワードを入力して何もエラーが出力されなければOK.


CVSクライアントとして Eclipse を使用する場合

CVSクライアントとして Eclipse を使用する場合の設定は、以下を参照。

Home

Tips

ページのトップへ戻る