Merge the following from the English version:

1.222 -> 1.225	doc/ja_JP.eucJP/books/handbook/cutting-edge/chapter.sgml

Submitted by:	Hiroo Ono <hiroo _at_ jp dot FreeBSD dot org>
Reference:	[doc-jp-work 1797]
This commit is contained in:
Ryusuke SUZUKI 2011-11-17 09:55:43 +00:00
parent dbf7d90b8a
commit 0872b3c2f7
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=37952

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.222
Original revision: 1.225
$FreeBSD$
-->
@ -607,7 +607,7 @@
再構築しなければなりません。</para>
<warning>
<title>バックアップを作成する</title>
<title>バックアップの作成</title>
<para>システムを再構築する<emphasis>前に</emphasis>バックアップを
作成することの重要性は、いくら強調してもし過ぎると言うことはありません。
@ -745,8 +745,7 @@
<primary><filename>make.conf</filename></primary>
</indexterm>
<para>まず、<filename>/usr/share/examples/etc/make.conf</filename>
(&os;&nbsp;4.X では <filename>/etc/defaults/make.conf</filename>) と
<para>まず、<filename>/usr/share/examples/etc/make.conf</filename> と
<filename>/etc/make.conf</filename> を調べてください。そこには
最初から標準的なものが (多くのものはコメントアウトされていますが)
含まれています。ソースからシステムを再構築するときに make が
@ -756,10 +755,8 @@
そのため、システムに必要な設定を書いておくと良いでしょう。</para>
<para>標準的なユーザならおそらく、
<filename>/usr/share/examples/etc/make.conf</filename>
(&os;&nbsp;4.X では <filename>/etc/defaults/make.conf</filename>) の
<filename>/usr/share/examples/etc/make.conf</filename> の
<makevar>CFLAGS</makevar> と <makevar>NO_PROFILE</makevar>
(&os;&nbsp;5.X 以前なら <makevar>NOPROFILE</makevar>)
のコメントをはずしたくなるでしょう。</para>
<para>他の定義 (<makevar>COPTFLAGS</makevar>、
@ -796,7 +793,7 @@
それらのユーザ名やグループが存在するか確認が行われる場合もあります。
</para>
<para>この例で記憶に新しいのは、
<para>この例の一つは、
<username>smmsp</username> ユーザが追加された時です。
&man.mtree.8; が
<filename>/var/spool/clientmqueue</filename>
@ -804,19 +801,8 @@
そのユーザ名 (およびグループ)
が存在しないためにインストールに失敗してしまったのです。</para>
<para>解決方法は、<filename>/usr/src/etc/group</filename> を調べ、
自分のシステムのグループ名リストと比較することです。
最新のファイルに含まれていて、あなたのファイルに含まれていない
グループ名があれば、あなたのファイルにそのグループ名をコピーしてください。
同様に、名前が異なるにも関わらず、
<filename>/etc/group</filename> と
<filename>/usr/src/etc/group</filename> で同じ GID を持っているグループ名があれば、
<filename>/etc/group</filename> に含まれる、
該当するすべてのグループ名を変更しておかなければなりません。
</para>
<para>4.6-RELEASE からは、buildworld の前に <option>-p</option>
をつけて &man.mergemaster.8; を実行してもよいです。
<para>解決方法は、buildworld の前に <option>-p</option>
オプションをつけて &man.mergemaster.8; を実行することです。
これを実行すると、<maketarget>buildworld</maketarget> や
<maketarget>installworld</maketarget>
が成功するために必要なファイルだけを比較します。
@ -869,10 +855,9 @@
<screen>&prompt.root; <userinput>shutdown now</userinput></screen>
<para>あるいはシステムを再起動し、ブートプロンプトから
<option>-s</option> フラグを設定することで、シングルユーザモードで
システムを起動させることができます。起動後、シェルプロンプトから
次のように実行してください。
</para>
<quote>single user</quote> を選択すると、
シングルユーザモードでシステムを起動できます。
起動後、シェルプロンプトから次のように実行してください。</para>
<screen>&prompt.root; <userinput>fsck -p</userinput>
&prompt.root; <userinput>mount -u /</userinput>
@ -925,8 +910,8 @@
&prompt.root; <userinput>rm -rf *</userinput></screen>
</sect2>
<sect2>
<title>ソースの再構築</title>
<sect2 id="cutting-edge-compilebase">
<title>ベースシステムの再構築</title>
<sect3>
<title>出力メッセージの保存</title>
@ -1031,27 +1016,20 @@ Script done, &hellip;</screen>
<screen>&prompt.root; <userinput>make <replaceable>target</replaceable></userinput></screen>
<para>
&os; の 2.2.5 から (実際には、&os.current; ブランチで最初に作成され、
2.2.2 と 2.2.5 の間の時点で &os.stable; に導入されたのですが)、
<maketarget>world</maketarget> ターゲットは
<maketarget>buildworld</maketarget> と
<maketarget>installworld</maketarget> の二つに分割されました。
<maketarget>world</maketarget> ターゲットは、
ほとんどのユーザにとっては実際に危険なものなので、&os;
バージョン 5.3 からは全く動かないように変更されます。
</para>
<para>ここで、<replaceable>target</replaceable>
は、多くのビルドオプションのどれかになります。
最初のターゲットはいつも <maketarget>buildworld</maketarget>
になるでしょう。</para>
<para>
その名前が示すように、<maketarget>buildworld</maketarget> は
<filename>/usr/obj</filename> 以下に新しい完全な
ディレクトリツリーを構築し、
ディレクトリツリーを構築し、もう一つのターゲット
<maketarget>installworld</maketarget> は、そのツリーを
現在のマシンにインストールします。
</para>
<para>
これは、二つの理由から非常に有用です。
<para>選択肢が分けられていることは、二つの理由から非常に有用です。
まず第一に、稼働中のシステムに全く影響を与えることなく、
安全にシステムの構築作業を行えることです。
構築作業は <quote>何にも依存せず独立して行なわれる</quote> ため、
@ -1104,13 +1082,6 @@ Script done, &hellip;</screen>
<para>もし、複数の CPU を備えたマシンで SMP 設定が行なわれたカーネルを
利用しているなら、6 から 10 の間の値を設定し、速度がどれくらい
向上するか確認してみてください。</para>
<para>ただし、この機能はまだ実験段階であるということに注意してください。
そのため、ソースツリーへ変更が加えられたときに
これが正常に機能しなくなる可能性があります。
もし、このオプションを用いてシステムの構築に失敗した場合には、
障害を報告する前に、もう一度オプションを付けずに試してみてください。
</para>
</sect3>
<sect3>
@ -1122,9 +1093,9 @@ Script done, &hellip;</screen>
</indexterm>
<para>構築時間を決める要素はさまざまありますが、
現時点では Pentium&nbsp;III の 500&nbsp;MHz、128&nbsp;MB の
RAM という構成でトリックや近道を使わずに普通に構築した場合、
&os.stable; の構築に約 2&nbsp;時間かかります
十分新しいマシンであれば、
トリックや近道を使わずに普通に構築した場合、&os.stable;
の構築には 1, 2 時間しかかからないでしょう
&os.current; の構築は、もう少し時間がかかります。</para>
</sect3>
</sect2>
@ -1155,7 +1126,7 @@ Script done, &hellip;</screen>
使って新しいカーネルを構築することで、
システムが正常に動作しているかどうか確かめることができます。</para>
<para>FreeBSD の最近のバージョンでは、新しいカーネルを構築する前に <link
<para>&os; では、新しいカーネルを構築する前に <link
linkend="make-buildworld">build world</link> を行うことが重要です。
</para>
@ -1192,7 +1163,7 @@ Script done, &hellip;</screen>
に書かれている手順に従ってください。</para>
</sect2>
<sect2>
<sect2 id="make-installworld">
<title>新しいシステムバイナリのインストール</title>
<para>十分最近のバージョンの &os; を
@ -1318,9 +1289,8 @@ Script done, &hellip;</screen>
<para>&man.mergemaster.8; がシステムファイルの比較を終えたあと、
他のオプションについてもプロンプトが表示されます。
&man.mergemaster.8; が、パスワードファイルを再構築したいかどうかや、
FreeBSD 5.0 より前のバージョンを動かしている場合は
&man.MAKEDEV.8; を実行するかどうかを尋ねることがあります。
&man.mergemaster.8;
が、パスワードファイルを再構築したいかどうか尋ねることがあります。
最後に残った一時ファイルを削除するかどうかを尋ねて終了します。</para>
</sect3>
@ -1342,8 +1312,10 @@ Script done, &hellip;</screen>
<filename>/usr/src/etc</filename> にないものもあります。
</para>
<para>&man.mergemaster.8; を使っているのであれば (お勧めです)、
<link linkend="update-dev">次のセクション</link>まで飛ばしてもかまいません。</para>
<para>&man.mergemaster.8; を (勧められた通り)
使っているのであれば、<link
linkend="cutting-edge-rebooting">次の節</link>
まで飛ばしてもかまいません。</para>
<para>
手動で行う際の
@ -1535,120 +1507,7 @@ Script done, &hellip;</screen>
</sect3>
</sect2>
<sect2 id="update-dev">
<title><filename>/dev</filename> の更新</title>
<note>
<indexterm><primary>DEVFS</primary></indexterm>
<para>FreeBSD&nbsp;5.0 以降を利用しているなら、この節は飛ばし
て構いません。それらのバージョンでは、&man.devfs.5; を利用し
てデバイスノードをユーザに意識させずに割り当てています。</para>
</note>
<para>ほとんどの場合、&man.mergemaster.8; は
デバイスノードの再構築が必要であることを検出して自動的にそれを
実行するのですが、ここではデバイスノードの再構築を手動で行なう
方法について説明します。</para>
<para>安全のため、これはいくつかの段階に分けて行ないます。</para>
<procedure>
<step>
<para>
<filename>/var/tmp/root/dev/MAKEDEV</filename> を
<filename>/dev</filename> にコピーします。
</para>
<screen>&prompt.root; <userinput>cp /var/tmp/root/dev/MAKEDEV /dev</userinput></screen>
<indexterm>
<primary><filename>MAKEDEV</filename></primary>
</indexterm>
<para>
<filename>/etc</filename> を更新するのに
&man.mergemaster.8; を使った場合、
<filename>MAKEDEV</filename> スクリプトは既に更新
されているでしょうが、(&man.diff.1; を使って)
チェックすることは無駄ではありませんし、
必要なら自分でコピーしてください。
</para>
</step>
<step>
<para>
ここで、<filename>/dev</filename> のファイル一覧を記録しておきます。
この一覧は、各ファイルの許可属性、所有者、メジャー番号、マイナー番号が
含まれている必要がありますが、タイムスタンプは含まれていてはいけません。
これを行なう簡単な方法は、&man.awk.1; を使って、
いくつかの情報を取り除くことです。
</para>
<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' &gt; /var/tmp/dev.out</userinput></screen>
</step>
<step>
<para>デバイスノードをつくり直します。</para>
<screen>&prompt.root; <userinput>sh MAKEDEV all</userinput></screen>
</step>
<step>
<para>
もう一度、ディレクトリのファイル一覧を記録します。
今回は <filename>/var/tmp/dev2.out</filename> です。
この段階で、この二つのファイル一覧を調べて
作成に失敗したデバイスノードを探してください。
違いは一つもないはずなのですが、安全のために一応チェックしてください。
</para>
<screen>&prompt.root; <userinput>diff /var/tmp/dev.out /var/tmp/dev2.out</userinput></screen>
<para>
次のようなコマンドを使用し、ディスクスライスエントリを
再作成することで、ディスクスライスの矛盾を検出することがで
きます。</para>
<screen>&prompt.root; <userinput>sh MAKEDEV sd0s1</userinput></screen>
<para>適当な組み合わせは、環境によって異なります。</para>
</step>
</procedure>
</sect2>
<sect2>
<title><filename>/stand</filename> の更新</title>
<note>
<para>
この段階は、完全な更新を行なう場合にだけ必要な内容を含んでいます。
悪影響はありませんので、省略しても構いません。
FreeBSD&nbsp;5.2 以降を利用しているなら、
<command>make installworld</command> の際に、ユーザのために、
<filename>/rescue</filename> ディレクトリが、静的コンパイル
されたその時点のバイナリで更新されます。ですから、
<filename>/stand</filename> を更新する必要はありません。
(&os;&nbsp;6.0 以降では、そもそも存在しません)。</para>
</note>
<para>
完全な更新を行なうために、
<filename>/stand</filename> にあるファイルも同じように
更新したいと考えるかも知れません。
これらのファイルは、<filename>/stand/sysinstall</filename> という
バイナリファイルへのハードリンクです。このバイナリファイルは、
他のファイルシステム (特に <filename>/usr</filename>) が
マウントされていない場合にも動作できるよう、
静的にリンクされていなければなりません。
</para>
<screen>&prompt.root; <userinput>cd /usr/src/release/sysinstall</userinput>
&prompt.root; <userinput>make all install</userinput></screen>
</sect2>
<sect2>
<sect2 id="cutting-edge-rebooting">
<title>再起動</title>
<para>
@ -1813,9 +1672,6 @@ Script done, &hellip;</screen>
&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make -DNO_CLEAN all</userinput></screen>
<note><para>&os;&nbsp;5.X 以前では、代わりに
<makevar>-DNOCLEAN</makevar> を使ってください。</para></note>
<para>
これは、前回の <command>make buildworld</command>
の作業をやり直しません。