diff --git a/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml b/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml index 0914b13d93..22ab81239d 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: r43795 + Original revision: r43796 $FreeBSD$ --> に書かれている手順で入手したソースを用いて、 古い &os; のバージョンをアップデートしてください。 - world は、&os; のカーネル、コアシステムのバイナリ、 + &os; では、world は、 + カーネル、コアシステムのバイナリ、 ライブラリ、プログラミングファイル、組み込みのコンパイラを意味します。 これらのコンポーネントの構築およびインストールの順番は重要です。 @@ -1582,179 +1583,130 @@ before running "/usr/sbin/freebsd-update install" をインストールする前に変更すべきものがありますが、 古い world を壊す可能性があります。 そのため、一般的に設定のアップデートは、 - 2 つの手順が必要です。 + 2 つの手順が使われます。 多くの場合、アップデートのプロセスは、ファイルを置き換えたり、 追加のみを行い、古いファイルを削除しません。 - このことが問題を引き起こす可能性があります。 - そのため、アップデートにおいては、 - 手動で削除すべきファイルがあることを、 - 特定のステップで指定することもあります。 + このことが問題を引き起こす可能性があるため、 + /usr/src/UPDATING には、 + 手動で削除すべきファイルをどのステップで削除すべきかが書かれています。 - これらを配慮し、以下のアップグレードの推奨手順が作られました。 + これらを配慮し、アップグレードの推奨手順が作られました。 world の構築プロセスの概要 world の構築プロセスで用いられるコマンドは、 ここで示されている順番で実行してください。 この節では各コマンドの機能についてまとめます。 - + + 新しいコンパイラと関連ツールを最初にコンパイルし、 その後、新しいコンパイラで、 新しい world の残りの部分をコンパイルします。 コンパイルされたものは、 - /usr/obj に格納されます。 + /usr/obj + に格納されます。 + + &prompt.root; cd /usr/src +&prompt.root; make buildworld - make - buildkernel + コンパイラとカーネルのミスマッチを防ぐため、 + /usr/obj + にある新しいコンパイラを用いて新しいカーネルを構築します。 - ここでは、 - /usr/obj にある - 新しい コンパイラが用いられます。 - これにより、コンパイラとカーネルのミスマッチを防ぐことができます。 + &prompt.root; make buildkernel - make installkernel - 新しくアップデートされたカーネルで起動できるように、 - 新しいカーネルとカーネルモジュールをディスク上に配置します。 - + 新しいカーネルとカーネルモジュールをディスク上に配置します。 + + &prompt.root; make installkernel - - シングルユーザモードで再起動 + + すでに実行されているソフトウェアをアップデートする際の問題を最小限にするため、シングルユーザモードに移行します。 + また、新しいカーネル上で古い world + が実行される際の問題も最小限にします。 - シングルユーザモードは、 - すでに実行されているソフトウェアをアップデートする際の問題を最小限にします。 - また、新しいカーネル上で古い world が実行される際の問題も最小限にします。 - + &prompt.root; shutdown now - - mergemaster -p - - 新しい world における最初の設定ファイルのアップデートを行います。 - たとえば、新しいユーザグループをシステムに追加したり、 - パスワードデータベースに対し、新しいユーザ名を追加するかもしれません。 - 前回のアップデート後に、 - 新しいグループや特別のシステムのユーザアカウントが追加された場合に、 - installworld のステップで、 - 新しくインストールされたシステムのユーザまたはシステムのグループ名を問題なく使うことができるように、 - この作業がときどき必要となります。 - - - - make installworld - - world を /usr/obj からコピーします。 - これで、ディスクには新しいカーネルと world が置かれたことになります。 - - - - mergemaster - - ディスクに新しい world が置かれたので、 - 残りの設定ファイルをアップデートします。 - - - - make - delete-old - - このターゲットは (使われなくなった) ファイルを削除します。 - もし使われなくなったファイルがディスクに残っていると、 - 問題が起きる可能性があるため重要な作業です。 - たとえば、古い utmp.h が残っていると、 - 新しい utmpx.h をインストールしたときに、 - 問題が起きる ports があります。 - - - - 再起動 - - 新しいカーネル、world そして設定ファイルがロードされたので、 - 再起動が必要です。 - - - - make - delete-old-libs - - 使われなくなったライブラリが新しいライブラリと競合することを避けるため削除します。 - 古いライブラリを削除する前にすべての ports を再構築する必要があります。 - - - - もし、&os; のあるブランチのあるリリースから、 - 同じブランチの最新リリースにアップデートするのであれば - (たとえば 9.0 から 9.1)、 - この手順にしたがわなくても良いでしょう。 - なぜならば、コンパイラ、カーネル、ユーザランド、そして設定ファイルの間で、 - 重度のミスマッチが起きることはあまり考えられないためです。 - マイナーなアップデートでは、新しいカーネルの構築とインストール後に、 - 古いアプローチである - make world - を用いてもうまくいくでしょう。 - - メジャーリリースをまたいだアップデートでは、 - この方法を用いないと、何らかの問題にぶつかるでしょう。 - - この手続きは、 - 開発者たちがある種のミスマッチを完全に避けるために、長い年月をかけて進化してきました。 - 願わくば、この現在の手順が長い間安定してほしいものです。 - - まとめると、現在、ソースからの &os; - のアップグレードにおいて推奨されている方法は以下となります。 - - &prompt.root; cd /usr/src -&prompt.root; make buildworld -&prompt.root; make buildkernel -&prompt.root; make installkernel -&prompt.root; shutdown -r now - - - まれに buildworld - の前に mergemaster -p - を余分に実行することが必要な場合があります。その場合は - UPDATING にそう書かれています。 - &os; のメジャーバージョンをまたいで更新するのでなければ、 - 通常はこの手順を省略してもなんら問題ないでしょう。 - - - installkernel - が無事に終了したら、ローダのプロンプトから - boot -s - を使ってシングルユーザモードで立ち上げてください。 - - UFS を使っているのなら、以下を実行してください。 + シングルユーザモードに移行したら、UFS + でフォーマットされているシステムでは、 + 以下のコマンドを実行してください。 &prompt.root; mount -u / &prompt.root; mount -a -t ufs - ZFS を使っている場合には、以下を実行してください - (zpool の名前を zroot としています)。 + もしシステムが ZFS でフォーマットされている場合には、 + 以下の 2 つのコマンドを実行してください。 + この例では、zpool の名前は zroot + であると仮定します。 &prompt.root; zfs set readonly=off zroot &prompt.root; zfs mount -a + - その後、以下を実行してください。: + + その後、どちらのファイルシステムでも、 + 以下を実行してください。 - &prompt.root; adjkerntz -i -&prompt.root; mergemaster -p -&prompt.root; cd /usr/src -&prompt.root; make installworld -&prompt.root; mergemaster -&prompt.root; make delete-old -&prompt.root; reboot -&prompt.root; make delete-old-libs + &prompt.root; adjkerntz -i + - - この後の説明を読んでください + + 次に、新しい world + における最初の設定ファイルのアップデートを行います。たとえば、 + このステップでは、最後のアップデート後に &os; に追加された、 + 新しいグループや新しいシステムアカウントををシステムに追加されることがあります。 + installworld のステップで、 + 新しくインストールされたシステムのユーザおよびシステムのグループ名を問題なく使うことができるように、 + この作業が必要となることがあります。 - この後の節ではそれぞれのステップについて詳しく説明しています。 - 特にカスタムカーネルを利用する場合について説明しています。 - + &prompt.root; mergemaster -p + + + + /usr/obj + にある新しい world をインストールします。 + + &prompt.root; cd /usr/src +&prompt.root; make installworld + + + + 残りの設定ファイルをアップデートします。 + + &prompt.root; mergemaster -p + + + + 使われなくなったファイルを削除します。 + もし使われなくなったファイルがディスクに残っていると、 + 問題が起きる可能性があるため重要な作業です。 + + &prompt.root; make delete-old + + + + 再起動を行い、新しいカーネル、 + world そして設定ファイルをロードします。 + + &prompt.root; reboot + + + + 古いライブラリを削除する前に、 + + に書かれている手順にしたがって、 + すべての ports を再構築する必要があります。 + 再構築が終わったら、新しいライブラリと競合することを避けるため、 + 使われなくなったライブラリを削除します。 + + &prompt.root; make delete-old-libs + + @@ -1764,6 +1716,9 @@ before running "/usr/sbin/freebsd-update install" make.conf + この後の節ではそれぞれのステップについて詳しく説明しています。 + 特にカスタムカーネルを利用する場合について説明しています。 + &man.make.1; のオプションの説明は、&man.make.conf.5; や /usr/share/examples/etc/make.conf にあります。 これらの設定を /etc/make.conf に追加して、