ctm(1) FreeBSD 一般コマンドマニュアル

ctm

前のページ 上に戻る 次のページ

ctm


         [-t tar-command] [-T tmpdir] [-V level] [-x exclude-regex] file ...


解説

     ctm は、元々 ``Cvs Through eMail'' でしたが、今は代わりに ``Current
     Through eMail'' と呼ぶのがふさわしいようです。

     ctm は、今や 2 つのバージョンのディレクトリツリーの間でデルタを作成して適
     用するための最も信頼できる方法を意味します。

     これにはデルタの作成と適用という 2 つの部分があります。2 つは全く異なるも
     のです。

   B>使B>用B>例
     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 は、その作業ディレクトリ下にファイルの階層を展開します。絶対パスや
     `.' と `..' の参照を含むファイル名は、セキュリティのために明確に禁止され
     ています。

             CTM ファイル中の各ファイル名が regular_expression にマッチするか
             どうかを調べ、マッチすればそのファイルを処理し、マッチしなければ
             何もせずそのまま残します。このオプションは何個でも指定できます。
             このオプションを指定すると .ctm_status のシーケンス番号のチェック
             が行なわれません。例えば、 ^usr.sbin/ctm と指定すると、
             usr.sbin/ctm というソースディレクトリと、その下のすべてのパス名を
             指定した事になります。

             CTM の処理対象からパス名を外すには -x オプションを使います。
     -F      強行します。
     -k      ファイルとディレクトリを保存し、CTM ファイルで削除するように指定
             されているものでも削除しません。 -B オプションが指定されると、そ
             のファイルとディレクトリはバックアップされません。
     -l      その CTM の実行で変更されるはずのファイルと、それに対して行われる
             アクションをリストします。 -l オプションを使うと .ctm_status の
             チェックと作業対象のソースツリーの正当性チェックが行なわれませ
             ん。 -l オプションは、 -e-x オプションを組み合わせることで、
             与えるコマンドラインオプションでどのファイルが変更されるかを見定
             めることができます。
     -q      表示を減らします。
     -t tar-command
             デフォルトのアーカイバである tar の代わりに tar-command を使いま
             す。このオプションは、バックアップファイルが -B オプションで指定
             された場合にのみ効果があります。 tar command 中には一つだけ %s を
             置くことができ、バックアップファイルの名前に置き換えられます。
     -T tmpdir
             一時ファイルを tmpdir に置きます。
     -u      作成、変更されるファイルの更新時刻を CTM デルタが作成された時刻に
             設定します。
     -v      表示を増やします。
     -V level
             表示を増やします。 level は饒舌さの程度です。
     -x regular_expression
             CTM ファイル中の各ファイル名を regular_expression とマッチするか
             どうかを調べ、マッチすればそのファイルを除外します。このオプショ
             ンは何個でも指定できます。このオプションを指定すると .ctm_status
             のシーケンス番号のチェックが行なわれません。

             CTM の処理対象にパス名を加えるには -e オプションを使います。


セキュリティ

     CTM 自身、安全ではないプロトコルです - ソースコードへ加えられた修正が信頼
     できるところから送られたことを認証しませんので、通常の電子メール等の信頼
     できない媒体から CTM デルタを得た場合には注意が必要です。 CTM デルタを偽
     造して、正当なものを交換または上書きし、悪意あるコードをあなたのソースツ
     リーに挿入することは、攻撃者にとって比較的簡単です。正当なデルタの到着が
     なんらかの方法で妨げられた場合、これを感知できるのは、後のデルタが同じ
     ファイルを触ろうとする時点です。この時点で、MD チェックサムが失敗します。

     これを回避して安全なものにするために、 FreeBSD.org が作った CTM 部品に
     は、 GNU Privacy Guard ユーティリティ互換なフォーマットで暗号的に署名して
     います。このユーティリティは /usr/ports/security/gpg および Pretty Good
     このファイルを変更したり削除したりすると、 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 オプションで調整できます。


関連項目

     ctm_rmail(1), ctm(5)


歴史

     最初の試みは FreeBSD 1.1.5 の作業中に行われました。そして、たくさんのバグ
     と手法について徹底的に議論されました。

     ctm コマンドは FreeBSD 2.1 から登場しました。


作者

     CTM システムは Poul-Henning Kamp <phk@FreeBSD.org> によってデザインされ実
     装されました。

     このマニュアルページは
     Joerg Wunsch <joerg@FreeBSD.org> が書きました。


日本語訳

     野首 寛高(h-nokubi@nmit.mt.nec.co.jp): FreeBSD 用に翻訳

FreeBSD 4.4                     March 25, 1995                     FreeBSD 4.4

ABELNET VPSサービス