原作: Poul-Henning Kamp
<phk@FreeBSD.ORG>
. 更新: 19-October-1997.
訳: 花井浩之
<hanai@FreeBSD.ORG>
13 September 1997.
CTM
はリモートのディレクトリツリーを中央のツリーに同期させるための
手段です. これはFreeBSDのソースツリーの配布を行なうために開発されまし
たが, 時が経つにつれて別の目的にも有用であることがわかるかも
しれません. デルタを作り出す処理に関するドキュメントは現在ほとんど
ありません. 従って, もしあなたがCTM
を他のことに使いたいなら
Poul-Henning Kamp
<phk@FreeBSD.ORG>
にさらなる情報を問い合わせてください.
CTM
を使うの?CTM
を使うことにより FreeBSD ソースツリーのローカルコピー
を手にいれることができます.
ソースツリーが使えることの魅力は数多くあります. 完全な cvs
ツリーを追いかけるにしても, ひとつのブランチを追いかける
にしても CTM
は必要な情報を与えてくれます.
もしあなたがFreeBSDのアクティブな開発者であるにもかかわらず
お粗末なTCP/IP接続しか持っていなかったり, またはTCP/IP接続が
行なえないとしたら, あるいは単に変更が自動的に送られてきて
ほしいというのであれば CTM
はそんなあなたのために
作られたのです.
アクティブなブランチでは1日に最大三つまでのデルタを受け取る必
要があります. これが自動的に e-mail で送られてくるという方法を
ぜひ検討してみてください.
デルタのサイズは常にできるだけ小さく保たれています.
大抵の場合5KBよりも小さく,
たまに(10回に1回程度)10-50KBになり, ときおり100KBかもっと大きくなる
でしょう.
開発ソースから直接に得られたものを使うことについては, あらかじめ パッケージにされたリリースとは違い, いろいろと注意することが あります. これは特に ``current'' のソースを選んでいるときは 重要です. 最新の FreeBSDを追いかけるを読むことを お勧めします.
CTM
を使うには何が必要?二つのものが必要でしょう: ``CTM
'' プログラムとそれに与える
(``current''レベルを得るための)最初のデルタです.
CTM
プログラムはバージョン2.0のリリース以来FreeBSDの一部にな
りました. もしソースのコピーを持っているなら
/usr/src/usr.sbin/
にあります.CTM
もしFreeBSDの2.0以前のバージョンなら, 最新のCTM
のソースを直接
ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm
から入手できます.
CTM
に与える「デルタ」は二つの方法, FTPまたはe-mail, で得ること
ができます.
もしインターネットにFTPアクセスできるなら, 次のFTPサイト:
ftp://ftp.FreeBSD.ORG/pub/FreeBSD/CTM
または、その
ミラーサイトがCTM
へのアクセスをサポートします.
適切なディレクトリにFTPしてREADME
ファイルを入手し, そこから
スタートしてください.
e-mail によってデルタを得たいという場合は:
CTM
配布メーリングリストのいずれかに参加するために
<majordomo@FreeBSD.ORG>
へ subscribe のメールを送ってください.
``ctm-cvs-cur'' は完全な cvs ツリー をサポートします.
``ctm-src-cur'' は開発先端ブランチをサポートします
``ctm-src-2_2'' は 2.2 リリースのブランチのサポートです.
(もしmajordomoを使って参加する方法を知らない
のであれば, 最初に``help''という語を含むメッセージを送ってください.
- 使い方の説明が送られてくるでしょう.)
メールでCTM
による更新ファイルを受け取り始めると, 中身を取り出して使用
するためにctm_rmail
プログラムを使うかもしれません. それを完全
に自動で行ないたいなら, /etc/aliases
からctm_rmail
プロ
グラムを直接使うこともできます.
さらに詳しいことはctm_rmail
manページを御覧ください.
注: CTM
デルタを得るためにどの方法を使うのであっても,
ctm-announce@FreeBSD.ORG
メーリングリストに参加するべきです.
このメーリングリストは将来的にはCTM
システムの操作に関する
アナウンスがポストされる唯一の場になるでしょう.
メーリングリストに加わるためには``subscribe ctm-announce
''
と書いた一行だけのメールを <majordomo@FreeBSD.ORG>
へ送ってください.
CTM
を使い始めるCTM
デルタを使い始めるためには, これは以降作られる全ての
デルタの出発点を手にいれる必要があります.
最初にあなたが何をすでに持っているかをはっきりさせましょう.
すべての人は 「空」のディレクトリから始めなければなりません.
ツリーをサポートしてるあなたの CTM
を稼働するためには
指定した「空」のデルタを使う必要があります.いくつかの分岐点
では、あなたの都合により CD 内に分配されている「スタータ」
デルタを使用できるようになっています。しかしながら、これは
頻繁に行われることではありません。
適切な出発点が決まれば, その出発点を CTM
が
維持するツリーへ変換するための「スタータ」初期デルタを使う
必要があります.
移行デルタは番号の後ろに``X
''をつけたものがそうです
(たとえばsrc-cur.3210XEmpty.gz
).
``X
'' の後ろは最初の開始ポイントに対応します. ``Empty'' は
空のディレクトリです。
ルールとして ``Empty'' からの移行デルタは 100 デルタごとに
作られます.
ところで, これらは非常に大きいです! ``XEmpty''のデルタは
数十MBの gzip で圧縮されたデータというのが普通です.
一度スタートするためのベースデルタを得ると, それに続く多数の 全てのデルタも必要になるでしょう.
CTM
を日常で使うデルタを適用するためには, 単に
cd /where/ever/you/want/the/stuff
ctm -v -v /where/you/store/your/deltas/src-cur.*
とします.
CTM
はどれがgzip
されているか理解します. 従って最初に
gunzipしておく必要はありません. ディスクの節約にもなります.
全体の処理に関して確信するまではCTM
は(ソース)ツリーに対して
何もしません.
また, デルタを確かめるためには``-c
''フラグを使うことができます.
このフラグがあるとCTM
はツリーに対して実際には何も行ないません.
単にデルタの完全性を確認し, 現在のツリーに問題なく使用できるかを確認
するだけです.
CTM
には他にもオプションがあります. 詳細に関しては
マニュアルページを参照するかソースを見てください.
もし誰かが「ユーザ インターフェース」の部分に関して助けてくれるなら 私はとても嬉しいです. なぜならどういうオプションが何を, どのよう に, いつ行なうようにするべきか決めかねているからです.
以上でやることは本当に全部です. 新しいデルタを入手した時には,
ソースを最新のものにするためにそれをCTM
に通すだけです.
もしデルタを再ダウンロードするのが骨の折れる作業であれば, デルタを
消さないでおいてください.
なにかおかしなことが起こった場合には置いておけば良かった
と思うかもしれません. もしフロッピーディスクしか持っていない状況
であってもコピーを取るのにfdwrite
を使うことを考えてください.
開発者としてはソースツリー中のファイルを使って実験したり変更したく
なるものです. CTM はローカルの変更を制限つきでサポートします:
ファイル foo
の存在をチェックする前に, foo.ctm
を参照しにいきます. このファイルが存在する場合, CTM は foo
の代りにこれを処理します.
この動作はローカルの変更を保持する簡単な手段を提供します:
単に変更したいファイルを拡張子 .ctm
付きのファイル名で
コピーするだけです. あとは自由にコードをハックでき, .ctm
ファイルの方は CTM が最新状態に保ってくれます.
CTM のソースリポジトリに対する変更のリストを ``-l
''
オプションを使って決定することができます.
これは, 変更のログを保存したい, 変更されたファイルをなんらかの方法で 前・後処理したい, または単にこだわりたい :-) 場合には, 役に立つでしょう.
CTM の更新によって変更されるファイルすべてのバックアップを 取りたくなることがあります.
``-B backup-file
'' オプションを指定すると CTM は
デルタで変更されるファイルすべてを backup-file
としてバックアップするようになります.
CTM の更新の範囲を制限したり一連のデルタのからほんの数ファイルを 抽出したくなることがあります.
``-e
'' と ``-x
'' オプションを用い正規表現を
指定することで, CTM が処理するファイルのリストを制御することが
できます.
例えば, lib/libc/Makefile
の最新のコピーを保存してある
CTM デルタのコレクションから抽出するには, 以下のコマンドを実行します.
cd /where/ever/you/want/to/extract/it/
ctm -e '^lib/libc/Makefile' ~ctm/src-cur.*
CTM デルタで指定されたファイルごとに, ``-e
'' そして
``-x
'' オプションがコマンドラインで指定された順序で
適用されます. すべての``-e
'' そして `-x
''
オプションが適用された後に更新対象と選択された場合に限り,
CTM はそのファイルを処理します.
CTM
の将来計画重要なもの
CTM
へのオプションを整理する. さもないと混乱し, 直観に反したもの
になります.残念なことに私は非常に忙しいです. 従ってこれを行なうどんな手助け でも歓迎します. その際, 自分が何をやりたいかを私に 言うのを忘れずに.
「DESに染まった」(例えば, 国外への持ち出しが規制された)ソースは
まったく含まれません. 手に入るのは「国際」バージョンだけです.
もし興味のある人が多いようであれば, 我々は``sec-cur
''シーケンスも
セットアップするつもりです.
ports
コレクションに対するデルタのシーケンスもあります. しかし,
まだあまり興味は持たれていないようです. もしこれに対するメーリング
リストが欲しい時も私に言ってください. 我々はセットアップすることを
考えます.
<bde@FreeBSD.ORG>
辛辣なペンと価値のないコメントに対して.
<sos@FreeBSD.ORG>
よく辛抱してくれました.
ctm_[rs]mail
を書いてくれました. とても感謝して
います.
<jkh@FreeBSD.ORG>
彼が頑固として譲らなかったため, 私もこの CTM
をもっと良いものに
しないわけにはいきませんでした. 彼の頑固さに感謝します.
気に入ってくれることを願っています...