18.8. 複数のマシンで追いかける
戻る | 第18章 FreeBSD のアップデートとアップグレード | 次へ

## 18.8. 複数のマシンで追いかける

寄稿: Meyer Mike [FAMILY Given].

複数のコンピュータで同じソースツリーを追いかけていて、 全部のマシンにソースをダウンロードして全部を再構築するのは、 ディスクスペース、ネットワーク帯域、そして CPU サイクルの無駄使いです。 解決策は 1 つのマシンに仕事のほとんどをさせ、 残りのマシンは NFS 経由でそれをマウントする、というものです。 このセクションではそのやり方を概観します。

### 18.8.1. 準備

まず初めに、同じバイナリで動かそうとするマシンたちを決めます。 このマシンたちのことをビルドセットと呼びます。 それぞれのマシンはカスタムカーネルを持っているかもしれませんが、 同じユーザランドバイナリを動かそうというのです。 このビルドセットから、 ビルドマシンとなるマシンを 1 台選びます。 ベースシステムとカーネルを構築するのはこのマシンになります。 理想的には、このマシンは `make buildworld` と `make buildkernel` を実行するのに十分な CPU を持った速いマシンであるべきです。 テストマシンとなるべきマシンも選んでください。 更新されたソフトウェアを使う前にそのマシンでテストするのです。 テストマシンはかなり長い時間落ちていても だいじょうぶなマシンであったほうがいいでしょう。 ビルドマシンでもかまいませんが、ビルドマシンである必要はありません。

このビルドセットのマシンはすべて `/usr/obj` と `/usr/src` を同じマシンの同じ場所からマウントする必要があります。 理想的にはビルドマシンの 2 つの違うドライブ上にあるとよいのですが、 ビルドマシンに NFS マウントされていてもかまいません。 ビルドセット自体が複数ある場合は、 `/usr/src` はひとつのビルドマシン上にあるべきです。 他のマシンからはそれを NFS マウントするようにしましょう。

最後にビルドセットのすべてのマシン上の `/etc/make.conf` と `/etc/src.conf` がビルドマシンと一致していることを確認してください。 つまり、ビルドマシンはビルドセットのどのマシンもインストールしようとしている ベースシステムを全部ビルドしなければならないということです。 また、各ビルドマシンは `/etc/make.conf` にそれぞれのビルドマシンのカーネル名を `KERNCONF` で指定し、 ビルドマシンは自分自身のカーネルから順に全部のカーネル名を `KERNCONF` にリストアップしてください。 各マシンのカーネルもビルドするのであれば、 ビルドマシンは各マシンのカーネル設定ファイルを `/usr/src/sys/`arch`/conf` に持っていなければなりません。

### 18.8.2. ベースシステム

ビルドマシンにて、 「ベースシステムの構築」 に書いてあるようにカーネルとベースシステムを構築してください。 でも、まだインストールしないでください。 ビルドが終わったら、テストマシンに移り、 ビルドしたカーネルをインストールしてください。 テストマシンが NFS 経由で `/usr/src` と `/usr/obj` をマウントしているなら、 シングルユーザで再起動したときにネットワークを使えるようにして、 これらのディレクトリをマウントするようにしてください。 もっとも簡単な方法は、 マルチユーザモードで起動して、`shutdown now` を実行してシングルユーザモードに移行することです。 そうしたら、カーネルとベースシステムをインストールし、 いつもするように `mergemaster` を実行してください。 終わったら、 テストマシンを再起動して通常のマルチユーザ動作に戻します。

テストマシンにあるものすべてがちゃんと動いている確信が得られたら、 同じ手順でビルドセットの他のマシンにも新しいソフトウェアをインストールします。

### 18.8.3. Ports

ports ツリーにも同じアイデアが使えます。 最初に重要な点は、 ビルドセットのすべてのマシンに同じマシンの `/usr/ports` をマウントすることです。 そして、distfiles を共有するように `/etc/make.conf` を適切に設定します。 NFS マウントによってマップされる `root` ユーザが何であれ、`DISTDIR` はそのユーザが書き込める共通の共有ディレクトリに設定する必要があります。 各マシンは `WRKDIRPREFIX` を自分のマシンのビルドディレクトリに設定しなければなりません。 最後に、packages をビルドして配布するのであれば、 `DISTDIR` と同じように `PACKAGES` ディレクトリも設定してください。

戻る | 上に戻る | 次へ
18.7. 「world」 の再構築 | ホーム | パート IV. ネットワーク通信

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

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