FreeBSD ハンドブック
Prev | Appendix A. FreeBSD の入手方法 | Next

# A.5. CTM を使う

訳: 花井 浩之 `<hanai@FreeBSD.org>`、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-4 は 2.2 リリースのブランチに対応したものです (もし参加方法が分からない場合は、メーリングリスト名をクリックするか、 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` を参照しにいきます。 このファイルが存在する場合、CTM は `foo` の代りにこれを処理します。

この動作はローカルの変更を保持する簡単な手段を 提供します: 単に変更したいファイルを拡張子 `.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の将来計画

重要なもの

- なんらかの CTM システムへの認証機構を用い、不正な CTM の更新の検出を可能とする。

- CTM へのオプションを整理する。さもないと混乱し、 直観に反したものになります。

## A.5.8. その他

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

## A.5.9. CTM サイト

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

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

カリフォルニア、サンフランシスコ近辺、 公式なソース

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

南アフリカ、ctm、sup、 CVSupなどの古い差分ファイルのバックアップサーバ

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

台湾/中華民国

  - ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/

  - ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/

  - ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/

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

Prev | Home | Next
Anonymous CVS | Up | CVSup を使う