3947840b05
Interpretation of a chunk in cut.1 was helped by: Yoshihiko Sarumaru <mistral@imasy.or.jp>, hrs
312 lines
8 KiB
Groff
312 lines
8 KiB
Groff
.\"----------------------------------------------------------------------------
|
|
.\""THE BEER-WARE LICENSE" (Revision 42):
|
|
.\"<joerg@FreeBSD.org> wrote this file. As long as you retain this notice you
|
|
.\"can do whatever you want with this stuff. If we meet some day, and you think
|
|
.\"this stuff is worth it, you can buy me a beer in return. Joerg Wunsch
|
|
.\"----------------------------------------------------------------------------
|
|
.\"
|
|
.\" This manual page is partially obtained from Poul-Hennings CTM README
|
|
.\" file.
|
|
.\"
|
|
.\" CTM and ctm(1) by <phk@FreeBSD.org>
|
|
.\"
|
|
.\" %FreeBSD: src/usr.sbin/ctm/ctm/ctm.1,v 1.27 2004/07/02 23:12:40 ru Exp %
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd March 25, 1995
|
|
.Os
|
|
.Dt CTM 1
|
|
.Sh 名称
|
|
.Nm ctm
|
|
.Nd ソースコードをミラーするプログラム
|
|
.Sh 書式
|
|
.Nm ctm
|
|
.Op Fl cFklquv
|
|
.Op Fl b Ar basedir
|
|
.Op Fl B Ar backup-file
|
|
.Op Fl e Ar include-regex
|
|
.Op Fl t Ar tar-command
|
|
.Op Fl T Ar tmpdir
|
|
.Op Fl V Ar level
|
|
.Op Fl x Ar exclude-regex
|
|
.Ar
|
|
.Sh 解説
|
|
.Nm
|
|
ユーティリティは、元々
|
|
.Dq Cvs Through eMail
|
|
でしたが、今は代わりに
|
|
.Dq Current Through eMail
|
|
と呼ぶのがふさわしいようです。
|
|
.Pp
|
|
.Nm
|
|
ユーティリティは、
|
|
今や 2 つのバージョンのディレクトリツリーの間でデルタを作成して
|
|
適用するための最も信頼できる方法を意味します。
|
|
.Pp
|
|
これにはデルタの作成と適用という 2 つの部分があります。2 つは
|
|
全く異なるものです。
|
|
.Ss 使用例
|
|
CTM デルタを適用するには、それを
|
|
.Nm
|
|
コマンドに渡します。CTM デルタを標準入力、またはファイル名を引数として
|
|
渡すことができます。後者の方法を取ると、とても簡単に
|
|
することができます。なぜなら このプログラムは gzip で圧縮された
|
|
ファイルを受け付けて、ファイルの一時的なコピーを作る必要が無いからです。
|
|
複数のデルタを一度に指定でき、それらは一度にひとつずつ処理されます。
|
|
すでに適用されているデルタは無視されます。
|
|
.Pp
|
|
.Nm
|
|
コマンドの実行はたくさんのパスにわかれています。
|
|
次のパスを始める前に、それぞれのパスで入力ファイルの全体が処理されます。
|
|
.Pp
|
|
.Ar name
|
|
で指定されたファイルを処理する前に
|
|
.Nm
|
|
は まず
|
|
.Ar name.ctm
|
|
というファイルが存在するかどうかをチェックします。
|
|
存在すれば、
|
|
.Nm
|
|
は、かわりにそちらを処理します。
|
|
.Pp
|
|
パス 1 では、入力ファイルが正常かどうかを確認します。
|
|
文法、データ、全体の MD5 によるチェックサムがチェックされます。
|
|
いずれか 1 つでも異常があれば、
|
|
.Nm
|
|
は単純に入力ファイルを拒否します。
|
|
.Pp
|
|
パス 2 ではディレクトリツリーが CTM デルタの期待している状態に
|
|
なっているかどうかを確認します。これは存在する/しないはずの
|
|
ファイルとディレクトリを捜して
|
|
ファイルの MD5 によるチェックサムをチェックすることで行われます。
|
|
.Pp
|
|
もし
|
|
.Ar backup-file
|
|
が
|
|
.Fl B
|
|
オプションで指定されていると、その
|
|
.Nm
|
|
の呼び出しで変更されるファイルが
|
|
.Fl t
|
|
オプションで指定されたアーカイバコマンドを使って、そのファイルに
|
|
バックアップされます。デフォルトのアーカイバコマンドは
|
|
.Nm "tar -rf %s -T -"
|
|
です。
|
|
.Pp
|
|
パス 3 では実際にデルタが適用されます。
|
|
.Pp
|
|
.Nm
|
|
によって変更されるファイルのリストは、
|
|
.Fl e
|
|
と
|
|
.Fl x
|
|
オプションで指定された正規表現によるフィルタの対象になります。
|
|
.Fl e
|
|
と
|
|
.Fl x
|
|
オプションは、コマンドラインで指定された順に適用されます。
|
|
与えられたファイル名に最後にマッチしたフィルタが、そのファイルを
|
|
.Nm
|
|
の適用対象とするかどうかを決定します。
|
|
.Pp
|
|
.Nm
|
|
ユーティリティは、その作業ディレクトリ下にファイルの階層を展開します。
|
|
絶対パスや
|
|
.Sq Pa .\&
|
|
と
|
|
.Sq Pa ..\&
|
|
の参照を含むファイル名は、セキュリティのために明確に禁止されています。
|
|
.Ss オプション
|
|
.Bl -tag -width indent
|
|
.Pp
|
|
.It Fl b Ar basedir
|
|
各ファイル名に
|
|
.Ar basedir
|
|
で指定されたパスを前置します。
|
|
.Pp
|
|
.It Fl B Ar backup-file
|
|
この CTM の実行で変更されるすべてのファイルを
|
|
.Ar backup-file
|
|
にバックアップします。
|
|
.Fl e
|
|
と
|
|
.Fl x
|
|
オプションで何らかのフィルタが指定されると、
|
|
CTM の実行時にフィルタが適用され、変更されたファイルが、
|
|
最終的にバックアップされるファイルのセットとなります。
|
|
.Pp
|
|
.It Fl c
|
|
確認だけを行ない、他には何もしません。
|
|
.Pp
|
|
.It Fl e Ar regular_expression
|
|
CTM ファイル中の各ファイル名が
|
|
.Ar regular_expression
|
|
にマッチするかどうかを調べ、マッチすればそのファイルを処理し、
|
|
マッチしなければ何もせずそのまま残します。
|
|
このオプションは何個でも指定できます。このオプションを指定すると
|
|
.Pa .ctm_status
|
|
のシーケンス番号のチェックが行なわれません。
|
|
例えば、
|
|
.Ic ^usr.sbin/ctm
|
|
と指定すると、
|
|
.Pa usr.sbin/ctm
|
|
というソースディレクトリと、その下のすべてのパス名を指定した事に
|
|
なります。
|
|
.Pp
|
|
CTM の処理対象からパス名を外すには
|
|
.Fl x
|
|
オプションを使います。
|
|
.It Fl F
|
|
強行します。
|
|
.It Fl k
|
|
ファイルとディレクトリを保存し、CTM ファイルで削除するように
|
|
指定されているものでも削除しません。
|
|
.Fl B
|
|
オプションが指定されると、そのファイルとディレクトリは
|
|
バックアップされません。
|
|
.It Fl l
|
|
その CTM の実行で変更されるはずのファイルと、それに対して
|
|
行われるアクションをリストします。
|
|
.Fl l
|
|
オプションを使うと
|
|
.Pa .ctm_status
|
|
のチェックと作業対象のソースツリーの正当性チェックが行なわれません。
|
|
.Fl l
|
|
オプションは、
|
|
.Fl e
|
|
と
|
|
.Fl x
|
|
オプションを組み合わせることで、与えるコマンドラインオプションで
|
|
どのファイルが変更されるかを見定めることができます。
|
|
.It Fl q
|
|
表示を減らします。
|
|
.It Fl t Ar tar-command
|
|
デフォルトのアーカイバである
|
|
.Nm tar
|
|
の代わりに
|
|
.Ar tar-command
|
|
を使います。
|
|
このオプションは、バックアップファイルが
|
|
.Fl B
|
|
オプションで指定された場合にのみ効果があります。
|
|
tar command 中には一つだけ %s を置くことができ、
|
|
バックアップファイルの名前に置き換えられます。
|
|
.It Fl T Ar tmpdir
|
|
一時ファイルを
|
|
.Ar tmpdir
|
|
に置きます。
|
|
.It Fl u
|
|
作成、変更されるファイルの更新時刻を CTM デルタが作成された
|
|
時刻に設定します。
|
|
.It Fl v
|
|
表示を増やします。
|
|
.It Fl V Ar level
|
|
表示を増やします。
|
|
.Ar level
|
|
は饒舌さの程度です。
|
|
.It Fl x Ar regular_expression
|
|
CTM ファイル中の各ファイル名を
|
|
.Ar regular_expression
|
|
とマッチするかどうかを調べ、マッチすればそのファイルを除外します。
|
|
このオプションは何個でも指定できます。このオプションを指定すると
|
|
.Pa .ctm_status
|
|
のシーケンス番号のチェックが行なわれません。
|
|
.Pp
|
|
CTM の処理対象にパス名を加えるには
|
|
.Fl e
|
|
オプションを使います。
|
|
.Pp
|
|
.El
|
|
.Sh セキュリティ
|
|
CTM 自身、
|
|
安全ではないプロトコルです
|
|
- ソースコードへ加えられた修正が信頼できるところから送られたことを
|
|
認証しませんので、
|
|
通常の電子メール等の信頼できない媒体から
|
|
CTM デルタを得た場合には注意が必要です。
|
|
CTM デルタを偽造して、正当なものを交換または上書きし、
|
|
悪意あるコードをあなたのソースツリーに挿入することは、
|
|
攻撃者にとって比較的簡単です。
|
|
正当なデルタの到着がなんらかの方法で妨げられた場合、
|
|
これを感知できるのは、後のデルタが同じファイルを触ろうとする時点です。
|
|
この時点で、MD チェックサムが失敗します。
|
|
.Pp
|
|
これを回避して安全なものにするために、
|
|
FreeBSD.org が作った CTM 部品には、
|
|
GNU Privacy Guard ユーティリティ互換なフォーマットで暗号的に署名しています。
|
|
このユーティリティは /usr/ports/security/gpg および
|
|
Pretty Good Privacy v5 ユーティリティ
|
|
/usr/ports/security/pgp5 から入手できます。
|
|
適切な公開鍵は ctm@FreeBSD.org を finger することで得られます。
|
|
.Pp
|
|
このように署名された CTM デルタは、
|
|
検知されることなく攻撃者が改変することはできません。
|
|
それゆえ、CTM デルタを電子メールで受信する場合には、
|
|
GPG または PGP5 を使用して署名を確認することを勧めます。
|
|
.Sh 環境変数
|
|
.Ev TMPDIR
|
|
にパス名がセットされていると、ctm は一時ファイルの置き場所として
|
|
そのパス名を使います。
|
|
これに関しての詳細は
|
|
.Xr tempnam 3
|
|
を参照して下さい。
|
|
同じ効果は
|
|
.Fl T
|
|
フラグでも得られます。
|
|
.Sh 関連ファイル
|
|
.Pa .ctm_status
|
|
には、最後に適用した CTM デルタのシーケンス番号が含まれます。
|
|
このファイルを変更したり削除したりすると、
|
|
.Nm
|
|
は、とても混乱します。
|
|
.Pp
|
|
.Fl e
|
|
と
|
|
.Fl x
|
|
オプションを使うとソースツリーの一部分を更新することができ、
|
|
ソースを一貫性のない状態にすることになります。
|
|
これらのオプションを使うときには、何をしているのかを理解していることが
|
|
仮定されています。
|
|
.Sh 使用例
|
|
.Bd -literal
|
|
cd ~cvs
|
|
/usr/sbin/ctm ~ctm/cvs-*
|
|
.Ed
|
|
.Pp
|
|
`lib' 以下のすべてのソースを取り出してパッチを当てるには
|
|
以下のようにします。
|
|
.Bd -literal
|
|
cd ~/lib-srcs
|
|
/usr/sbin/ctm -e '^lib' ~ctm/src-cur*
|
|
.Ed
|
|
.Sh 診断
|
|
充分に説明的であるはずの沢山のメッセージが出力されます。
|
|
.Dq ノイズレベル
|
|
は
|
|
.Fl q ,
|
|
.Fl v ,
|
|
.Fl V
|
|
オプションで調整できます。
|
|
.Sh 関連項目
|
|
.Xr ctm_rmail 1 ,
|
|
.Xr ctm 5
|
|
.Sh 歴史
|
|
最初の試みは
|
|
.Fx 1.1.5
|
|
の作業中に行われました。そして、たくさんの
|
|
バグと手法について徹底的に議論されました。
|
|
.Pp
|
|
.Nm
|
|
コマンドは
|
|
.Fx 2.1
|
|
から登場しました。
|
|
.Sh 作者
|
|
CTM システムは
|
|
.An Poul-Henning Kamp Aq phk@FreeBSD.org
|
|
によってデザインされ実装されました。
|
|
.Pp
|
|
このマニュアルページは
|
|
.An Joerg Wunsch Aq joerg@FreeBSD.org
|
|
が書きました。
|
|
.Sh 日本語訳
|
|
野首 寛高(h-nokubi@nmit.mt.nec.co.jp): FreeBSD 用に翻訳
|