This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
訳: Hiroyuki HANAI <hanai@FreeBSD.org>, 1997 年 9 月 13 日.
CTM はリモートのディレクトリツリーを中央のツリーに同期させるための 手段です. これはFreeBSDのソースツリーの配布を行なうために開発されまし たが, 時が経つにつれて別の目的にも有用であることがわかるかも しれません. デルタを作り出す処理に関するドキュメントは現在ほとんど ありません. 従って, もしあなたがCTM を他のことに使いたいなら Poul-Henning Kamp <phk@FreeBSD.org>にさらなる情報を問い合わせてください.
CTM を使うことにより FreeBSD ソースツリーのローカルコピーを手にいれることができます. ソースツリーが使えることの魅力は数多くあります. 完全な cvs ツリーを追いかけるにしても, ひとつのブランチを追いかける にしても CTM は必要な情報を与えてくれます. もしあなたがFreeBSDのアクティブな開発者であるにもかかわらず お粗末なTCP/IP接続しか持っていなかったり, またはTCP/IP接続が 行なえないとしたら, あるいは単に変更が自動的に送られてきて ほしいというのであれば CTM はそんなあなたのために 作られたのです. アクティブなブランチでは 1 日に最大三つまでのデルタを受け取る必要があります. これが自動的に e-mail で送られてくるという方法を ぜひ検討してみてください. デルタのサイズは常にできるだけ小さく保たれています. 大抵の場合5KBよりも小さく, たまに(10回に1回程度)10-50KBになり, ときおり100KBかもっと大きくなるでしょう.
開発ソースから直接に得られたものを使うことについては, あらかじめパッケージにされたリリースとは違い, いろいろと注意することが あります. これは特に ``current'' のソースを選んでいるときは重要です. 最新の FreeBSD を追いかけるを読むことをお勧めします.
二つのものが必要でしょう: 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ページを御覧ください.
Note: CTM デルタを得るためにどの方法を使うのであっても, <ctm-announce@FreeBSD.org> メーリングリストに参加するべきです. このメーリングリストは将来的には CTMシステムの操作に関する アナウンスがポストされる唯一の場になるでしょう. メーリングリストに加わるためにはsubscribe ctm-announce と書いた一行だけのメールを <majordomo@FreeBSD.org> へ送ってください.
CTM デルタを使い始めるためには, これは以降作られる全ての デルタの出発点を手にいれる必要があります.
最初にあなたが何をすでに持っているかをはっきりさせましょう. すべての人は ``空''のディレクトリから始めなければなりません. ツリーをサポートしてるあなたの CTM を稼働するためには 指定した``空'' のデルタを使う必要があります. いくつかの分岐点 では, あなたの都合により CD 内に分配されている``スタータ'' デルタを使用できるようになっています. しかしながら, これは 頻繁に行われることではありません.
適切な出発点が決まれば, その出発点を CTM が 維持するツリーへ変換するための ``スタータ'' 初期デルタを使う必要が あります.
移行デルタは番号の後ろに X をつけたものがそうです (たとえばsrc-cur.3210XEmpty.gz). X の後ろは最初の開始ポイントに対応します. Empty は 空のディレクトリです. ルールとして Empty からの移行デルタは 100 デルタごとに 作られます. ところで, これらは非常に大きいです! XEmptyのデルタは 数十MBの gzip で圧縮されたデータというのが普通です.
一度スタートするためのベースデルタを得ると, それに続く多数の全てのデルタも必要になるでしょう.
デルタを適用するためには, 単に
# cd /where/ever/you/want/the/stuff # ctm -v -v /where/you/store/your/deltas/src-xxx.*
とします.
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-xxx.*
CTM デルタで指定されたファイルごとに, -e そして -x オプションがコマンドラインで指定された順序で適用されます. すべての-e そして -x オプションが適用された後に更新対象と選択された場合に限り, CTM はそのファイルを処理します.
重要なもの
なんらかの CTM システムへの認証機構を用い, 不正な CTM の更新の検出を可能とする.
CTM へのオプションを整理する. さもないと混乱し, 直観に反したものになります.
ports コレクションに対するデルタもあるのですが, これに興味を持っている人はまだ少ないようです. もしこれに対するメーリングリストが欲しい時はセットアップを行ないますので, わたしの方まで連絡ください.
CTM/FreeBSD は以下のミラーサイトから anonymous FTP によって入手できます. もし CTM を anonymous FTP によって手にいれる場合は, 近くのサイトを利用するようにしてください.
何か問題がある場合は, Poul-Henning Kamp <phk@FreeBSD.org>に連絡してください.
近くにミラーサイトがない場合やミラーが不完全な場合は, http://ftpsearch.ntnu.no/ftpsearch の FTP search を試してください. FTP search はノルウェーの Trondheim にある, フリーの素晴らしい アーカイブサーバです.