CVS は `rsh' プロトコルを用いて動作します。 この時サーバ側の使用者の `.rhosts' に、 クライアント側の使用者の利用許可を記述する必要があります。
例えば、 仮にあなたをクライアント側のマシン `anklet.grunge.com' の使用者 `mozart' だとし、 サーバ側のマシンは `chainsaw.brickyard.com' であるとします。 この時、次の行を `chainsaw' の使用者 `bach' のホーム・ディレクトリの ファイル `.rhosts' に記述して下さい。
anklet.grunge.com mozart
そして、rsh
の動作を次の行で確認します。
rsh -l bach chainsaw.brickyard.com 'echo $PATH'
次に rsh
が、
サーバを発見できるかどうか確認する必要があります。
上記の例で rsh
が表示したパスの中に、
サーバである cvs
のあるディレクトリが
含まれているかどうか確認して下さい。
`.login' や `.profile' でなく、
`.bashrc', `.cshrc' 等に
パスを設定する必要があります。
同時に、クライアント側で環境変数 CVS_SERVER
に、
`/usr/local/bin/cvs-1.6' などと、
使用したいサーバ名を設定できます。
`inetd.conf' を編集したり、 CVS のサーバ・デーモンを走らせる必要はありません。
rsh
経由で $CVSROOT
を利用するときに
指定できる接続経路は二つあります。
:server:
を指定した場合、
CVS が内部実装した rsh
のクライアントが用いられますが、
移植版では利用できないものもあります。
:ext:
を指定した場合、外部の rsh
プログラムが用いられます。
rsh
が既定となっていますが、
サーバを利用できる他のプログラムを呼び出す場合は、
環境変数 CVS_RSH
に設定して下さい
(例えば HP-UX 9 では、
rsh
が少々異なるため remsh
を用いて下さい)。
指定するプログラムは、データを変更しないで送受信できなくてはいけません。
例えば Windows NT の rsh
は、
既定では CRLF を LF に換えるので不適当です。
CVS の OS/2 版はこれを回避するため、
rsh
に `-b' を渡して切り抜けていますが、
標準的な rsh
でないプログラムを黙認する形になるので、
将来は別のやり方になるでしょう。
CVS_RSH
に SSH
等の rsh
の代替物を設定した場合、
この節の残りの `.rhosts' の使用説明などは、
おそらく不適当でしょうから、
各 rsh
の代替物の文書資料を参照して下さい。
例を続けて、仮に `chainsaw.brickyard.com' の リポジトリ `/usr/local/cvsroot/' 中の モジュール `foo' を利用したい場合には、 次の様にします:
cvs -d :ext:bach@chainsaw.brickyard.com:/usr/local/cvsroot checkout foo
(クライアント側とサーバ側で、使用者名が同じ場合には、 `bach@' を省略することが出来ます。)