- Merge the following from the English version:

r43794 -> r43795	head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml
This commit is contained in:
Ryusuke SUZUKI 2014-03-08 13:32:57 +00:00
parent b59cbd5364
commit 625a07a13e
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44193

View file

@ -3,7 +3,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: r43794
Original revision: r43795
$FreeBSD$
-->
<chapter xmlns="http://docbook.org/ns/docbook"
@ -1493,7 +1493,7 @@ before running "/usr/sbin/freebsd-update install"</screen>
以下を行ってください。</para>
<procedure>
<title>world の構築に行う作業</title>
<title>world の構築<emphasis></emphasis>に行う作業</title>
<step>
<para>重要なデータを他のシステムやリムーバブルメディアにバックアップし、
@ -1552,104 +1552,60 @@ before running "/usr/sbin/freebsd-update install"</screen>
</warning>
<sect2 xml:id="canonical-build">
<title>システムを更新する正式な方法</title>
<title>システム更新の概要</title>
<para>上で述べた作業を行ったら、
以下の手順を踏んでシステムをアップデートしてください。</para>
<para>world の構築では、<xref linkend="synching"/>
に書かれている手順で入手したソースを用いて、
古い &os; のバージョンをアップデートしてください。</para>
<para>この節で説明するアップデートのプロセスは、古いコンパイラ、
古いカーネル、古い world、そして古いコンフィグレーションファイルからなる、
古いバージョンの &os; をアップデートすることを想定しています。
ここで <quote>world</quote> は、コアシステムのバイナリ、ライブラリ、
プログラミングファイルを意味します。
コンパイラは <quote>world</quote> の一部ですが、
いくつか特別に気をつけなければならないことがあります。</para>
<para><quote>world</quote> は、&os; のカーネル、コアシステムのバイナリ、
ライブラリ、プログラミングファイル、組み込みのコンパイラを意味します。
これらのコンポーネントの構築およびインストールの順番は重要です。</para>
<para>また、これらのステップでは、
新しいバージョンのソースをすでに入手していることも仮定しています。
もしシステムのソースコードが古いようでしたら、
<xref linkend="synching"/> を読んで、
ソースコードを新しいバージョンへ同期する方法の詳細を理解してください。</para>
<para>ソースからのシステムのアップデートは、
当初予想していたものよりとらえがたいものです。
長い年月において避けられない依存問題が判明したため、
&os; の開発者達は、推奨されるアプローチを大きく変更しました。
この節では、現在推奨されているアップグレードの手順の背後にある、
理論的根拠について説明します。</para>
<para>連続したアップデートの手順は、以下の問題に対応している必要があります。</para>
<itemizedlist>
<listitem>
<para>古いコンパイラは、
バグを含み新しいカーネルをコンパイルできない可能性があります。
<para>例えば、古いコンパイラは、
バグを含み、新しいカーネルをコンパイルできない可能性があります。
そのため、新しいカーネルの構築には、
新しいコンパイラを使う必要があります。
ことのことは、新しいカーネルを構築する前に、
新しいコンパイラを構築していなければならないことを意味しています。
必ずしも、新しいカーネルを構築する前に、新しいコンパイラが
<emphasis>インストールされている</emphasis>
必要があることを意味しているわけではありません。</para>
</listitem>
新しいコンパイラを使う必要があり、
新しいコンパイラを構築しなくてはいけませんが、
必ずしも、
新しいコンパイラがインストールされている必要があるわけではありません。</para>
<listitem>
<para>新しい world は、
新しいカーネルの機能に依存している可能性があるため、
新しい world をインストールする前に、
新しいカーネルがインストールされていなければなりません。</para>
</listitem>
</itemizedlist>
<para>これら 2 つの重要事項は、
以下の説明で中心となる <buildtarget>buildworld</buildtarget>,
<buildtarget>buildkernel</buildtarget>,
<buildtarget>installkernel</buildtarget>,
<buildtarget>installworld</buildtarget> の基本です。
他の理由については以下でリストアップします。</para>
<itemizedlist>
<listitem>
<para>古い world は、新しいカーネルでは正しく動かないかも知れません。
新しいカーネルがインストールされていなければなりません。
古い world は、新しいカーネルでは正しく動かないかも知れません。
そのため、新しいカーネルをインストールしたら、
直ちに新しい world をインストールしてください。</para>
</listitem>
<listitem>
<para>設定の中には、新しい world
をインストールする前に変更すべきものがありますが、
古い world を壊す可能性があります。
そのため、一般的に設定のアップデートは、
2 つの手順が必要です。</para>
</listitem>
<listitem>
<para>多くの場合、アップデートのプロセスは、ファイルを置き換えたり、
2 つの手順が必要です。
多くの場合、アップデートのプロセスは、ファイルを置き換えたり、
追加のみを行い、古いファイルを削除しません。
このことが問題を引き起こす可能性があります。
そのため、アップデートにおいては、
手動で削除すべきファイルがあることを、
特定のステップで指定することもあります。
これは将来自動化されるかもしれないし、されないかもしれません。</para>
</listitem>
</itemizedlist>
特定のステップで指定することもあります。</para>
<para>これらを配慮し、以下の推奨手順が作られました。
アップデートの細かい手順においては、追加の手順が必要になるかもしれませんが、
この中心となるプロセスは、しばらくの間変わっていません。</para>
<orderedlist>
<listitem>
<para><command>make buildworld</command></para>
<para>これらを配慮し、以下のアップグレードの推奨手順が作られました。</para>
<procedure>
<title>world の構築プロセスの概要</title>
<para>world の構築プロセスで用いられるコマンドは、
ここで示されている順番で実行してください。
この節では各コマンドの機能についてまとめます。</para>
<step>
<para>新しいコンパイラと関連ツールを最初にコンパイルし、
その後、新しいコンパイラで、
新しい world の残りの部分をコンパイルします。
コンパイルされたものは、
<filename>/usr/obj</filename> に格納されます。</para>
</listitem>
</step>
<listitem>
<step>
<para><command>make
buildkernel</command></para>
@ -1657,25 +1613,25 @@ before running "/usr/sbin/freebsd-update install"</screen>
<filename>/usr/obj</filename> にある
<emphasis>新しい</emphasis> コンパイラが用いられます。
これにより、コンパイラとカーネルのミスマッチを防ぐことができます。</para>
</listitem>
</step>
<listitem>
<step>
<para><command>make installkernel</command></para>
<para>新しくアップデートされたカーネルで起動できるように、
新しいカーネルとカーネルモジュールをディスク上に配置します。
</para>
</listitem>
</step>
<listitem>
<step>
<para>シングルユーザモードで再起動</para>
<para>シングルユーザモードは、
すでに実行されているソフトウェアをアップデートする際の問題を最小限にします。
また、新しいカーネル上で古い world が実行される際の問題も最小限にします。</para>
</listitem>
</step>
<listitem>
<step>
<para><command>mergemaster -p</command></para>
<para>新しい world における最初の設定ファイルのアップデートを行います。
@ -1686,23 +1642,23 @@ before running "/usr/sbin/freebsd-update install"</screen>
<buildtarget>installworld</buildtarget> のステップで、
新しくインストールされたシステムのユーザまたはシステムのグループ名を問題なく使うことができるように、
この作業がときどき必要となります。</para>
</listitem>
</step>
<listitem>
<step>
<para><command>make installworld</command></para>
<para>world を <filename>/usr/obj</filename> からコピーします。
これで、ディスクには新しいカーネルと world が置かれたことになります。</para>
</listitem>
</step>
<listitem>
<step>
<para><command>mergemaster</command></para>
<para>ディスクに新しい world が置かれたので、
残りの設定ファイルをアップデートします。</para>
</listitem>
</step>
<listitem>
<step>
<para><command>make
delete-old</command></para>
@ -1712,23 +1668,23 @@ before running "/usr/sbin/freebsd-update install"</screen>
たとえば、古い <filename>utmp.h</filename> が残っていると、
新しい <filename>utmpx.h</filename> をインストールしたときに、
問題が起きる ports があります。</para>
</listitem>
</step>
<listitem>
<step>
<para>再起動</para>
<para>新しいカーネル、world そして設定ファイルがロードされたので、
再起動が必要です。</para>
</listitem>
</step>
<listitem>
<step>
<para><command>make
delete-old-libs</command></para>
<para>使われなくなったライブラリが新しいライブラリと競合することを避けるため削除します。
古いライブラリを削除する前にすべての ports を再構築する必要があります。</para>
</listitem>
</orderedlist>
</step>
</procedure>
<para>もし、&os; のあるブランチのあるリリースから、
同じブランチの最新リリースにアップデートするのであれば