- Merge the following from the English version:

r43804 -> r43806	head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml
This commit is contained in:
Ryusuke SUZUKI 2014-03-21 23:17:17 +00:00
parent 325dfc5668
commit 7e6dfe2448
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44328

View file

@ -3,7 +3,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: r43804
Original revision: r43806
$FreeBSD$
-->
<chapter xmlns="http://docbook.org/ns/docbook"
@ -1599,6 +1599,21 @@ before running "/usr/sbin/freebsd-update install"</screen>
ここで示されている順番で実行してください。
この節では各コマンドの機能についてまとめます。</para>
<step>
<para>システム上で world の構築が一度でも行われたのであれば、
前回の構築の際のコピーが
<filename class="directory">/usr/obj</filename>
に存在するはずです。
このディレクトリが存在しているのであれば、
このディレクトリを削除して、
<command>make buildworld</command> の行程にかかる時間を短縮し、
依存問題に悩まされるようなトラブルを回避することができます。</para>
<screen>&prompt.root; <userinput>cd /usr/obj</userinput>
&prompt.root; <userinput>chflags -R noschg *</userinput>
&prompt.root; <userinput>rm -rf *</userinput></screen>
</step>
<step>
<para>新しいコンパイラと関連ツールを最初にコンパイルし、
その後、新しいコンパイラで、
@ -1638,7 +1653,8 @@ before running "/usr/sbin/freebsd-update install"</screen>
以下のコマンドを実行してください。</para>
<screen>&prompt.root; <userinput>mount -u /</userinput>
&prompt.root; <userinput>mount -a -t ufs</userinput></screen>
&prompt.root; <userinput>mount -a -t ufs</userinput>
&prompt.root; <userinput>swapon -a</userinput></screen>
<para>もしシステムが ZFS でフォーマットされている場合には、
以下の 2 つのコマンドを実行してください。
@ -1651,19 +1667,25 @@ before running "/usr/sbin/freebsd-update install"</screen>
<step>
<para>その後、どちらのファイルシステムでも、
以下を実行してください。</para>
<acronym>CMOS</acronym> クロックが地域時間に設定されていて
GMT ではない場合
(&man.date.1; が正しい時間と地域を表示しないなら当てはまります)
には、次のコマンドを実行してください。</para>
<screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
</step>
<step>
<para>次に、新しい world
における最初の設定ファイルのアップデートを行います。たとえば、
に対する <filename class="directory">/etc</filename>
の最初の設定ファイルのアップデートを行います。
以下のコマンドは
<buildtarget>installworld</buildtarget>
に成功するために本質的なファイルのみを比較します。
たとえば、
このステップでは、最後のアップデート後に &os; に追加された、
新しいグループや新しいシステムアカウントををシステムに追加されることがあります。
<buildtarget>installworld</buildtarget> のステップで、
新しくインストールされたシステムのユーザおよびシステムのグループ名を問題なく使うことができるように、
この作業が必要となることがあります。</para>
新しいグループや新しいシステムアカウント、
もしくはスタートアップスクリプトがシステムに追加されることがあります。</para>
<screen>&prompt.root; <userinput>mergemaster -p</userinput></screen>
</step>
@ -1708,43 +1730,52 @@ before running "/usr/sbin/freebsd-update install"</screen>
<screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
</step>
</procedure>
<indexterm><primary>シングルユーザモード</primary></indexterm>
<para>もしシステムがダウンタイムを持つことができるのであれば、
システムのコンパイルをマルチユーザモードでおこない、
インストールのためにシングルユーザモードに移行するという方法ではなく、
コンパイルをシングルユーザモードで行うことを考えてください。
システムの再インストールでは、たくさんの重要なシステムファイル、
すべての標準的なシステムバイナリ、ライブラリ、
インクルードファイルが変更されるので、
実際に動作しているシステムにおいて、
特にアクティブなユーザは、トラブルに見舞われる可能性があります。</para>
</sect2>
<sect2 xml:id="src-updating">
<title><filename>/etc/make.conf</filename> の確認</title>
<title>設定ファイル</title>
<indexterm>
<primary><filename>make.conf</filename></primary>
</indexterm>
<para>この後の節ではそれぞれのステップについて詳しく説明しています。
特にカスタムカーネルを利用する場合について説明しています。</para>
<para>この節では world
の構築のプロセスで使われるコンフィグレーションファイルについて説明します。</para>
<para>&man.make.1; のオプションの説明は、&man.make.conf.5;
<para>&man.make.1; で利用可能なオプションの説明は &man.make.conf.5; や、
共通の例が
<filename>/usr/share/examples/etc/make.conf</filename> にあります。
これらの設定を <filename>/etc/make.conf</filename> に追加して、
&man.make.1; の実行やプログラムの構築方法を設定してください。
ある設定を変更したことにより、影響が広い範囲におよび、
驚くべき結果をもたらす可能性があります。
両方のファイルに書かれているコメントを読むことと、
デフォルトの設定は、パフォーマンスと安全性の観点から選ばれていることを覚えておいてください。</para>
<para><filename>/etc/make.conf</filename> で設定されたオプションは、
&man.make.1; が使われる際には常に有効となります。
これらの設定を <filename>/etc/make.conf</filename> に追加すると、
&man.make.1; の実行やプログラムの構築方法を設定できます。
これらのオプションは、
&man.make.1; が使われる際には常に有効となるため、
Ports Collection からアプリケーションをコンパイルする時、
ユーザが書いた C プログラムや &os;
オペレーティングシステムを構築する際に影響を及ぼします。</para>
</sect2>
<sect2 xml:id="src-conf">
<title><filename>/etc/src.conf</filename> を確認する</title>
<para>ある設定を変更したことにより、影響が広い範囲におよび、
驚くべき結果をもたらす可能性があります。
両方のファイルに書かれているコメントを読むことと、
デフォルトの設定は、パフォーマンスと安全性の観点から選ばれていることを覚えておいてください。</para>
<indexterm>
<primary><filename>src.conf</filename></primary>
</indexterm>
<para><filename>/etc/src.conf</filename> は、
ソースコードを用いたオペレーティングシステムの構築についてコントロールします。
ソースコードを用いたオペレーティングシステムの構築コントロールします。
<filename>/etc/make.conf</filename> とは異なり、
<filename>/etc/src.conf</filename> に書かれた設定は、
&os; オペレーティングシステムそのものを構築するときにのみ影響します。
@ -1753,123 +1784,7 @@ before running "/usr/sbin/freebsd-update install"</screen>
一見したところ無効にされている、
使われていないカーネルモジュールやビルドオプションに注意してください。
ときどき予期しなかったり、わずかな影響を与えることがあります。</para>
</sect2>
<sect2 xml:id="updating-etc">
<title><filename>/etc</filename> にあるファイルの更新</title>
<para><filename>/etc</filename> には、
システム起動時に実行されるスクリプトだけでなく、
システムの設定に関連する情報の大部分が含まれています。
そのディレクトリに含まれるスクリプトは、
&os; のバージョンによって多少異なります。</para>
<para>設定ファイルのなかには、<filename>/etc/group</filename>
のように稼働中のシステムが日々利用しているものもあります。</para>
<para>
<command>make installworld</command> によるインストールの段階では、
特定のユーザ名、あるいはグループが存在していることを
要求する場面があります。システムのアップグレードを行なう際には、
それらのユーザ名やグループが削除、
あるいは変更されて存在していない可能性が考えられます。
<command>make buildworld</command> において、
それらのユーザ名やグループが存在するか確認が行われる場合もあります。
</para>
<para>解決方法は、buildworld の前に <option>-p</option>
をつけて &man.mergemaster.8; を実行することです。
これを実行すると、<buildtarget>buildworld</buildtarget>
<buildtarget>installworld</buildtarget>
が成功するために必要なファイルだけを比較します。</para>
<tip>
<para>名前を変更したり、削除してしまったグループが所有しているファイルを、
次のようにして調べることもできます。
</para>
<screen>&prompt.root; <userinput>find / -group GID -print</userinput></screen>
<para>このコマンドはグループ名もしくは数字で示されるグループ ID
で指定されたグループ <replaceable>GID</replaceable>
が所有するすべてのファイルを表示します。</para>
</tip>
</sect2>
<sect2 xml:id="makeworld-singleuser">
<title>シングルユーザモードへの移行</title>
<indexterm><primary>シングルユーザモード</primary></indexterm>
<para>コンパイルは、シングルユーザモードで行なうことを考えてください。
システムの再インストールは重要なシステムファイル、
すべての標準システムのバイナリ、ライブラリ、インクルードファイルを操作します。
稼働中のシステムに (特に他のユーザがそのシステムにログインしている時に)
そのような変更を加えることは、トラブルを引き起こす原因となります。</para>
<indexterm><primary>マルチユーザモード</primary></indexterm>
<para>もう一つの方法として、マルチユーザモードでシステムを再構築して、
シングルユーザモードに移行してからそれをインストールする、
というのがあります。もしこのような方法で行ないたい場合は、
以下の手順を構築が完了するところまで飛ばしてください。
<buildtarget>installkernel</buildtarget> もしくは
<buildtarget>installworld</buildtarget> を実行する際に、
シングルユーザモードに移行してください。</para>
<screen>&prompt.root; <userinput>shutdown now</userinput></screen>
<para>あるいはシステムを再起動し、ブートプロンプトから
<quote>single user</quote> オプションを選択してください。
シングルユーザモードで起動した後は、
シェルプロンプトから次のように実行してください。</para>
<screen>&prompt.root; <userinput>fsck -p</userinput>
&prompt.root; <userinput>mount -u /</userinput>
&prompt.root; <userinput>mount -a -t ufs</userinput>
&prompt.root; <userinput>swapon -a</userinput></screen>
<para>これはファイルシステムをチェックした後、
<filename>/</filename> を読み書き可能にして再マウント、
<filename>/etc/fstab</filename> に指定されている、
それ以外の UFS ファイルシステムをすべてマウントしてから
スワップを有効にします。
</para>
<note>
<para>CMOS クロックが地域時間に設定されていて
GMT ではない場合
(&man.date.1; が正しい時間と地域を表示しないなら当てはまります)、
次のコマンドを実行すしてください。</para>
<screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
<para>こうすれば、
確実に地域時刻が正しく設定されます。</para>
</note>
</sect2>
<sect2 xml:id="cleaning-usr-obj">
<title><filename>/usr/obj</filename> の削除</title>
<para>システムが再構築される時、構築されたものはデフォルトで
<filename>/usr/obj</filename> 以下のサブディレクトリに格納されます。
そのディレクトリの下は <filename>/usr/src</filename>
と同じ構造となります。</para>
<para>もしこのディレクトリが存在しているのであれば、
このディレクトリを削除して、
<command>make buildworld</command> の行程にかかる時間を短縮し、
依存問題に悩まされるようなトラブルを回避することができます。</para>
<para><filename>/usr/obj</filename> 以下のファイルには、変更不可
(immutable) フラグがセットされているものがある可能性があります。
このようなファイルは最初に &man.chflags.1;
を用いてから削除する必要があります。</para>
<screen>&prompt.root; <userinput>cd /usr/obj</userinput>
&prompt.root; <userinput>chflags -R noschg *</userinput>
&prompt.root; <userinput>rm -rf *</userinput></screen>
</sect2>
</sect2>
<sect2 xml:id="make-buildworld">
<title>ベースシステムの再構築</title>
@ -2079,17 +1994,9 @@ Script done, &hellip;</screen>
<literal>kern.securelevel</literal> について詳しくは
&man.init.8; を、ファイルの様々なフラグについて詳しくは
&man.chflags.1; をご覧ください。</para>
</sect2>
<sect2 xml:id="new-kernel-singleuser">
<title>シングルユーザモードで再起動する</title>
<indexterm><primary>single-user mode</primary></indexterm>
<para>新しいカーネルが動作するかどうかテストするために、
シングルユーザモードで再起動してください。
シングルユーザモードでの起動は、
<xref linkend="makeworld-singleuser"/>
に書かれている手順に従ってください。</para>
シングルユーザモードで再起動してください。</para>
</sect2>
<sect2 xml:id="make-installworld">
@ -2239,10 +2146,6 @@ Script done, &hellip;</screen>
また、<filename>/etc</filename> にあるべきファイルのうちで
<filename>/usr/src/etc</filename> にないものもあります。</para>
<para>&man.mergemaster.8; を (勧められた通り)
使っているのであれば、<link linkend="updating-upgrading-rebooting">次の節</link>
まで飛ばしてもかまいません。</para>
<para>手動で行う際の一番簡単な方法は、
ファイルを新しいディレクトリにインストールしてから、
以前のものと異なっている部分を調べて更新作業を行なうことです。</para>
@ -2459,15 +2362,6 @@ Script done, &hellip;</screen>
</sect2>
<sect2 xml:id="updating-upgrading-rebooting">
<title>再起動</title>
<para>すべてがあるべき正しい場所に存在することをチェックしたら、
&man.shutdown.8; を実行してシステムを再起動してください。</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
</sect2>
<sect2 xml:id="make-delete-old-libs">
<title>使われなくなったライブラリの削除</title>
@ -2714,7 +2608,7 @@ Building everything..
<term>なにか悪いことがあったらどうすればいいですか?</term>
<listitem>
<para>自分の環境に前のビルドの余計なゴミが残っていないことをはっきりと確認してください。</para>
<para>まず、自分の環境に前のビルドの余計なゴミが残っていないことをはっきりと確認してください。</para>
<screen>&prompt.root; <userinput>chflags -R noschg /usr/obj/usr</userinput>
&prompt.root; <userinput>rm -rf /usr/obj/usr</userinput>