A.5. CTM を使う

訳: 花井 浩之 、1997 年 9 月 13 日

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

A.5.1. なぜ CTM を使うの?

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

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

A.5.2. CTMを使うには何が必要?

二つのものが必要でしょう: CTM プログラムとそれに与える (“current” レベルを得るための) 最初のデルタです。

CTM プログラムはバージョン 2.0 のリリース以来 FreeBSD の一部になりました。 もしソースのコピーを持っているなら /usr/src/usr.sbin/ctmにあります。

から入手できます。CTM に与える “デルタ” は二つの方法、FTP または e-mail、 で得ること ができます。 もしインターネットに FTP アクセスできるなら、 次の FTP サイト:

ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/

または、そのミラーサイトCTM へのアクセスをサポートします。

適切なディレクトリに FTP して README ファイルを入手し、そこからスタートしてください。

e-mail によってデルタを得たいという場合は:

CTM 配布メーリングリストのいずれかに参加してください。 ctm-cvs-cur は完全な CVS ツリー、 ctm-src-cur は開発先端ブランチに対応しています。ctm-src-7 は 7.X リリースのブランチに対応したものです (もし参加方法が分からない場合は、メーリングリスト名をクリックするか、 http://lists.FreeBSD.org/mailman/listinfo に行って参加したいメーリングリストをクリックしてください。 このページには、参加手順が詳しく書かれています)。

メールで CTM による更新ファイルを受け取り始めると、中身を取り出して使用 するために ctm_rmail プログラムを使うかもしれません。それを完全 に自動で行ないたいなら、/etc/aliases から ctm_rmailプロ グラムを直接使うこともできます。 さらに詳しいことは ctm_rmail manページを御覧ください。

注意: どの方法を使って CTM デルタを入手していたとしても、 ctm-announce メーリングリストには参加しておくといいでしょう。 このメーリングリストは将来的には CTM システムの操作に関する アナウンスがポストされる唯一の場になるでしょう。 メーリングリストに参加するには、上のメーリングリスト名をクリックして、 参加手順に従ってください。

A.5.3. はじめて CTM を使い始める

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

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

適切な出発点が決まれば、その出発点を CTM が 維持するツリーへ変換するための “スタータ” 初期デルタを使う必要が あります。

移行デルタは番号の後ろに X をつけたものがそうです (たとえば src-cur.3210XEmpty.gz)。 X の後ろは最初の開始ポイントに対応します。 Empty は 空のディレクトリです。 ルールとして Empty からの移行デルタは 100 デルタごとに 作られます。ちなみに、 これらは非常に大きくなります! XEmptyのデルタは 70 から 80MB の gzip で圧縮されたデータというのが普通です。

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

A.5.4. CTM を日常で使う

デルタを適用するためには、単に

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

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

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

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

A.5.6. CTM のその他の面白いオプション

A.5.6.1. 更新で変更されるファイルを正確に知る

CTM のソースリポジトリに対する変更のリストを -l オプションを使って決定することができます。

これは、変更のログを保存したい、 変更されたファイルをなんらかの方法で 前・後処理したい、 または単にこだわりたい場合には、 役に立つでしょう。

A.5.6.2. 更新前にバックアップを取る

CTM の更新によって変更されるファイルすべてのバックアップを 取りたくなることがあります。

-B backup-file オプションを指定すると CTM は デルタで変更されるファイルすべてを backup-file としてバックアップするようになります。

A.5.6.3. 更新で変更されるファイルを制限する

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

A.5.7. CTMの将来計画

重要なもの

A.5.8. その他

ports コレクションに対するデルタもあるのですが、 これに興味を持っている人はまだ少ないようです。

A.5.9. CTM サイト

CTM/FreeBSD は以下のミラーサイトから anonymous FTP によって入手できます。 もし CTM を anonymous FTP によって手にいれる場合は、 近くのサイトを利用するようにしてください。

何か問題がある場合は、ctm-users メーリングリストに相談してください。

カリフォルニア、サンフランシスコ近辺、 公式なソース
南アフリカ、ctm、sup、 CVSupなどの古い差分ファイルのバックアップサーバ
台湾/中華民国

近くにミラーサイトがない場合やミラーが不完全な場合は、 alltheweb のような検索エンジンを使ってみてください。

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。