訳: 花井 浩之 <hanai@FreeBSD.org>
、1997 年 9 月 13
日
CTM はリモートのディレクトリツリーを中央のツリーに同期させるための 手段です。 これは FreeBSD のソースツリーの配布を行なうために開発されまし たが、時が経つにつれて別の目的にも有用であることがわかるかも しれません。 デルタを作り出す処理に関するドキュメントは現在ほとんど ありません。従って、もしあなたがCTM を他のことに使いたいなら ctm-users メーリングリストにさらなる情報を問い合わせてください。
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にあります。
から入手できます。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 システムの操作に関する アナウンスがポストされる唯一の場になるでしょう。 メーリングリストに参加するには、上のメーリングリスト名をクリックして、 参加手順に従ってください。
CTM デルタを使い始めるためには、これは以降作られる全ての デルタの出発点を手にいれる必要があります。
最初にあなたが何をすでに持っているかをはっきりさせましょう。 すべての人は “空” のディレクトリから始めなければなりません。 ツリーをサポートしてるあなたの CTM を稼働するためには 指定した “空” のデルタを使う必要があります。いくつかの分岐点 では、あなたの都合により CD 内に分配されている “スタータ” デルタを使用できるようになっています。しかしながら、これは 頻繁に行われることではありません。
適切な出発点が決まれば、その出発点を CTM が 維持するツリーへ変換するための “スタータ” 初期デルタを使う必要が あります。
移行デルタは番号の後ろに X をつけたものがそうです (たとえば src-cur.3210XEmpty.gz)。 X の後ろは最初の開始ポイントに対応します。 Empty は 空のディレクトリです。 ルールとして Empty からの移行デルタは 100 デルタごとに 作られます。ちなみに、 これらは非常に大きくなります! XEmptyのデルタは 70 から 80MB の 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 によって手にいれる場合は、 近くのサイトを利用するようにしてください。
何か問題がある場合は、ctm-users メーリングリストに相談してください。
近くにミラーサイトがない場合やミラーが不完全な場合は、 alltheweb のような検索エンジンを使ってみてください。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で)
連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で)
送ってください。