CVS pserver 構築メモ

HOME | メモ一覧 | LastUpdate: 2003-03-16

説明と環境

CVS ( Concurrent Versions System ) は主に、プログラムのソースコードや、テキストで作成された文章などのバージョンを管理するのに適したツールです。特に、多人数で開発する場合などでのバージョン管理には非常に便利です。

CVS をネットワークから使用するためには、いくつかの方法がありますが、このメモでは、pserver という CVS サーバを構築して、アクセスを行います。

このメモは、RedHat Linux 7.2 の環境で作成しました。他の OS でも、少し相異点があるかもしれませんが、同様に設定することは可能です。

一応、間違いがないように努力しているつもりですが、間違いや不明な点などがありましたら、メールで指摘をお願いします。

CVS サーバを構築する環境としては以下のことを想定しています。

基本的に CVS を使っている人を対象にしています。


目次

CVS pserver のインストールメモ 目次

  1. 説明と環境
  2. CVS のユーザを作成
  3. サービス名の確認
  4. ディレクトリの作成
  5. cvs を利用するユーザの作成
  6. tcpserver の設定
  7. cvs サーバを通してアクセスする
  8. 更新履歴

CVS のユーザを作成

まず、リポジトリを操作するユーザを作成します。

$ su -c '/usr/sbin/adduser cvs'

▲ 目次へ戻る


サービス名の確認

次に、/etc/services に cvspserver があるか確認します。

$ grep cvspserver /etc/services
cvspserver    2401/tcp            # CVS client/server operations
cvspserver    2401/udp            # CVS client/server operations

上の行がない場合はエディタを使って追加してください。

▲ 目次へ戻る


ディレクトリの作成

リポジトリとして使用するディレクトリの /home/cvsroot を作成します。

$ su -c 'mkdir /home/cvsroot'
$ su -c 'chown cvs /home/cvsroot'
$ su -
# su - cvs
$ cvs -d /home/cvsroot init

▲ 目次へ戻る


cvs を利用するユーザの作成

cvspserver を使用するユーザを準備します。cvs サーバを利用するために作成するアカウントで、UNIX アカウントを持っている必要はありません。アカウントの作成には、/usr/local/apache/bin/htpasswd を使用します。

ユーザを作成する初回時のみ、-c オプションをつけて下さい。

/home/cvsroot/CVSROOT に passwd というファイルが作成されます。

ユーザを3人追加する時は以下のようにします。

$ cd /home/cvsroot/CVSROOT/
$ su -c '/usr/local/apache/bin/htpasswd -c passwd <ユーザ 1>'
$ su -c '/usr/local/apache/bin/htpasswd passwd <ユーザ 2>'
$ su -c '/usr/local/apache/bin/htpasswd passwd <ユーザ 3>'

<ユーザ 1,2,3> についてはサーバのユーザとして存在しないアカウントでも大丈夫です(例: anonymous, cvsuser など)

htpasswdApache などに含まれています。

作成されたファイルに UNIX 上のユーザを設定します。指定したユーザの権限でアクセスすることになります。

$ su -c 'vi passwd'
<ユーザ1>:xxxxxxx
<ユーザ2>:xxxxxxx
<ユーザ3>:xxxxxxx

上のように暗号化されたパスワードが入っていますので、後ろに : をつけて、リポジトリを操作するユーザを設定(存在するアカウントを指定)します。

ここでは、全てのユーザが先ほど作成した cvs ユーザでログインすることにします。

別のユーザを指定しても問題はありませんが、ユーザ権限によってはファイルの読み込みや書き込みに失敗する可能性がありますので、気をつけて下さい。

ログインしたユーザが cvs の権限を使用してアクセスする場合、以下のように書き変えます。

[ユーザ1]:xxxxxxx:cvs
[ユーザ2]:xxxxxxx:cvs
[ユーザ3]:xxxxxxx:cvs

▲ 目次へ戻る


tcpserver の設定

tcpserver のアクセス制御のルールファイルを作成します。アクセス制御が必要なければ作成する必要はありませんが、安全のため、設定しておいた方が良いと思います。

tcpserver の使い方については、tcpserver(ucspi-tcp) の使い方についてのメモを書いていますので、そちらも参考にしてください。

$ su -c 'vi /etc/tcp.cvs'
127.:allow
192.168.0.:allow
:deny

上のようにアクセス制御用のファイルを作成します(クライアントが 192.168.0.0/24 のネットワークの場合)。

次に、以下のようにして cdb ファイルを作成します。

$ su -c '/usr/local/bin/tcprules /etc/tcp.cvs.cdb /etc/tcp.cvs.tmp < /etc/tcp.cvs'

tcpserver を起動します。

$ /usr/local/bin/tcpserver -HR -l0 -x /etc/tcp.cvs.cdb 0 \
  cvspserver /usr/bin/cvs --allow-root=/home/cvsroot pserver &

▲ 目次へ戻る


cvs サーバを通してアクセスする

別のクライアントから cvs サーバにログインしてモジュールを登録、または、チェックアウトできるか確認してください。

$ export CVSROOT=:pserver:<ユーザ1>@192.168.0.1:/home/cvsroot
$ cvs login
<最初に設定したパスワードを入力>
$ cvs import <cvs リポジトリ名> <ベンダー名> <リリースタグ名>
$ cvs co <csv リポジトリ名>

CVSROOT に指定する値では、サーバ側の --allow-root で指定している値と全く同じディレクトリを指定してください。特に、最後のスラッシュが違うだけでもエラーになります。

▲ 目次へ戻る


更新履歴

バージョン : 1.1 ( 2003.03.23 )

DocBook 形式で書き直し。誤字、脱字の修正。

バージョン : 1.0 ( 2002.05.19 )

初版作成。公開。

▲ 目次へ戻る

LastUpdate: 2003-03-16 | メモ一覧 | HOME