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ページを御覧ください。

Note: どの方法を使って 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> まで電子メールを (英語で) 送ってください。