ちょうどいい機会なので自宅でもCVSサーバーを立ち上げてみました。
環境はdebian + kernel 2.4.32 + cvs 1.11.1p1debian-11 で行いました。
まずはdebian なので以下のコマンドでサクっとインストール
$ sudo apt-get install cvs

デフォルト設定のまま了解を押す。

個人で使用するサーバーなので「いいえ」を選択しました。
業務で使用する場合には「はい」を選んだほうがいいかもしれません。

ここで「はい」を押すと、inetdからの起動となります。
※inetdはセキュリティ上のリスクが大きく、
1.クラッカーなどにinetd.confを書き換えられてから起動、
2.inetd.confを元に戻す。
などのことにより管理者が気が付かないまま、何かのサービスが動いていることがあります。
とは言え、色々と調べてた結果、inetdからの起動が一番簡単だとのことなので、
渋々inetdから起動とした。
cvs を利用するユーザの作成
% sudo useradd -d /home/cvsroot cvs
% chmod 777 /home/cvsroot
cvsの作業ディリクトリを指定、初期化
% su cvs
% cvs -d /home/cvsroot init
% cd /home/cvsroot
% chmod 777 /home/cvsroot/CVSROOT
/etc/inetd.conf に以下の行を追加
cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot pserver
※複数のレポジトリを作成する場合には以下のように複数書きます
cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/lfll/cvs/yourfilecache --allow-root=/home/lfll/cvs/ivrmaker pserver
パスワードの作成
$ sudo htpasswd -c passwd cvs
New password:
Re-type new password:
Adding password for user cvs
htpasswd はapache に含まれているパスワード管理ツールです。
-c passwd はpasswdというファイルを作成する。という意味です。
上記のコマンドを/CVSROOT 以下のディレクトリで実行すると、カレントディレクトリにpasswdというファイルが作成されます。
ファイルの中身は暗号化されていて、以下の様になります。
$ cat passwd
cvs:8OTHCBj4a5X8k
編集し、ユーザー名を追加します。
cvs:8OTHCBj4a5X8k:cvs
あとはinetdを再起動すればCVSサーバの構築完了です。
$ sudo /etc/init.d/inetd restart
CVSの入門書ならこれがお勧め。
※2009/08/01 追記
Debian5でのCVSサーバー構築は、以前書いた内容とは手順がかなり異なっている。
・chroot jailで動くようになったため、より安全になった。
・inetdでの動作ではなく、インストール段階でcvsdとして動作するようになった。
これに伴いinetd.confの変更は不要となった。
新たな手順としてはcvsdでのインストール時に
chroot jailの場所を決める。私の場合、/home/cvsroot/ とした。
chroot jail内でディレクトリを作成する。
# mkdir yourfilecache
ディレクトリの初期化
# cvs -d /home/cvsroot/yourfilecache/ init
パスワードの設定
# cvsd-passwd /home/cvsroot/yourfilecache/ cvs
/usr/sbin/cvsd-passwd: adding user 'cvs' to '/home/cvsroot/yourfilecache/CVSROOT/passwd'
Enter new password:
Retype new password:
/etc/cvsd/cvsd.conf ファイルにレポジトリの登録
最後の行あたりに、chroot jailから見たディレクトリの場所を追記する。
Repos /yourfilecache
これだけで、cvsの新たなレポジトリが完成する。
以前よりもパスワードの生成などで若干手順が楽になったようだ。