CVSUP(1) | General Commands Manual | CVSUP(1) |
cvsup
— CVS
リポジトリ用のネットワーク配布パッケージ
cvsup
[-1aDeEgksvzZ
] [-A
addr] [-b
base] [-c
collDir] [-d
delLimit] [-h
host] [-i
pattern] [-l
lockfile] [-L
verbosity] [-p
port] [-P
m|a|port|lo-hi|-] [-r
maxRetries] supfile
[destDir]
CVSup
は、ファイル群の配布と更新をネットワーク上で行うための
ソフトウェアパッケージです。
CVSup
という名前はパッケージ全体を指します。
CVSup
はクライアントプログラムである
cvsup
とサーバプログラムである
cvsupd
からできています。
このマニュアルページは、
CVSup
パッケージの概要を説明し、クライアントプログラムである
cvsup
特有の事項も説明します。
cvsupd
の詳しい説明については、
cvsupd(8)
をご覧ください。
rdist
や sup
のような、より伝統的なネットワーク配布パッケージと異なり、
CVSup
は特に CVS
リポジトリの配布のために作られています。
CVSup
は CVS
リポジトリとリポジトリに含まれるファイル(特に
RCS ファイル)の
特性を生かし、伝統的なシステムよりもずっと高速な更新を可能にしています。
クライアントプログラム
cvsup
は、少なくとも一つの引数
supfile
を必要とします。
これは、サーバからの転送や更新が行われる
1
つ以上のファイルを記述した
ファイルです。
supfile は、 sup
で使われる同じ目的のファイルに似た形式です。
ほとんどの場合、
cvsup
は既存の
sup
supfiles
を使えます。
省略可能な引数 destDir も指定できます。 指定された場合には、この引数は更新された全てのファイルが置かれる ディレクトリを指定します。 destDir が指定されると、クライアントの元のファイルはそのまま残されます。 この機能は主にテストのためのものです。
cvsup
は以下のオプションをサポートしています:
-1
cvsup
はリトライを繰り返し行います。リトライの際には
ランダム化された指数的な一時退避(randomized
exponential backoff)
アルゴリズムを用いてリトライの間隔を確保します。
このオプションは
-r
0
と同等であり、GUI
を使う時には暗黙的に指定されたことになります。-a
-A
addr-b
basecvsup
が管理する記録ファイルを置くベースディレクトリを指定します。
この際には、
supfile による
base
の指定は全て上書きされます。-c
collDir-d
delLimit-D
cvsup
にファイルの削除だけを行わせ、どんな種類の更新も行いません。
このオプションは、クライアントのディスク容量が非常に少ないといった状況
で役に立ちます。ユーザはまず
-D
オプションを使って
cvsup
を実行してできる限りの容量を空けます。次にもう一度
cvsup
を実行しますが、今度は
-D
オプションは使いません。サーバ上でファイルやディレクトリの名前が変更さ
れた場合は、この方法を取ることにより、クライアント上で新しいファイルが
生成されるよりも前に、全ての古いファイルが削除されることが保証されます。
このオプションは、チェックアウトモードではまだ実装されていません。-e
execute
キーワードが追加されたかのように実行機能を有効にします。-E
execute
キーワードが追加されたかのように実行する機能を無効にします。-g
DISPLAY
環境変数が設定されていなければ、このオプションが暗黙的に指定されます。-h
hosthost
の指定は全て上書きされます。-i
patterncvsup
に指定します。ディレクトリがパターンにマッチする場合は、
そのディレクトリをルートとするサブツリー全体が含まれます。
このオプションが複数回指定された場合は、パターンは
‘or
’
操作で結合されます。
-i
オプションが指定されない場合のデフォルト動作では、各コレクションに含ま
れる全てのファイルが更新されます。
pattern は標準のファイル名パターンです。 これはコレクションのプレフィックスディレクトリからの相対パスで 解釈されます。 スラッシュ文字は、パターン中に陽にスラッシュが書かれた場合だけ マッチします。 ファイル名の先頭にピリオドがあっても、特別扱いはされません。
GUI には、パターンを編集できる入力フィールドがあります。
-k
-l
lockfilecvsup
は自動的なリトライを行うことなく失敗します。
このオプションが役に立つのは、
cron
を使って
cvsup
を定期的に実行する時です。
これは、あるジョブが、ネットワークの問題で予想以上の時間がかかっている
以前のジョブの邪魔をするのを防ぎます。
POSIX 形式のファイルロッキングが使われます。これは fcntl(2) で説明されています。 プロセス ID は、ロックファイルが正常に取得できた時に、このファイルに テキスト形式で書き込まれます。 更新の終了時にロックファイルは削除されます。
-L
verbositycvsup
は何も出力しません。
レベル 1
(デフォルト値)では、更新されたそれぞれのファイルが出力されます。
レベル 2
では、それぞれのファイルに対して行われた更新に関するさらに
詳しい情報が出力されます。
メッセージは全て、標準出力に出力されます。
GUI
が使われる場合は、このオプションは無視されます。-p
portcvsup
が接続を試みるサーバホストの
TCP
ポートを設定します。
この機能は主にテスト用です。デフォルト値は
5999 です。 passive モード(
-P
オプションの説明を参照)でなければ、サーバはこれより一つ小さい番号の
ポートを使って、クライアント向きの
2
つ目の接続を確立します。-P
m|a|port|lo-hi|-デフォルトでは、サーバが十分新しければチャネルは
multiplexed モードで
確立します。 multiplexed
モードは、1 つの TCP
接続を用いて 4
つのチャネルを作ります。
組み込みのパケット多重化層は、TCP
接続上にある異なる論理チャネルを
多重化します。これは
ssh
's
のポート転送機能とは異なるやり方で行われます。
これにより、非常に小さい(1%
未満)通信オーバーヘッドとごくわずかの
CPU
負荷がかかりますが、ほとんどどんな防火壁の中でも動作するはずです。
防火壁は、クライアントホストがサーバホストの
5999
番ポートへ接続を開始
することを許可していなければなりません。
これ以外には、特殊な許可は全く必要ありません。
明示的に multiplexed
モードを指定するには、
-P
m
オプションを使います。
multiplexed モードは SOCKS
プロキシサーバと組み合わせて使えます。
組み合わせて使うには、単に
m3socks
コマンドの元で
cvsup
を実行し、
-P
m
オプションを指定します。
active
モードは、双方向の
TCP 接続を 2 つ使って 4
つの片方向チャネルを
作ります。
クライアントからサーバへの元の接続は
2
つのチャネルを作り、
2 番目の TCP
接続が残りの 2
つのチャネルを作ります。
2 番目の TCP
接続を確立するために、サーバからクライアントへの接続が行
われます。 -P
a
で、クライアントはオペレーティングシステムが選んだポート上で
接続を待ちます。
多くのオペレーティングシステムは、この目的には
1024-5000 の範囲の
ポートを使います。
ユーザは -P
port
を使って特定のポートを指定できますし、
-P
lo-hi
を使ってある範囲のポートも指定できます。
これらのポート指定は
SOCKS
プロキシサーバでは使えません。
passive モードは、4
つの片方向チャネルを作るために
TCP 接続を使うとい
う点では似ています。
しかし、passive
モードでは 2 番目の TCP
接続を作るための接続は
クライアントからサーバに対して行われます。
passive
モードは、外向きの接続は許可するけれど内向きの接続は禁止してい
る防火壁の中にクライアントがいる場合に便利です。
passive
モードを選択するには、
-P
-
オプションを使います。
passive モードは SOCKS
プロキシサーバでは使えません。
SOCKS
プロキシサーバを使うための別モードです。
SOCKS モードでは、4 つの
TCP
接続が使われます。これらは全て片方向接続
だけです。 4
つの片方向 TCP
接続を使うことにより、SOCKS
プロキシサーバの制限を
回避します。これを行わなければ、デッドロックが起こってしまいます。
(信じるかどうかは別にして、SOCKS
サーバはブロッキング
I/O コールを使い
ます。) SOCKS モードは、
cvsup
が m3socks
コマンドの元で実行され、かつ
-P
オプションが指定されていない時に選択されます。
後述の
SOCKS
と組み合わせての CVSup
の利用
もご覧ください。
-r
maxRetriescvsup
は更新がうまく完了するまで何度でもリトライを行います。
リトライの間隔は、ランダム化された指数的な一時退避アルゴリズムを使って
決められます。 GUI
を使うと、暗黙的に
-r
0
が指定されます。
-r
0
は
-1
オプションと同じ意味である点に注意してください。-s
-s
オプションなしで
cvsup
を実行すべきです。
-s
オプションを指定しないと、
cvsup
はファイルごとに
stat(2)
システムコールを実行し、ファイルの属性がリストファイルの記録と一致する
かどうかを確認します。これにより、
CVSup
外部でのファイル変更は全て検出・訂正されることが保証されます。
-s
オプションを指定し、かつローカルでファイルが
1
つ以上変更された時の
結果は未定義です。ローカルファイルの損傷が訂正されないまま残ったり、
更新を取りこぼしたり、
cvsup
が実行途中で異常終了するかもしれません。
-v
-z
compress
キーワードを全てのコレクションに追加した時と同様です。-Z
compress
キーワードを全てのコレクションから削除した時と同様です。supfile
は、更新すべきファイルのコレクションを指定するテキストファイルです。
コメントは
‘#
’
で始まり、その行の最後まで続きます。コメントと空白を除くと空である行は
無視されます。残りのそれぞれの行は、サーバ定義のファイルのコレクション
で始まります。この行でコレクション名の後に続くのは、0
個以上のキーワード
または「キーワード=値」の組です。
デフォルトの設定は、コレクション名が
*default
である行で指定できます。
このデフォルトは、
supfile
内のそれ以降の行に適用されます。
*default
行は複数個あっても構いません。
新しい値は、
supfile
で前に指定されたデフォルト値に追加されるか、デフォルト値を上書きします。
コレクションに対して明示的に指定された値は、全てのデフォルト値を
上書きします。
特によく使われるキーワードを以下に示します:
release=
releaseNamerelease=cvs
をよく使います。CVS
でないコレクションでは、慣習的に
release=current
を使います。base=
basecvsup
が記録ファイルを置いて管理するディレクトリを指定します。
記録ファイルには、クライアントマシン上にある各コレクションの状態が
書かれます。
base
ディレクトリは既に存在していなければなりません。
cvsup
がこのディレクトリを作成することはありません。
base
ディレクトリのデフォルト値は
/usr/local/etc/cvsup です。prefix=
prefixcvsup
がこのディレクトリを作成することはありません。
特殊な場合として、
prefix が
‘SKIP
’
という名の存在しないファイルを指すシンボリックリンクである場合は、
cvsup
はそのコレクションをスキップします。
この場合でもコレクションに関係するパラメータの正しさはチェックされます
が、コレクションのファイルは全く更新されません。
この機能を使うと、一つのサイトの複数のマシンで標準の
supfile
を使いながら、更新するコレクションをマシンごとに制御することができます。
host=
hostnamecvsup
は、1
回の実行における全てのコレクションを同じホストから得ることを
必要とします。
異なる複数のホストからコレクションを更新したければ、
cvsup
を複数回実行しなければなりません。delete
cvsup
はファイルの削除を許可します。
このキーワードがなければ、ファイルは全く削除されません。
delete
キーワードがあると、
cvsup
はいわゆる
exact
モードに入ります。exact
モードでは、
CVSup
はできるだけクライアント側のファイルをサーバ側のファイルに対応させよう
とします。
これは、RCS
ファイルから個々の差分とシンボリックなタグを消すことと、
ファイル全体を消すことを含みます。
exact モードでは、
CVSup
は編集されたそれぞれのファイルをチェックサムを使って調べ、編集によって
サーバ上にあるマスターコピーと同一のファイルができることを保証します。
あるファイルについてチェックサムのテストが失敗したら、
CVSup
は最後の手段としてファイル全体を転送します。
一般的には、
CVSup
はサーバが知っているファイルだけを削除します。
クライアントのツリーに入っている追加のファイルは、excact
モードであっ
てもそのまま残されます。
より正確に述べると、
CVSup
が消そうとするファイルは
2 種類です:
CVSup
自身が生成または更新したファイル。use-rel-suffix
cvsup
が管理している各ファイルの名前に追加されるようにします。
詳しくは
リストファイル
を参照してください。compress
-z
コマンドラインオプションは、全てのコレクションに対して
compress
キーワードを有効にします。supfile
での指定とは無関係です。
同様に -Z
コマンドラインオプションは、全てのコレクションに対して
compress
オプションを無効にします。
norcs
norsync
strictrcs
CVSup
は RCS
ファイルに対してもっと緩いチェックサムを用います。これは、
空白文字による無意味な違いを無視します。異なるバージョンの
CVS と RCS は、同じ RCS
ファイルに対しても空白が様々に異なります。
したがって厳密なチェックサムを取ると、論理的には同じであるファイルに対
して意味がない不一致を報告するかもしれません。これにより不要な
“fixups”
が大量に行われ、更新が遅くなることがあります。nocheckrcs
delete
キーワードが指定されていなければ、このオプションが自動的に
有効になります。execute
preserve
cvsup
に、可能な全ての属性をサーバからクライアントに転送しようと試みさせます。
サポートされる属性はホストのプラットフォームとクライアントのプラットフォーム
に依存します。FreeBSD
システムでは、以下の属性がサポートされています:
これらのうち、最初の
4 つの属性は
preserve
キーワードで制御します。5
つ目はどんな場合でも保存されます。
preserve
キーワードは、ユーザファイルや
CVS
リポジトリの更新に使うためのもので
はありません。
これは、ホストの全体のファイルツリーを正確に複製するといった特殊な目的
のためだけに使われます。
preserve
が指定されていると、サーバホストとクライアントホストの何らかの違いが
問題を起こすかもしれません。
例えば、クライアントマシン上に存在しない所有者が所有するファイルを
クライアントが受け取った場合、オーナを保存することはできません。
同様にこれによって意図しないパーミッションが設定されることがあります。
さらに、それ以降の更新では、毎回クライアント上のファイルの所有者を訂正
しようとして失敗し、時間と帯域幅を無駄にしてしまうでしょう。
最後になりますが、
preserve
モードはネットワークのトラフィックを増大させ、更新を遅くします。
preserve
モードを正しく機能させるためには、クライアントは
root のアクセス権限で
実行しなければなりません。
クライアントが root
でなければ、所有者、グループ、フラグの情報を保存し
ようとする機能は無効になります。
preserve
キーワードは、checkout
モードでは無視されます。
umask=
ncvsup
に umask 値
n (8
進値)を使わせます。
このオプションは、
preserve
が指定されていると無視されます。いくつかの追加的で、より専門的なキーワードについては後述します。
sup
との後方互換性のため、認識できなかったキーワードは黙って無視されます。
cvsup
は
GUI(グラフィカルユーザインタフェース)を持っており、これを使うとユー
ザは更新中の進行状況と処理を監視できます。この
GUI は、コマンドライン
オプション -g
が指定されるか、
DISPLAY
環境変数が設定されていなければ無効になります。
GUI には、 “Filter”
入力フィールドがあります。ここにパターンを入力して、更新するファイルを
制限することができます。
パターンは -i
オプションの指定と同様に記述します。
複数のパターンを入力する際には、空白で区切らなければなりません。
現在のところは、 supfile で指定されたパラメータを GUI で変更することはできません。 この点は将来のリリースでの計画になっています。 どちらかというと必要ないものではありますが、GUI は見て楽しいものです。
CVSup
は、2
つの主な動作モードをサポートしています。
これらは
CVS
モードと
checkout
モードと呼ばれるものです。
CVS モードでは、クライアントはマスターの CVS リポジトリを構成している 実際の RCS ファイルのコピーを受信します。CVS モードはデフォルトの動作 モードです。 このモードは、CVS リポジトリの完全なコピーをクライアントマシン上でメン テナンスしようとユーザが考えている場合には適しています。
CVS モードは、CVS リポジトリベースでないファイルのコレクションに対して もうまく使えます。この場合にはファイルは解釈されることなく、単にそのま ま転送されます。
checkout
モードでは、クライアントは特定のリビジョンのファイルを受信し
ます。これはサーバの
CVS
リポジトリから直接チェックアウトされます。
checkout
モードを使うと、クライアントは任意のバージョンをリポジトリか
ら取得できます。この際、チェックアウトされる時の形で複数個のバージョン
をサーバ上に持つ必要はありません。
しかし、checkout
モードでは、その基本機能よりもずっと柔軟に動作させる
ことができます。
います。
クライアントは CVS
のシンボリックタグを指定できますし、任意の日付の指
定もできます。両方を指定することもできます。また
CVSup
は、この指定に対応するファイルをリポジトリ内からチェックアウト形式で取
り出すことができます。
checkout モードはコレクション別に指定します。指定は、 supfile 内に以下のキーワードの一つあるいは両方を含めることによって行います:
tag=
tagnameFreeBSD のソースリポジトリの場合は、以下のタグがよく使われます:
date=
[cc]yy.mm.dd.hh.mm.ss現時点では、日付のフォーマットは柔軟ではありません。17
文字あるいは 19
文字の全てを、説明したフォーマットで正確に指定しなければなりません。
2000
年以降の場合は、世紀を
cc
で指定します。
これより前の年の場合は、最後の
2 桁だけを yy
で指定します。
日付と時刻は GMT
で扱います。
デフォルトの日付は
‘.
’
です。これは
“できるだけ新しいもの”
という意味です。
checkout
モードを有効にするためには、少なくともこれらのキーワードの
いずれかを指定しなければなりません。
どちらも指定されていなければ、
CVSup
はデフォルトの CVS
モードで動作します。
ブランチタグと日付が両方とも指定されると、指定されたブランチ上の 指定された日付の時点のリビジョンがチェックアウトされます。 日付を特定のリリースタグに付けて指定することもできますが、あまり役には 立たないでしょう。
checkout
モードでは、タグや日付を更新と更新の間に変えられます。
例えば、
‘tag=.
’
という指定を使ってコレクションが転送されたとしましょう。
ユーザは後から指定を
‘tag=RELENG_3
’
に変えられます。
これを指定すると、
CVSup
はチェックアウトされたファイルを編集し、
‘current
’
バージョンが
‘stable
’
バージョンになるようにします。
一般的には、
CVSup
はどんなタグ/日付の組合せであっても、他のタグ/日付の組合せに変換してく
れます。変換は、両者の間にある
RCS
の差分を既存のファイルに適用するこ
とによって行います。
チェックアウトされたファイルのコレクションを、あるタグから別のタグに
変換するときには、変換の前後で必ず同じリストファイルが使われるようにす
るため、 supfile
ファイル中で
list
キーワードを指定することが重要です。
リストファイルは次の
リストファイル
の節で説明します。
効率のため、
cvsup
は各コレクションについての記録ファイルを管理しています。
これをリストファイルと呼びます。
リストファイルには、クライアントが現在持っているファイルとリビジョンに
関する情報が書かれています。
このファイルには、クライアントのツリーに入っている実際のファイルと
リストファイルが一致していることを確認するための情報も書かれています。
厳密に言うとリストファイルは必要ではありません。このファイルが削除され
るか、クライアントが持っている実際のファイルとの不一致が起こると、
cvsup
は最後の手段として少し効率の悪い方法でクライアント側のファイルの識別と
更新を行います。
この際には、
CVSup
の動作モードによって、タイムスタンプ、チェックサム、RCS
ファイルの
解析結果などが使われます。
リストファイルは不可欠ではないので、
cvsup
は FTP や CD-ROM
から入手した既存のファイルツリーを「利用」できます。
cvsup
はクライアント側のファイルのバージョンを識別し、必要に応じてこれを更新
します。さらに、将来使うためにリストファイルを生成します。
他のシステムが作ったファイルツリーを使う場合の動作は、通常の更新ほど
高速ではありません。
また、サーバにかかる負荷も高くなります。
リストファイルはコレクション固有のディレクトリに保存されます。詳しくは
ファイル
セクションをご覧ください。
リストファイルの名前は必ず
‘checkouts
’
で始まります。
supfile
内でキーワード
use-rel-suffix
が指定されていると、リリースとタグから作ったサフィックスがファイル名に
追加されます。
デフォルトのサフィックスは、
supfile
で明示的にサフィックスを指定することにより上書きされます:
list=
suffixlist=stable
’
とすると、
checkouts.stable
という名前のリストファイルが作られます。この場合には、リリース、タグ、
use-rel-suffix
キーワードは関係ありません。ユーザは受け取りたくないファイルの集合を指定できます。 こういったファイルは、いわゆる refuse ファイル内でファイル名パターンとして指定されます。 パターンは空白文字で区切られ、各行には複数個のパターンを置くことができます。 パターンにマッチするファイルとディレクトリは、更新も削除もされません。 これらのファイルは単に無視されます。
現在は、refuse ファイル内にコメントに書く方法はありません。
パターンは sh(1)
のそれと似ていますが、スラッシュの特別扱いや、ピリオドで始まるファイル
の特別扱いがない点が異なります。
例えば、パターン
‘*.c
’ は
‘.c
’
で終わる全てのファイルにマッチします。これには
‘foo/bar/lam.c
’
といったサブディレクトリ内のファイルも含まれます。
全てのパターンはコレクションのプレフィックスディレクトリからの相対パス
として解釈されます。
これらファイルが
CVS
リポジトリから得たものならば——普通はそうなのです
が——これらは RCS
ファイルとなります。これらのファイルには、
‘,v
’
というサフィックスが付きます。パターンについてはサフィックスも考慮に入
れなければなりません。例えば、FreeBSD
の文書ファイルは
‘doc
’ という
base
ディレクトリのサブディレクトリに入っています。
そのディレクトリにある
‘Makefile
’
が不要な場合に
と指定してもうまく動作しません。なぜなら、サーバ上にあるファイルは
‘Makefile,v
’
だからです。
もっとよい解決方法は、
と指定することです。この指定であれば、
‘Makefile
’ が RCS
ファイルであろうとなかろうとマッチします。
別の例としては、日本語、ロシア語、中国語の翻訳を避けて FreeBSD 文書 ファイルを取得するには、以下の行を含む refuse ファイルを作ります:
それぞれの supfile 行は、3 つの refuse ファイルによって調べられます。 大域的な refuse ファイルとして base/collDir/refuse があります。これは全てのコレクションとリリースに適用されます。 コレクション別の refuse ファイルとして base/collDir/collection/refuse があります。これは特定のコレクションに適用されます。 最後に、リリースとタグ別の refuse ファイルがあります。これは、 コレクション内の指定されたリリース/タグの組み合わせに対してのみ適用さ れます。 最後の refuse ファイルの名前は、コレクション別の refuse ファイルの名 前にサフィックスを加えることによって付けられます。これは先に説明したリ ストファイルと同じ方法です。 どんな種類の refuse ファイルも存在しなくてもかまいません。
cvsup
は、
collDir に対する
base と sup
の組み込みのデフォルト値を
/usr/local/etc/cvsup
に持っていますが、どちらの値も上書き可能です。
base の値は
-b
オプションまたは
supfile
ファイル中の
base=pathname
エントリで変更できます。
(両方指定した場合は、
-b
オプションの方が
supfile
のエントリよりも優先されます。)
collDir の値は
-c
オプションでしか変更できません。これを変更する
supfile
コマンドはありません。
例えば、 base
と collDir
の両方にデフォルト値が設定されており、コレクションが
‘src-all
’
でリリースが
‘cvs
’
である場合を考えます。
さらに、
‘tag=RELENG_3
’
に対して checkout
モードが使われているものとします。
この場合、refuse
ファイルの名前としては以下の
3 つが考えられます:
supfile がコマンド base=/foo を含んでいる場合、refuse ファイルは以下のようになります:
-b
/bar
が使われている場合(
supfile
ファイル中に
base=/foo
コマンドがあっても):
そして -c
stool
も使われている場合:
CVSup
は認証機構を備えており、これを使ってクライアントとサーバがお互いの身元
を確認することができます。この機構は、パケット盗聴やリプレイ攻撃の影響
を受けない challenge-response
プロトコルを用いています。ネットワーク上
では、パスワードはどちらの向きにも流れません。クライアントとサーバのい
ずれも、お互いの身元を独立に確認できます。
ファイル
$
HOME
/.cvsup/auth
には認証に使われる情報が書かれています。このファイルには、クライアント
がアクセス可能な各サーバについてのレコードが入っています。それぞれの
レコードは、ファイル中に
1 行で書かれます。
‘#
’
で始まる行は無視されます。空白文字だけの行も同様です。ただし、ファイル
中の他の場所では空白文字も意味を持ちます。フィールドは
‘:
’
文字で区切られます。
ファイルの各レコードは以下の形式です:
serverName:clientName: password:comment
たとえ空であっても、全てのフィールドは存在しなければなりません。
ServerName
はレコードが適用されるサーバ名です。慣習的に、これはカノニカルかつ完全
にドメイン名が指定されたサーバ名です(例:
‘CVSup177.FreeBSD.ORG
’ )。
これはサーバが自分の名前と考えているホスト名でなければなりません。
名前については大文字・小文字は区別されません。
ClientName
はクライアントがサーバへのアクセス権を得るときに使う名前です。慣習的に、
クライアント名には全て
e-mail
アドレスが使われます(例:
‘BillyJoe@FreeBSD.ORG
’
)。クライアント名では大文字・小文字は区別されません。
Password
は秘密の文字列であり、クライアントが身元を証明するために使います。
パスワード文字列は
‘:
’
や改行文字を含んではいけません。
Comment はレコードを識別するための付加的な情報を持ちます。プログラムに解釈され ることはありません。
指定されたサーバに対する認証の設定を行うには、以下の手順を実行しなけれ ばなりません:
cvpasswd
ユーティリティを実行し、質問に対して
パスワード
を入力します。このユーティリティはサーバの管理者に送る行を出力し、
それからユーザの
$
HOME
/.cvsup/auth
ファイルの修正手順を示します。この行をサーバ管理者に送るには、安全な
手段を使うべきです。$
HOME
/.cvsup/auth
にはパスワードが入っているので、必ず自分以外には誰も読めないようにして
ください。
認証はそれぞれの向きで独立に動作します。サーバの管理者は、
ユーザが身元を証明しなければならないかどうかを制御します。
ユーザはサーバの身元をチェックするかどうかを制御します。制御には
-a
コマンドラインオプションを使います。
CVSup
は CVS
リポジトリ用に最適化されているので、汎用的なミラーリングとして
非常にうまく動作します。
CVSup
はどんな種類のファイルの更新にも使えます。
symlink
と rsymlink
コマンドが指定されていると更新されます。詳しくは
cvsupd(8)
をご覧ください。cvsup
は、様々な設定の防火壁を超えるために数多くのモードを用意しています。
これらのモードは
-P
オプションか、
m3socks
コマンドを使って制御できます。
cvsup
を使えるようにするには、防火壁はサーバホストの
5999
番ポートへの外向き
の接続を最低限許可しなければなりません。
この条件が満たされていれば、SOCKS
の有無に関わらず多重モード
(-P
m
)
が動作するはずです。
もう少し防火壁の制限が緩ければ、passive
モードや他のモードの一つを使っ
て、効率を少し上げることができます。
詳しくは -P
オプションの説明をご覧ください。
特定の種類の防火壁と CVSup を組み合わせて使う際の情報については、 ⟨http://www.polstra.com/projects/freeware/CVSup/⟩ にある CVSup FAQ をご覧ください。
SOCKS
プロキシサーバ経由での通信は、現在は
FreeBSD
上でしかサポートさ
れていません。
これを用いるためには、port
として用意されている
修正版の Modula-3
の実行時システム(
lang/modula-3-lib
)とアドオンの SOCKS
ライブラリ(
lang/modula-3-socks
)が必要です。
また、SOCKS
ライブラリは動的リンク技術を使うので、
cvsup
の実行ファイルは完全に動的リンクされている必要があります。
FreeBSD の port の net/cvsup
は、必要に応じて
cvsup
を完全に動的にリンクします。
SOCKS
の動作を有効にするには、単に
lang/modula-3-socks
パッケージに含まれる
m3socks
と組み合わせて
cvsup
を実行してください。
詳細については
m3socks(1)
をご覧ください。
防火壁の内側のユーザは、SOCKS
の代替品として、Secure Shell
パッケージの ssh
が持っている TCP
ポート転送機能を使って防火壁を通過できます。
これを行うためには、ユーザは
CVSup
のサーバホストにログインアカウントが必要です。
手順を以下に示します:
ssh
を使ってサーバホストとの接続を確立します:
ssh -f -x -L 5999:localhost:5999 serverhost sleep 60
普通は serverhost
を CVSup
サーバのホスト名に置き換えるのですが、ここでは
‘localhost
’
を入力します。
これにより、ポート転送に必要な設定ができます。
60 秒経って sleep
が終わるまでに
cvsup
を起動しなければなりません。
いったん更新が始まると、
ssh
は必要な間、転送チャネルをオープンした状態を保ちます。
cvsup
を実行します。コマンドラインには以下の行を含めます:
‘-h localhost -P m
’$
HOME
/.cvsup/authctm(1), cvpasswd(1), cvs(1), cvsupd(8), m3socks(1), rcsintro(1), ssh(1)
http://www.polstra.com/projects/freeware/CVSup/
John Polstra ⟨jdp@polstra.com⟩
RCS ファイルは
‘,v
’
で終わっていなければ
RCS
ファイルと認識されません。
‘Attic
’
という名前のディレクトリは
CVS Attic
として特別扱いされます。
SOCKS
ライブラリまたはサーバのバグのため、大部分の形式の
-P
オプションは
SOCKS では使えません。
多重モード (-P
m
)
を使えますが、他の形式の
-P
オプションは受け付けられません。
GUI と一部のウィンドウマネージャ(特に FVWM)の相性が良くありません。 FVWM のバージョン 1, 2 のどちらでも問題が起こるのですが、バージョン 2 の方がまだましのようです。
Style "cvsup"
ClickToFocus
という行を FVWM2 の
.fvwmrc
に追加するとかなりよくなります。
この問題はどうやらウィンドウマネージャのバグが原因らしく、GUI
が ‘WM_TAKE_FOCUS
’
プロトコルを使うと起こるようです。
回避策としては、
-g
オプションを使って、GUI
を完全に無効にするとよいでしょう。
August 31, 1999 | FreeBSD |