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 を使用する場合の設定は、以下を参照。