diff --git a/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml b/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml index 3907dc7e1b..93939d086c 100644 --- a/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml +++ b/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml @@ -3,7 +3,7 @@ The FreeBSD Documentation Project The FreeBSD Japanese Documentation Project - Original revision: r44733 + Original revision: r44734 $FreeBSD$ --> これらを配慮し、アップグレードの推奨手順が作られました。 + + make を実行したときの出力は、 + ファイルに保存すると良いでしょう。 + 何か障害が発生した場合には、エラーメッセージのコピーを + &os; メーリングリストに投稿してください。 + + ファイルに保存する最も簡単な方法は、script + コマンドを使い、 + 引数として出力の保存先のファイル名を指定することです。 + /tmp に出力を保存しないようにしてください。 + このディレクトリは、次の再起動で削除されてしまう可能性があります。 + 出力の保存には、/var/tmp が適しています。 + 次のコマンドを world の構築の直前に行ない、再構築が終了したら + exit と入力してください。 + + &prompt.root; script /var/tmp/mw.out +Script started, output file is /var/tmp/mw.out + + world の構築プロセスの概要 @@ -1638,6 +1657,11 @@ before running "/usr/sbin/freebsd-update install" world の構築プロセスでは、いくつかの設定ファイルが使われます。 + /usr/src に置かれている、 + Makefile には、 + &os; を構成するプログラムの構築方法や、 + どういう順番でそれらを構築すべきかといった指示が記述されています。 + make で利用可能なオプションの説明は &man.make.conf.5; や、共通の例が /usr/share/examples/etc/make.conf にあります。 @@ -1670,152 +1694,69 @@ before running "/usr/sbin/freebsd-update install" - ベースシステムの再構築 + 変数とターゲット - 実行される &man.make.1; からの出力は、 - ファイルに保存すると良いでしょう。 - もし、何か障害が発生した場合、エラーメッセージのコピーを - &os; メーリングリストに投稿してください。 - - ファイルに保存する最も簡単な方法は、&man.script.1; - コマンドを使い、引数に出力を保存したいファイル名を指定することです。 - これを make world の直前に行ない、再構築が終了したら - 以下のように exit と入力してください。 - - &prompt.root; script /var/tmp/mw.out -Script started, output file is /var/tmp/mw.out -&prompt.root; make TARGET -… compile, compile, compile … -&prompt.root; exit -Script done, … - - /tmp - に出力を保存してはいけません。 - このディレクトリは、次の再起動で削除されてしまう可能性があります。 - 出力の保存には、/var/tmp や - root - のホームディレクトリが適しています。 - - /usr/src にて、 - 次のように実行してください。 - - &prompt.root; cd /usr/src - - - make - - - world を再構築するには、&man.make.1; を使用してください。 - このコマンドは、Makefile から、 - &os; を構成するプログラムの再構築方法や、 - どういう順番でそれらを構築すべきかといったような指示を読み込みます。 - - コマンドラインの一般的な書式は、次のとおりです。 + make の使用における一般的な書式は、 + 次のとおりです。 &prompt.root; make -x -DVARIABLE target この例では、 が - &man.make.1; に渡されるオプションになります。 + make に渡されるオプションになります。 どのようなオプションが利用できるかについては、&man.make.1; を参照してください。 - - は、Makefile に渡される変数であり、 + 変数を渡すには、変数の名前を + + のように指定してください。 この変数は Makefile の動作をコントロールします。 - また、/etc/make.conf で設定される変数も - 同様です。これは変数を設定するもう一つの方法として用意されています。 - たとえば以下の通りです。 + 変数の指定は、/etc/make.conf で設定するか、 + make の実行時に指定するかのどちらかで行います。 + たとえば、以下の変数は、プロファイル版のライブラリを構築しないことを指定します。 &prompt.root; make -DNO_PROFILE target - は、プロファイル版のライブラリを構築しないことを指定する - もう一つの記法で、/etc/make.conf 中の + これは、/etc/make.conf + の中で以下のように設定することに対応します。 NO_PROFILE= true # Avoid compiling profiled libraries - の行に対応します。 - - target は、&man.make.1; に + target は、make に どのように動作するのかを指示するためのものです。 - 各 Makefile には、数多くの異なる - ターゲット (target) が定義されていて、 - 指定されたターゲットによって動作が決まります。 - - Makefile に書かれているターゲットには、 + Makefile は利用可能なターゲットを定義しています。 + ターゲットには、 システムの再構築に必要な段階を、 多くのさらに細かい段階に分割するため、 構築の過程で利用されるものがあります。 - 大抵の場合、&man.make.1; - にパラメータを指定する必要はないでしょうから、 - コマンドラインは次のようなものになります。 - - &prompt.root; make target - - ここで、target - は、多くのビルドオプションのどれかになります。 - 最初のターゲットはいつも buildworld - になるでしょう。 - - その名前が示すように、buildworld は - /usr/obj - 以下に新しい完全なディレクトリツリーを構築し、 - installworld は、そのツリーを - 現在のマシンにインストールします。 - 選択肢が分けられていることは、二つの理由から有用です。 - まず第一に、構築作業は - 何にも依存せず独立して行なわれ、 - 稼働中のシステムにまったく影響を与えません。 - - そのため、マルチユーザモードで稼働中のシステムでも、何一つ - 悪影響を与えずに buildworld を - 実行することができます。 + まず第一に、構築作業は稼働中のシステムにまったく影響を与えません。 + そのため、マルチユーザモードで稼働中のシステムでも、安全に + buildworld を実行できます。 ただし、installworld は シングルユーザモードで行なうことをおすすめします。 - 第二に、NFS マウントを利用することで、 - ネットワーク上の複数のマシンをアップグレードすることが可能な点があげられます。 - たとえば三台のマシン、 - A, - B, C - をアップグレードしたい場合には、まずマシン A - で make buildworld と - make installworld を実行します。 - それから、マシン B - とマシン C - でマシン A の - /usr/src/usr/obj を - NFS マウントし、make installworld - とすることで構築済みのシステムを各マシンにインストールできます。 + 第二に、NFS マウントを利用することで、 で説明されているように、 + ネットワーク上の複数のマシンをアップグレードすることが可能な点があげられます。 - world ターゲットも利用可能ですが、 - このターゲットの利用は推奨されていません。 - - そのかわり、次のコマンド - - &prompt.root; make buildworld - - を実行してください。ここで make に + make をつけると、 同時に複数のプロセスを生成できます。 - この機能はマルチ CPU マシンで特に効果を発揮します。 - 構築過程の大部分では CPU 性能の限界より - I/O 性能の限界の方が問題となるため、シングル CPU - マシンにも効果があります。 + 構築過程の大部分では CPU 性能の限界より + I/O 性能の限界の方が問題となるため、 + シングル CPU とマルチ CPU + マシンの両方に効果があります。 - 普通のシングル CPU マシンで以下のコマンド - - &prompt.root; make -j4 buildworld - - を実行すると、&man.make.1; - は最大 4 個までのプロセスを同時に実行します。 + 普通のシングル CPU マシンで以下のコマンド + を実行すると、最大 4 個までのプロセスを同時に実行します。 メーリングリストに投稿された経験的な報告によると、 4 個という指定が最も良いパフォーマンスを示すようです。 - もし、複数の CPU を備えたマシンで SMP - 設定が行なわれたカーネルを利用しているなら、 - 6 から 10 の間の値を設定し、 + &prompt.root; make -j4 buildworld + + マルチ CPU マシンでは、 + 6 から 10 の間の値を設定し、 速度がどれくらい向上するか確認してみてください。 @@ -1823,20 +1764,15 @@ Script done, … 時間 - 構築時間を決める要素はさまざまありますが、 - 十分新しいマシンであれば、 - トリックや近道を使わずに普通に構築した場合、&os.stable; - の構築には 1, 2 時間しかかからないでしょう。 - &os.current; の構築は、もう少し時間がかかります。 - make buildworld に変数を指定した場合は、同じ指定を make installworld にも指定しなければなりません。 - ただし は - installworld で絶対に使ってはいけません。 + ただし installworld + では、 を + 絶対に使ってはいけません - たとえば以下のように実行したなら、 + たとえば、以下のコマンドを実行したなら、 &prompt.root; make -DNO_PROFILE buildworld @@ -1844,9 +1780,9 @@ Script done, … &prompt.root; make -DNO_PROFILE installworld - もしそうしなかった場合、 - make buildworld の段階で構築されていない - プロファイル版ライブラリをインストールしようとしてしまうでしょう。 + もしそうしなかった場合、2 番目のコマンドは、 + make buildworld + の段階で構築されていないプロファイル版ライブラリをインストールしようとしてしまうでしょう。