19.2. -CURRENT vs. -STABLE

FreeBSD には二つの開発ブランチがあります. それは -CURRENT と -STABLE です. この章ではそれぞれについて簡単に説明し, どのようにしてあなたのシステムを対応するツリーに対して, どうやって常に最新の状態に保つかについて扱います. まずは -CURRENT, 次に -STABLE について説明します.

訳: 花井 浩之 , 1996 年 11 月 6 日.

19.2.1. 最新の FreeBSDを 追いかける

これを読む前に, 心にとめておいて欲しいことがあります. -CURRENT とは FreeBSD の開発の"最前線"だということです. もし FreeBSD を使い始めたばかりなら, これを運用することについて十分検討を重ねた方が良いでしょう.

19.2.1.1. FreeBSD-current ってなに?

FreeBSD-CURRENT とは文字通り, 日々変更されている FreeBSD のソースのスナップショット以外の何ものでもありません. 中には現在開発途上のソフトウェア, 実験的な変更, あるいは過渡的な機能などが含まれています. また, この中に入っている機能がすべて, 次の公式リリースに入るとは限りません. FreeBSD-CURRENT をソースからほぼ毎日コンパイルしている人は たくさんいますが, 時期によってはコンパイルさえできない状態になっていることもあります. 一般的に, これらの問題は可能な限り迅速に解決されますが, FreeBSD-CURRENT のソースが不幸をもたらすか, それとも非常に素晴らしい機能をもたらすかというのは文字通り, ある与えられた 24 時間の間の, どの部分であなたがソースを手に入れたかによる場合もあるのです.

19.2.1.2. 誰が FreeBSD-current を必要としてるの?

FreeBSD-CURRENT は, 主に次の三つの重要なグループを対象としています.

  1. ソースツリーのある部分に関して活発に作業している FreeBSD グループのメンバ. 彼らにとっては"最新のもの"にしておくのが 絶対に必要なことなのです.

  2. 活発にテストしている FreeBSD グループのメンバ. 彼らは, FreeBSD-CURRENT が"健全である"ことを可能な限り確認するために, 種々の問題と戦う時間を惜しまない人々です. 彼らはまた, 様々な変更に関する提案や FreeBSD の大まかな方向付けを行ないたいと思っている 人々でもあります.

  3. 単に, 様々な事に目を向け, 参考のために (たとえば動かすためではなく読むために) 最新のソースを使いたいと思っている FreeBSD (または他の) グループのまわりにいるメンバ. これらの人々はまた, 時々コメントやコードを寄稿してくれます.

19.2.1.3. FreeBSD-CURRENT に期待してはいけないことは?

  1. なにか新しくカッコイイモノがあると聞き, 自分の周囲では一番にそれを持ちたいがために, リリース前のコードの断片を追いかけること.

  2. バグを修正するための素早い方法.

  3. わたしたちが"公式にサポートする"こと. わたしたちは 3 つの"公式な" FreeBSD-CURRENT のグループの一つに, 実際に属する人々を助けるのにベストを尽くしますが, 技術的なサポートを行なうには, 単に「時間が足りない」のです. これはわたしたちが外の人を助けるの好まない, ケチで意地悪い人間だということではなく (もしそうなら FreeBSD なんかやっていません), 文字通りわたしたちは一日に 400 ものメッセージに答え, かつ FreeBSD の作業をすることなど出来ない! ということなのです. もし, たくさんの質問に答えるか, それとも FreeBSD を良くする作業を続けるか, という選択が与えられた場合, あなた方のほとんどは後者を支持するとわたしは確信しています.

19.2.1.4. FreeBSD-CURRENT を使う

  1. FreeBSD-current メーリングリスト と FreeBSD CVS commit メッセージ メーリングリスト に加わってください. これは単に良い考えであるというだけでなく, 必須のことなのです. もし FreeBSD-current メーリングリストに入っていなければ, さまざまな人がシステムの現在の状態について 述べているコメントを見ることは決してありませんし, 従って他の人が既に見つけて解決している 多くの問題に戸惑ってあきらめてしまうでしょう. さらに言うと, システムを正常に保つための 重要な情報を見逃してしまう可能性もあります.

    FreeBSD CVS commit メッセージ メーリングリスト メーリングリストでは, それぞれの変更についての commit ログを見ることができます. また, それに関して起こり得る副作用の情報を得ることができますので, 参加する価値のあるメーリングリストです.

    これらのメーリングリストに入るには,

        subscribe freebsd-current
        subscribe cvs-all

    と書いたメールを送ってください. オプションとして本文に help と書けば, Majordomo からあなたへ, わたしたちがサポートする様々なメーリングリストに参加 /脱退する方法に関する, 詳しいヘルプが送られます.

  2. ftp.FreeBSD.org からのソースの入手. 以下の 3 つの方法で行なうことができます.

    1. cvsupこの supfile を用いて使用する. これは 2 番目に推薦される方法です. なぜなら, cvsup によって一度全体を入手し, 後は変更されたところだけを入手することができるからです. たくさんの人が自動的にソースを最新のものに保つために cvsup を cron から起動しています. これを行なうための非常に簡単な方法は, 単に

          # pkg_add -f \
      ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz

      とタイプすることです.

    2. ftp を使う. FreeBSD-current のソースツリーは常に ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/"公開"されています. わたしたちはまた, 全体を compress/tar して入手できる wu-ftpd を使っています. たとえば,

          usr.bin/lex

      があったとすると,

          ftp> cd usr.bin
          ftp> get lex.tar

      とすることにより, ディレクトリ全体(この場合, usr.bin/lex以下全体) を tar ファイルとして入手することができます.

    3. CTMを用いる. (接続料が高額だったり, e-mail でのアクセスしかできないような) あまり良質でない TCP/IP 接続の場合には, CTM を利用すると良いでしょう. ただし, これには多くの手間がかかりますし, 壊れたファイルを受けとってしまう可能性もあります. そのため, 最近ではあまり使われなくなっており, 長い間使用できなくなってしまう事態が発生する可能性があります (訳注: 保守する人が少ないためです). 9600bps 以上の速度で接続しているなら, CVSup を利用されることを推奨します.

  3. もし, ソースを眺めるだけでなく, 走らせるために入手しているのであれば, 一部だけ選ぶのではなく, current の全体を手に入れてください. なぜなら, ソースのさまざまな部分が他の部分の更新に依存しており, 一部のみをコンパイルしようとすると, ほぼ間違いなくトラブルを起こすからです.

    current をコンパイルする前に /usr/src にある Makefile を良く読んでください. アップグレードの処理の一部として, 少なくとも一回は最初に make world を行なうべきでしょう. FreeBSD-current メーリングリスト を読めば, 次のリリースへ向けて時々必要になる他のブートストラップの方法に関して, 常に最新情報を得ることが出来ます.

  4. アクティブになって下さい! もし FreeBSD-CURRENT を走らせているなら, わたしたちはそれに関するコメント, 特に拡張やバグ潰しに関する提案, を欲しています. コードを伴う提案はもっとも歓迎されるものです!

19.2.2. FreeBSD の安定状態の持続

あなたが FreeBSD をプロダクション環境下で使っていて -CURRENT 系列からの修正の最新版を得ていることを確実にしたいなら -STABLE を使っていた方がいいでしょう. これは新しいリリースが まとめられた時 -RELEASE がこれから分岐するツリーです. たとえば, あなたが 3.4-RELEASE のコピーを持っていたとして, それは単に CD-ROM にまとめられた -STABLE 系列の "snapshot" に過ぎません. -RELEASE 以降に -STABLE にマージされた差分を入手するには -STABLE 系列を "追跡"する必要があります.

訳: 岩崎 満 .

19.2.2.1. FreeBSD-STABLE ってなに?

FreeBSD-STABLE は, 次の本流のリリースを目指した新機能をあまり採り入れない, 保守的な変更のための開発の支流です. 実験的, もしくはテスト未完の変更はこの支流には取り入れられません (最新の FreeBSD を追いかける参照).

19.2.2.2. 誰が FreeBSD-STABLE を必要としているの?

もしあなたが仕事で使用しているとか, なによりも FreeBSD システムの安定性を最重要視するなら, stable を追いかけることを考えるべきでしょう. stable の支流は前のリリースに関して効果的にバグフィックスされた流れであるため, 最新のリリース ( 4.2-RELEASE 執筆時点) をインストールしているのであれば, 特にそうです.

Warning: stable ツリーが常に完全に互換性があり安定するように努力していますが, たまに間違いがあることに注意してください (結局, 内容が吟味されずに素早く送られた変更を含むソースがまだあるのです). また, currentstable へ移行する前に完璧なテストフィックスに最善を尽くしますが, わたしたちのテストはすべてのケースを十分に網羅しているとは限りません. もし何か stable で不具合があるようでしたら, わたしたちにすぐに教えてください (次の節参照).

19.2.2.3. FreeBSD-STABLE を使う

  1. FreeBSD-stable メーリングリスト へ加わってください. このメーリングリストでは, stable の構築に関連する事柄や, その他の注意すべき点 に関する情報が流れています. また開発者は議論の余地がある修正や変更を考えている場合に, このメーリングリストで公表し, 提案された変更に関して問題が生じるかどうかを返答する機会をユーザに与えます.

    また, FreeBSD CVS commit メッセージ メーリングリスト メーリングリストでは, それぞれの変更がなされると, 起こりうる副作用に関するすべての適切な情報と一緒に commit log を読むことができます. subscribe しておきたいもう一つのメーリングリストです.

    メーリングリストに参加するには, へメッセージの本文に次のように書いたメールを送ってください:

        subscribe freebsd-stable
        subscribe cvs-all

    オプションとして本文に `help' と書けば, Majordomo はわたしたちがサポートするさまざまなメーリングリストに参加 / 脱退する方法に関する詳しいヘルプを送付します.

  2. もし, あなたが新しいシステムをインストールしようとしていて それを可能な限り安定なものにしておきたいなら, 最新のブランチの snapshot を ftp://releng4.freebsd.org/pub/FreeBSD から取得し, これを一般のリリースのものと同様にインストールしてください.

    もし, 既に FreeBSD の以前のリリースが動いている場合で, これをソースからアップグレードしようとするならば, ftp.FreeBSD.org より簡単に これを行う事が出来ます. これには次の 3 つの方法があります.

    1. CTM 機能を使用する. 転送レートが安定している TCP/IP 接続でない場合は, この方法が適しています.

    2. cvsupこの supfile を用いて使用する. 一度コレクション全体を入手してしまえば, 前回からの変更部分だけですむので, 2 番目に推奨される方法です. 多くの人が cron から cvsup を実行し, 自動的にソースコードを最新の状態に保っています. これを簡単に扱うには次のようにタイプしてください.

          # pkg_add -f \
      ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz
    3. ftp を使用する. FreeBSD-STABLE 用のソースツリーは 常に次のところで"公開"されています: ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/

      私たちはまた, tar/compress でツリー全体を入手できる wu-ftpd を使用しています. 例えば :

          usr.bin/lex

      に対して:

          ftp> cd usr.bin
          ftp> get lex.tar

      とすることにより, ディレクトリ全体を tar ファイルとして入手することができます.

  3. 基本的には, ソースに迅速でオンデマンドなアクセスが必要で, 接続のバンド幅が問題でなければ, cvsupftp を使いましょう. そうで ない場合は CTM を使いましょう.

  4. stable をコンパイルする前に, /usr/src にある Makefile をよ く読んでください. 少なくとも一回はアップグレードの処理の一部として最初に make world を実行するべきでしょう. FreeBSD-stable メーリングリスト を読めば, 次のリリースに移行する に当たって時々必要となる既存システムからの 新システムの構築手順に ついての最新情報が得られるでしょう.