18.5. 開発ブランチを追いかける

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

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

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

これを読む前に、 心にとめておいて欲しいことがあります。 FreeBSD-CURRENT とは FreeBSD の開発の “最前線” だということです。 FreeBSD-CURRENT のユーザは高い技術力を持つことが要求され、 自分のシステムが抱える困難な問題を自力で解決できなければなりません。 もし FreeBSD を使い始めたばかりなら、 これを運用することについて十分検討を重ねた方が良いでしょう。

18.5.1.1. FreeBSD-CURRENT ってなに?

FreeBSD-CURRENT は FreeBSD の最新の、そして作業進行中のソースです。 中には現在開発途上のソフトウェア、 実験的な変更、あるいは過渡的な機能などが含まれています。 また、この中に入っている機能がすべて、 次の公式リリースに入るとは限りません。 FreeBSD-CURRENT をソースからほぼ毎日コンパイルしている人は たくさんいますが、 時期によってはコンパイルさえできない状態になっていることもあります。 これらの問題は可能な限り迅速に解決されますが、 FreeBSD-CURRENT が不幸をもたらすか、 それとも非常に素晴らしい機能をもたらすかは、 まさにソースコードを手に入れた瞬間によるのです!

18.5.1.2. 誰が FreeBSD-CURRENT を必要としてるの?

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

  1. ソースツリーのある部分に関して活発に作業している FreeBSD コミュニティのメンバ。 彼らにとっては “最新のもの” にしておくのが 絶対に必要なことなのです。

  2. 活発にテストしている FreeBSD コミュニティのメンバ。 彼らは、FreeBSD-CURRENT が “健全である” ことを可能な限り保証するために、 種々の問題を解決するのに時間を惜しまない人々です。 彼らはまた、様々な変更に関する提案や FreeBSD の大まかな方向付けを行ないたいと思っている 人々でもあり、それを実装するためのパッチを提示します。

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

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

  1. なにか新しくカッコイイモノがあると聞き、 自分の周囲では一番にそれを持ちたいがために、 リリース前のコードの断片を追いかけること。 新しい機能を得るために一番乗りになるということは、 新しいバグに最初にぶち当たるということです。

  2. バグを修正するための素早い方法。 いかなるバージョンの FreeBSD-CURRENT であれ、 元からあるバグを修正するのと同じく、 新しいバグを生み出すおそれがあります。

  3. “公式にサポートする” こと。 わたしたちは 3 つの “公式な” FreeBSD-CURRENT のグループの一つに、 実際に属する人々を助けるのにベストを尽くしますが、 技術的なサポートを行なうには、単に「時間が足りない」のです。 これはわたしたちが外の人を助けるの好まない、 ケチで意地悪い人間だということではありません (もしそうなら FreeBSD なんてやっていません)。 わたしたちは一日に何百通ものメッセージに答え、 かつ FreeBSD の作業をすることなど出来ない! というだけのことなのです。 もし、FreeBSD の改良作業を続けるか、 それとも実験的なコードに関するたくさんの質問に答えるか、 という二つの選択を迫られたら、開発者は前者を選ぶでしょう。

18.5.1.4. FreeBSD-CURRENT を使う

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

    svn-src-head メーリングリストでは、 それぞれの変更についての commit ログを見ることができます。 また、それに関して起こり得る副作用の情報を得ることができますので、 参加する価値のあるメーリングリストです。

    これらの、もしくは他のメーリングリストに入るには、 http://lists.FreeBSD.org/mailman/listinfo をたどって参加したいメーリングリ ストをクリックしてください。残りの手順の説明はそこにあります。 もし、ソースツリー全体の変更点を追いかけることに興味があれば、 svn-src-all メーリングリストを購読してください。

  2. FreeBSD ミラーサイト からのソースの入手。以下の 3 つの方法のいずれかでできます。

    1. svn プログラムを使って、 希望する開発ブランチ、 もしくはリリースブランチをチェックアウトしてください。 この方法は、開発中の FreeBSD リポジトリへのアクセスを提供しており、 推奨されています。 Subversion を使って -CURRENT ベースシステムをチェックアウトする際の URL のプレフィックスは、 http://svn.freebsd.org/base/head/ です。 リポジトリサイズの観点から、 希望するサブツリーのみをチェックアウトすることが推奨されます。

    2. cvsup/usr/share/examples/cvsup にある standard-supfile という名称の supfile と合わせて使ってください。 上に挙げた見本の supfile をカスタマイズするとともに、あなたの環境に合わせて cvsup を設定する必要があります。

      警告cvsup は、 プロジェクトにおいて廃止されたので、 現在では推奨されていません。

      注意: サンプルファイルの standard-supfile は、FreeBSD の特定のセキュリティブランチを追いかけるためのものであり、 FreeBSD-CURRENT 用ではありません。 このファイルの中にある次の行を

      *default release=cvs tag=RELENG_X_Y
      

      以下に置き換えてください。

      *default release=cvs tag=.
      

      使用可能なタグに関する詳細な説明は、 ハンドブックの CVS タグ の章にあります。

    3. CTMを用いる。 (接続料が高額だったり、email でのアクセスしかできないような) あまり良質でない TCP/IP 接続の場合には、CTM を利用すると良いでしょう。ただし、 これには多くの手間がかかりますし、 壊れたファイルを受けとってしまう可能性もあります。 そのため、最近ではあまり使われなくなっており、 長い間使用できなくなってしまう事態が発生する可能性があります (訳注: 保守する人が少ないためです)。 インターネットに接続しているシステムであれば、 Subversion を利用されることを推奨します。

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

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

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

18.5.2. 安定版の FreeBSD を使う

訳: 岩崎 満

18.5.2.1. FreeBSD-STABLE ってなに?

FreeBSD-STABLE とは定期的に公開されるリリースを作成するための開発ブランチです。 このブランチに加えられる変更は原則として、 事前に FreeBSD-CURRENT で試験ずみであるという特徴があります。 ただそうであっても、 これは開発用ブランチの一つであるということに注意してください。 つまり、ある時点における FreeBSD-STABLE のソースが どんな場合にも使えるものであるとは限らないということです。 このブランチはもう一つの開発の流れというだけであって、 エンドユーザ向けのものではありません。

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

もしあなたが FreeBSD の開発過程に興味があるとか、 それに対する貢献を考えていて、特にそれが 次回の “ポイント” リリースに関係するもの であるなら FreeBSD-STABLE を追うことを考えると良いでしょう。

セキュリティ上の修正は FreeBSD-STABLE ブランチに対して行なわれますが、 そのために FreeBSD-STABLE を追う必要はありません。 すべての FreeBSD セキュリティ勧告には 影響のあるリリースで問題点を修正する方法が説明されており [1] 、 セキュリティ上の理由のみから開発用ブランチ全体を追いかけることは、 同時に望ましくない変更点まで取り込んでしまう可能性があるからです。

わたしたちは FreeBSD-STABLE ブランチがいつも安定に動作するように 努めていますが、それが保証されているというわけではありません。 また、コードは FreeBSD-STABLE に加えられる前に FreeBSD-CURRENT で開発されるのですが、FreeBSD-STABLE のユーザは FreeBSD-CURRENT よりも多いため、FreeBSD-CURRENT で発見されなかった バグが FreeBSD-STABLE で発見され、時々それが問題となることがあるのは 避けることができません。

このような理由から、わたしたちは盲目的に FreeBSD-STABLE を追いかけることを推奨しません。 特に、最初に開発環境でコードを十分に試験せずに プロダクション品質が要求されるサーバを FreeBSD-STABLE にアップグレードしてはいけません。

もしそうするための資源的な余裕がない場合は、 リリース間のバイナリアップデート機能を利用して、 最新の FreeBSD リリースを使うことを推奨します。

18.5.2.3. FreeBSD-STABLE を使う

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

    追いかけているブランチに関連する SVN メーリングリストに参加してください。 たとえば、9-STABLE ブランチを追いかけているのであれば、 svn-src-stable-9 メーリングリストに参加してください。 変更がなされるごとに作成される commit log やそれに伴う 起こりうる副作用についての情報を読むことができます。

    これらの、もしくは他のメーリングリストに入るには、 http://lists.FreeBSD.org/mailman/listinfo をたどって参加したいメーリングリ ストをクリックしてください。残りの手順の説明はそこにあります。 もし、ソースツリー全体の変更点を追いかけることに興味があれば、 svn-src-all メーリングリストを購読してください。

  2. もし、あなたが新しいシステムをインストールしようとしていて、 毎月公開されている FreeBSD-STABLE からビルドされたスナップショットをインストールしたいなら、 スナップショット web ページをご覧ください。 もしくは、ミラーサイトから最近の FreeBSD-STABLE リリースをインストールし、下記の説明に従って最新の FreeBSD-STABLE のソースコードに更新することもできます。

    もし、既に FreeBSD の以前のリリースが動いている場合で、 これをソースからアップグレードしようとするならば、 FreeBSD ミラーサイト から簡単に行えます。これには次の 3 つの方法があります。

    1. svn プログラムを使って、 希望する開発ブランチ、 もしくはリリースブランチをチェックアウしてください。 この方法は、開発中の FreeBSD リポジトリへのアクセスを提供しており、 推奨されています。 ブランチ名については、現在の開発のヘッドブランチは head、および リリースエンジニアリングのページ の特定のブランチでは stable/9、または releng/9.0 となります。 Subversion を使ってベースシステムをチェックアウトする際の URL のプレフィックスは、 http://svn.freebsd.org/base/ となります。 リポジトリサイズの観点から、 希望するサブツリーのみをチェックアウトすることが推奨されます。

    2. cvsup/usr/share/examples/cvsup にある stable-supfile という名称の supfile と合わせて使ってください。 上に挙げた見本の supfile をカスタマイズするとともに、あなたの環境に合わせて cvsup を設定する必要があります。

      警告cvsup は、 プロジェクトにおいて廃止されたので、 現在では推奨されていません。

    3. CTM 機能を使います。 インターネットへの接続に高速で安価な回線を利用できないのであれば、 この方法を検討してみましょう。

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

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

注意

[1]

これは正確ではありません。 実際わたしたちは何年もの間古いリリースの FreeBSD をサポートしてはいるのですが、 永遠にサポートし続けることはできません。 現時点での古いリリースの FreeBSD のセキュリティポリシーの全説明を知るには、 http://www.FreeBSD.org/security/ を参照してください。

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

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