FreeBSD ハンドブック : 開発の最前線: FreeBSD-current と FreeBSD-stable : インターネットを通じたソースツリーの同期 : CTM
Previous: Anonymous CVS
Next: CVSup

17.3.2. CTM

原作: Poul-Henning Kamp <phk@FreeBSD.ORG>. 更新: 19-October-1997.

訳: 花井浩之 <hanai@FreeBSD.ORG>
13 September 1997.

CTM はリモートのディレクトリツリーを中央のツリーに同期させるための 手段です. これはFreeBSDのソースツリーの配布を行なうために開発されまし たが, 時が経つにつれて別の目的にも有用であることがわかるかも しれません. デルタを作り出す処理に関するドキュメントは現在ほとんど ありません. 従って, もしあなたがCTM を他のことに使いたいなら Poul-Henning Kamp <phk@FreeBSD.ORG>にさらなる情報を問い合わせてください.

17.3.2.1. なぜCTMを使うの?

CTM を使うことにより FreeBSD ソースツリーのローカルコピー を手にいれることができます. ソースツリーが使えることの魅力は数多くあります. 完全な cvs ツリーを追いかけるにしても, ひとつのブランチを追いかける にしても CTM は必要な情報を与えてくれます. もしあなたがFreeBSDのアクティブな開発者であるにもかかわらず お粗末なTCP/IP接続しか持っていなかったり, またはTCP/IP接続が 行なえないとしたら, あるいは単に変更が自動的に送られてきて ほしいというのであれば CTMはそんなあなたのために 作られたのです. アクティブなブランチでは1日に最大三つまでのデルタを受け取る必 要があります. これが自動的に e-mail で送られてくるという方法を ぜひ検討してみてください. デルタのサイズは常にできるだけ小さく保たれています. 大抵の場合5KBよりも小さく, たまに(10回に1回程度)10-50KBになり, ときおり100KBかもっと大きくなる でしょう.

開発ソースから直接に得られたものを使うことについては, あらかじめ パッケージにされたリリースとは違い, いろいろと注意することが あります. これは特に ``current'' のソースを選んでいるときは 重要です. 最新の FreeBSDを追いかけるを読むことを お勧めします.

17.3.2.2. 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> へ送ってください.

17.3.2.3. はじめてCTMを使い始める

CTM デルタを使い始めるためには, これは以降作られる全ての デルタの出発点を手にいれる必要があります.

最初にあなたが何をすでに持っているかをはっきりさせましょう. すべての人は 「空」のディレクトリから始めなければなりません. ツリーをサポートしてるあなたの CTM を稼働するためには 指定した「空」のデルタを使う必要があります.いくつかの分岐点 では、あなたの都合により CD 内に分配されている「スタータ」 デルタを使用できるようになっています。しかしながら、これは 頻繁に行われることではありません。

適切な出発点が決まれば, その出発点を CTM が 維持するツリーへ変換するための「スタータ」初期デルタを使う 必要があります. 移行デルタは番号の後ろに``X''をつけたものがそうです (たとえばsrc-cur.3210XEmpty.gz). ``X'' の後ろは最初の開始ポイントに対応します. ``Empty'' は 空のディレクトリです。 ルールとして ``Empty'' からの移行デルタは 100 デルタごとに 作られます. ところで, これらは非常に大きいです! ``XEmpty''のデルタは 数十MBの gzip で圧縮されたデータというのが普通です.

一度スタートするためのベースデルタを得ると, それに続く多数の 全てのデルタも必要になるでしょう.

17.3.2.4. 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を使うことを考えてください.

17.3.2.5. ローカルの変更を保存する

開発者としてはソースツリー中のファイルを使って実験したり変更したく なるものです. CTM はローカルの変更を制限つきでサポートします: ファイル foo の存在をチェックする前に, foo.ctm を参照しにいきます. このファイルが存在する場合, CTM は foo の代りにこれを処理します.

この動作はローカルの変更を保持する簡単な手段を提供します: 単に変更したいファイルを拡張子 .ctm 付きのファイル名で コピーするだけです. あとは自由にコードをハックでき, .ctm ファイルの方は CTM が最新状態に保ってくれます.

17.3.2.6. 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 はそのファイルを処理します.

17.3.2.7. CTMの将来計画

重要なもの

残念なことに私は非常に忙しいです. 従ってこれを行なうどんな手助け でも歓迎します. その際, 自分が何をやりたいかを私に 言うのを忘れずに.

17.3.2.8. その他

「DESに染まった」(例えば, 国外への持ち出しが規制された)ソースは まったく含まれません. 手に入るのは「国際」バージョンだけです. もし興味のある人が多いようであれば, 我々は``sec-cur''シーケンスも セットアップするつもりです. portsコレクションに対するデルタのシーケンスもあります. しかし, まだあまり興味は持たれていないようです. もしこれに対するメーリング リストが欲しい時も私に言ってください. 我々はセットアップすることを 考えます.

17.3.2.9. ありがとう!

Bruce Evans <bde@FreeBSD.ORG>

辛辣なペンと価値のないコメントに対して.

Søren Schmidt <sos@FreeBSD.ORG>

よく辛抱してくれました.

Stephen McKay

ctm_[rs]mailを書いてくれました. とても感謝して います.

Jordan K. Hubbard <jkh@FreeBSD.ORG>

彼が頑固として譲らなかったため, 私もこの CTM をもっと良いものに しないわけにはいきませんでした. 彼の頑固さに感謝します.

ユーザの人みんな

気に入ってくれることを願っています...


FreeBSD ハンドブック : 開発の最前線: FreeBSD-current と FreeBSD-stable : インターネットを通じたソースツリーの同期 : CTM
Previous: Anonymous CVS
Next: CVSup