CTM(1) FreeBSD 一般コマンドマニュアル CTM(1)
名称
ctm − ソースコードをミラーするプログラム |
書式
ctm [−cFklquv] [−b basedir] [−B backup-file] [−e include-regex] [−t tar-command] [−T tmpdir] [−V level] [−x exclude-regex] file ... |
解説 |
ctm ユーティリティは、元々 ‘‘Cvs Through eMail’’ でしたが、今は代わりに ‘‘Current Through eMail’’ と呼ぶのがふさわしいようです。 ctm ユーティリティは、今や 2 つのバージョンのディレクトリツリーの間でデル タを作成して適用するための最も信頼できる方法を意味します。 これにはデルタの作成と適用という 2 つの部分があります。2 つは全く異なるも のです。 |
使用例 |
CTM デルタを適用するには、それを ctm コマンドに渡します。CTM デルタを標準 入力、またはファイル名を引数として渡すことができます。後者の方法を取る と、とても簡単にすることができます。なぜなら このプログラムは gzip で圧縮 されたファイルを受け付けて、ファイルの一時的なコピーを作る必要が無いから です。複数のデルタを一度に指定でき、それらは一度にひとつずつ処理されま す。すでに適用されているデルタは無視されます。 ctm コマンドの実行はたくさんのパスにわかれています。次のパスを始める前 に、それぞれのパスで入力ファイルの全体が処理されます。 name で指定されたファイルを処理する前に ctm は まず name.ctm というファイ ルが存在するかどうかをチェックします。存在すれば、 ctm は、かわりにそちら を処理します。 パス 1 では、入力ファイルが正常かどうかを確認します。文法、データ、全体の MD5 によるチェックサムがチェックされます。いずれか 1 つでも異常があれば、 ctm は単純に入力ファイルを拒否します。 パス 2 ではディレクトリツリーが CTM デルタの期待している状態になっている かどうかを確認します。これは存在する/しないはずのファイルとディレクトリを 捜してファイルの MD5 によるチェックサムをチェックすることで行われます。 もし backup-file が −B オプションで指定されていると、その ctm の呼び出し で変更されるファイルが −t オプションで指定されたアーカイバコマンドを使っ て、そのファイルにバックアップされます。デフォルトのアーカイバコマンドは tar -rf %s -T - です。 パス 3 では実際にデルタが適用されます。 ctm によって変更されるファイルのリストは、 −e と −x オプションで指定され た正規表現によるフィルタの対象になります。 −e と −x オプションは、コマン ドラインで指定された順に適用されます。与えられたファイル名に最後にマッチ したフィルタが、そのファイルを ctm の適用対象とするかどうかを決定します。 ctm ユーティリティは、その作業ディレクトリ下にファイルの階層を展開しま す。絶対パスや ‘.’ と ‘..’ の参照を含むファイル名は、セキュリティのために 明確に禁止されています。 |
オプション |
−b basedir
各ファイル名に basedir で指定されたパスを前置します。 −B backup-file −c −e regular_expression CTM の処理対象からパス名を外すには −x オプションを使います。 −F −k −l −q −t tar-command −T tmpdir −u −v −V level −x regular_expression CTM の処理対象にパス名を加えるには −e オプションを使います。 セキュリティ |
CTM 自身、安全ではないプロトコルです - ソースコードへ加えられた修正が信頼 できるところから送られたことを認証しませんので、通常の電子メール等の信頼 できない媒体から CTM デルタを得た場合には注意が必要です。 CTM デルタを偽 造して、正当なものを交換または上書きし、悪意あるコードをあなたのソースツ リーに挿入することは、攻撃者にとって比較的簡単です。正当なデルタの到着が なんらかの方法で妨げられた場合、これを感知できるのは、後のデルタが同じ ファイルを触ろうとする時点です。この時点で、MD チェックサムが失敗します。 これを回避して安全なものにするために、 FreeBSD.org が作った CTM 部品に は、 GNU Privacy Guard ユーティリティ互換なフォーマットで暗号的に署名して います。このユーティリティは /usr/ports/security/gpg および Pretty Good Privacy v5 ユーティリティ /usr/ports/security/pgp5 から入手できます。適切 な公開鍵は ctm@FreeBSD.org を finger することで得られます。 このように署名された CTM デルタは、検知されることなく攻撃者が改変すること はできません。それゆえ、CTM デルタを電子メールで受信する場合には、 GPG ま たは PGP5 を使用して署名を確認することを勧めます。 |
環境変数
TMPDIR にパス名がセットされていると、ctm は一時ファイルの置き場所としてそ のパス名を使います。これに関しての詳細は tempnam(3) を参照して下さい。同 じ効果は −T フラグでも得られます。 |
関連ファイル
.ctm_status には、最後に適用した CTM デルタのシーケンス番号が含まれます。 このファイルを変更したり削除したりすると、 ctm は、とても混乱します。 −e と −x オプションを使うとソースツリーの一部分を更新することができ、ソー スを一貫性のない状態にすることになります。これらのオプションを使うときに は、何をしているのかを理解していることが仮定されています。 |
使用例
cd ~cvs /usr/sbin/ctm ~ctm/cvs-* ‘lib’ 以下のすべてのソースを取り出してパッチを当てるには以下のようにしま す。 cd ~/lib-srcs /usr/sbin/ctm -e ’^lib’ ~ctm/src-cur* |
診断
充分に説明的であるはずの沢山のメッセージが出力されます。 ‘‘ノイズレベル’’ は −q, −v, −V オプションで調整できます。 |
関連項目
歴史
最初の試みは FreeBSD 1.1.5 の作業中に行われました。そして、たくさんのバグ と手法について徹底的に議論されました。 ctm コマンドは FreeBSD 2.1 から登場しました。 |
作者
CTM システムは Poul-Henning Kamp 〈phk@FreeBSD.org〉 によってデザインされ実 装されました。 このマニュアルページは |
日本語訳
野首 寛高(h-nokubi@nmit.mt.nec.co.jp): FreeBSD 用に翻訳 FreeBSD 10.0 March 25, 1995 FreeBSD 10.0 |