- Merge the following from the English version:

r44736 -> r44774	head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml
This commit is contained in:
Ryusuke SUZUKI 2014-06-08 13:19:31 +00:00
parent d56abb52df
commit 1c8f9b2c5d
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=45031

View file

@ -3,7 +3,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: r44736
Original revision: r44774
$FreeBSD$
-->
<chapter xmlns="http://docbook.org/ns/docbook"
@ -279,10 +279,22 @@ MergeChanges /etc/ /var/named/etc/ /boot/device.hints</programlisting>
</sect2>
<sect2 xml:id="freebsdupdate-security-patches">
<title>セキュリティパッチ</title>
<title>セキュリティパッチの適用</title>
<para>&os; のセキュリティパッチを適用する過程は簡単になり、
管理者は <command>freebsd-update</command> を使って、
システムを完全にパッチがあたった状態に保つ事ができるようになりました。
&os; セキュリティ勧告の詳細については、
<link xlink:href="&url.books.arch-handbook.en;/security-advisories.html">&os; セキュリティ勧告</link>
<!-- <xref linkend="security-advisories"/> -->
の節で説明されています。</para>
<para>以下のコマンドを実行すると、&os;
のセキュリティパッチがダウンロードされ、インストールされます。</para>
のセキュリティパッチがダウンロードされ、インストールされます。
最初のコマンドは、未対応のパッチがあるかどうかを調べます。
もし未対応のパッチがある場合には、
パッチが当てられた際に変更されるファイルのリストが作成されます。
2 番目のコマンドはパッチを適用します。</para>
<screen>&prompt.root; <userinput>freebsd-update fetch</userinput>
&prompt.root; <userinput>freebsd-update install</userinput></screen>
@ -290,39 +302,38 @@ MergeChanges /etc/ /var/named/etc/ /boot/device.hints</programlisting>
<para>アップデートによってカーネルにパッチが当たった場合には、
パッチが当たったカーネルで起動するように、
システムを再起動する必要があります。
もしくは、システムにパッチが当てられ、
毎晩の &man.cron.8; ジョブとして、<command>freebsd-update</command>
を実行するように、
もし、実行中のバイナリにパッチが当てられた場合には、
パッチの当てられたバージョンのバイナリが使われるように、
影響のあるアプリケーションを再起動する必要があります。</para>
<para>毎日一度アップデートがないかどうかを自動的に確認するように設定するには、
以下のエントリを <filename>/etc/crobntab</filename>
に追加してください。</para>
<programlisting>@daily root freebsd-update cron</programlisting>
<para>このエントリは、毎日一度 <command>freebsd-update</command>
を実行することを意味します。
<option>cron</option> と共に実行すると、
<command>freebsd-update</command>
はアップデートが存在するときだけ確認します。
パッチが存在すると、
自動的にローカルディスクにダウンロードされますが、適用はされません。
ダウンロードされたパッチを確認し、手動でインストールする必要のあることが、
<systemitem class="username">root</systemitem>
宛てにメールで通知されます。</para>
<para>パッチが存在すると、
自動的にダウンロードされますが、適用はされません。
<systemitem class="username">root</systemitem>宛てにメールで、
ダウンロードされたパッチを確認し、
<command>freebsd-update install</command>
とともに手動でインストールする必要のあることが通知されます。</para>
<para>うまく行かなかった場合には、<command>freebsd-update</command>
を以下のように実行すると、最後の変更までロールバックできます。</para>
<screen>&prompt.root; <userinput>freebsd-update rollback</userinput></screen>
<screen>&prompt.root; <userinput>freebsd-update rollback</userinput>
Uninstalling updates... done.</screen>
<para>カーネルまたはカーネルモジュールがアップデートされた場合には、
完了後にシステムを再起動してください。
この作業によって、&os; がバイナリをメモリに読み込みます</para>
完了後にもう一度システムを再起動して、
影響のあったバイナリを再起動してください</para>
<para><command>freebsd-update</command>
ユーティリティが自動的にアップデートするカーネルは
<filename>GENERIC</filename> のみです。
カスタムカーネルがインストールされている場合には、
<command>freebsd-update</command>他の部分をインストールした後、
<command>freebsd-update</command> がインストールした後、
カーネルを再構築し、もう一度インストールする必要があります。
しかしながら、<filename>GENERIC</filename> カーネルが
<filename>/boot/GENERIC</filename> に存在する場合には、
@ -346,7 +357,6 @@ MergeChanges /etc/ /var/named/etc/ /boot/device.hints</programlisting>
新しいカスタムカーネルの再構築と再インストールは、
通常通り行うことができます。</para>
<note>
<para><command>freebsd-update</command> は、
常にカーネルをアップデートするとは限りません。
<command>freebsd-update install</command>
@ -359,161 +369,24 @@ MergeChanges /etc/ /var/named/etc/ /boot/device.hints</programlisting>
<command>uname -r</command><literal>-p</literal>
で表示する時にこのファイルが参照されます。
そのため、何も変更されていない場合でも、カスタムカーネルを再構築することにより、
&man.uname.1; がシステムの正確なパッチレベルを報告するようになります。
<command>uname</command> がシステムの正確なパッチレベルを報告するようになります。
各システムにインストールされているアップデートをすばやく把握できるようになるので、
特に複数のシステムを管理するときに助けとなります。</para>
</note>
</sect2>
<sect2 xml:id="freebsdupdate-upgrade">
<title>メジャーおよびマイナーバージョンのアップグレード</title>
<title>メジャーおよびマイナーバージョンのアップグレードを行う</title>
<para>&os; のマイナーバージョン間のアップグレード、
たとえば、&os;&nbsp;9.0 から &os;&nbsp;9.1 へのアップグレードは、
<emphasis>マイナーバージョン</emphasis> アップグレードと呼ばれます。
通常は、マイナーバージョンのアップグレードを行った後でも、
インストールされているアプリケーションは問題なく動きます。</para>
<para><emphasis>メジャーバージョン</emphasis> アップグレードは、
&os;&nbsp;8.X から &os;&nbsp;9.X へのアップグレードといった、
<emphasis>メジャーバージョン</emphasis> アップグレードは、
&os;&nbsp;9.X から &os;&nbsp;10.X へのアップグレードといった、
&os; のメジャーバージョンが変わるようなアップグレードのことです。
メジャーバージョンのアップグレードでは、
古いオブジェクトファイルやライブラリが削除され、
これらに依存する多くのサードパーティ製アプリケーションに影響を与える可能性があります。
インストールされているすべての ports を削除して再インストールするか、
メジャーアップグレード後、
<package>ports-mgmt/portmaster</package>
といったユーティリティを使ってアップグレードすることが推奨されています。
インストールされているアプリケーションのブルートフォース的な再構築は、
以下のコマンドにより行うことができます。</para>
<screen>&prompt.root; <userinput>portmaster -af</userinput></screen>
<para>このコマンドは、すべての ports を適切に再インストールしようとします。
<varname>BATCH</varname> 環境変数を
<literal>yes</literal> に設定しておくと、
アップデートプロセスの途中の質問に対し
<literal>yes</literal> と答えるようになるので、
ビルドプロセスでの手動操作を省略できます。</para>
<sect3 xml:id="freebsd-update-custom-kernel">
<title>カスタムカーネルの取り扱い</title>
<para>カスタムカーネルを使用している場合には、アップグレードのプロセスは、
幾分複雑となります。
アップグレードの手順は &os; のバージョンによって変わります。</para>
<sect4 xml:id="freebsd-update-custom-kernel-8x">
<title>&os;&nbsp;8.X におけるカスタムカーネル</title>
<para><filename>GENERIC</filename> カーネルが
<filename>/boot/GENERIC</filename>
に置かれている必要があります。
もし <filename>GENERIC</filename>
カーネルがシステムに存在しない場合には、
以下のどれかの方法で用意してください。</para>
<itemizedlist>
<listitem>
<para>ただ一度だけカスタムカーネルを構築したのであれば、
<filename>/boot/kernel.old</filename>
<filename>GENERIC</filename> カーネルそのものです。
このディレクトリの名前を
<filename>/boot/GENERIC</filename>
へと変更してください。</para>
</listitem>
<listitem>
<para>コンピュータへの物理的なアクセスが可能であれば、
以下のコマンドを実行することで、
インストールメディアから <filename>GENERIC</filename>
カーネルをインストールできます。</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput>
&prompt.root; <userinput>./install.sh GENERIC</userinput></screen>
<para>ここで <filename
class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
を実際のリリース番号に置き換えてください。
<filename>GENERIC</filename> は、デフォルトで <filename>/boot/GENERIC</filename>
にインストールされます。</para>
</listitem>
<listitem>
<para>上記の方法がすべて失敗するのであれば、
<filename>GENERIC</filename> カーネルをソースから再構築して、
インストールしてください。</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>env DESTDIR=/boot/GENERIC make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null</userinput>
&prompt.root; <userinput>mv /boot/GENERIC/boot/kernel/* /boot/GENERIC</userinput>
&prompt.root; <userinput>rm -rf /boot/GENERIC/boot</userinput></screen>
<para><command>freebsd-update</command> は、このカーネルを
<filename>GENERIC</filename> カーネルとして扱います。
<filename>GENERIC</filename> コンフィグレーションファイルは、
とにかく変更してはいけません。
また、特別なオプションを指定しないで構築してください。</para>
</listitem>
</itemizedlist>
<para>この時点で <filename>GENERIC</filename>
カーネルで再起動する必要はありません。</para>
</sect4>
<sect4 xml:id="freebsd-update-custom-kernel-9x">
<title>&os;&nbsp;9.X 以降のシステムにおけるカスタムカーネル</title>
<itemizedlist>
<listitem>
<para>ただ一度だけカスタムカーネルを構築したのであれば、
<filename>/boot/kernel.old</filename>
<filename>GENERIC</filename> カーネルそのものです。
ただ単にこのディレクトリの名前を
<filename>/boot/kernel</filename>
へと変更してください。</para>
</listitem>
<listitem>
<para>コンピュータへの物理的なアクセスが可能であれば、
以下のコマンドで、インストールメディアから
<filename>GENERIC</filename>
カーネルをインストールできます。</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cd /cdrom/usr/freebsd-dist</userinput>
&prompt.root; <userinput>tar -C/ -xvf kernel.txz boot/kernel/kernel</userinput></screen>
</listitem>
<listitem>
<para>上記の方法が失敗するのであれば、
<filename>GENERIC</filename> カーネルをソースから再構築して、
インストールしてください。</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null</userinput></screen>
<para><command>freebsd-update</command> は、このカーネルを
<filename>GENERIC</filename> カーネルとして扱います。
<filename>GENERIC</filename> コンフィグレーションファイルは、
とにかく変更してはいけません。
また、特別なオプションを指定しないで構築してください。</para>
</listitem>
</itemizedlist>
<para>この時点で <filename>GENERIC</filename>
カーネルで再起動する必要はありません。</para>
</sect4>
</sect3>
<sect3 xml:id="freebsdupdate-using">
<title>アップグレードを行う</title>
<para><command>freebsd-update</command>
によるメジャー、またはマイナーバージョンのアップデートでは、
リリースバージョンをターゲットにして実行します。
以下のコマンドは、&os;&nbsp;9.1 にアップデートします。</para>
どちらのアップグレードもリリース番号のターゲットを指定する事で、
<command>freebsd-update</command> によって行う事ができます。
以下のコマンドを実行すると、&os;&nbsp;9.0
のシステムを &os;&nbsp;9.1 にアップグレードします。</para>
<screen>&prompt.root; <userinput>freebsd-update -r 9.1-RELEASE upgrade</userinput></screen>
@ -539,7 +412,7 @@ The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? y</screen>
Does this look reasonable (y/n)? <userinput>y</userinput></screen>
<para>ここで、<command>freebsd-update</command>
はアップグレードに必要なすべてのファイルをダウンロードします。
@ -623,20 +496,145 @@ before running "/usr/sbin/freebsd-update install"</screen>
<para>使用しているライブラリのバージョン番号の付けられ方によって、
3 つのインストールフェーズが 2 つになる場合もあります。</para>
</note>
</sect3>
<para>アップグレードはこれで終了です。
もしメジャーアップグレードを行った場合には、
<xref linkend="freebsdupdate-portsrebuild"/>
で説明されているようにすべての ports および package
を再構築してください。
カスタムカーネルを使っているシステムでは、
カスタムカーネルのアップグレードの方法について、<xref
linkend="freebsd-update-custom-kernel-9x"/> または <xref
linkend="freebsd-update-custom-kernel-8x"/>
を参照してください。</para>
<sect3 xml:id="freebsd-update-custom-kernel-9x">
<title>&os;&nbsp;9.X 以降のシステムにおけるカスタムカーネル</title>
<itemizedlist>
<listitem>
<para>ただ一度だけカスタムカーネルを構築したのであれば、
<filename>/boot/kernel.old</filename>
<filename>GENERIC</filename> カーネルそのものです。
このディレクトリの名前を
<filename>/boot/kernel</filename>
へと変更してください。</para>
</listitem>
<listitem>
<para>コンピュータへの物理的なアクセスが可能であれば、
以下のコマンドで、インストールメディアから
<filename>GENERIC</filename>
カーネルをインストールできます。</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cd /cdrom/usr/freebsd-dist</userinput>
&prompt.root; <userinput>tar -C/ -xvf kernel.txz boot/kernel/kernel</userinput></screen>
</listitem>
<listitem>
<para>上記の方法に失敗するのであれば、
<filename>GENERIC</filename> カーネルをソースから再構築して、
インストールしてください。</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null</userinput></screen>
<para><command>freebsd-update</command> がこのカーネルを
<filename>GENERIC</filename> カーネルとして認識するために、
<filename>GENERIC</filename> コンフィグレーションファイルは、
とにかく変更してはいけません。
また、特別なオプションを指定しないで構築してください。</para>
</listitem>
</itemizedlist>
<para>この時点で <filename>GENERIC</filename>
カーネルで再起動する必要はありません。</para>
</sect3>
<sect3 xml:id="freebsd-update-custom-kernel-8x">
<title>&os;&nbsp;8.X におけるカスタムカーネル</title>
<para><filename>GENERIC</filename> カーネルが
<filename>/boot/GENERIC</filename>
に置かれている必要があります。
もし <filename>GENERIC</filename>
カーネルがシステムに存在しない場合には、
以下のどれかの方法で用意してください。</para>
<itemizedlist>
<listitem>
<para>ただ一度だけカスタムカーネルを構築したのであれば、
<filename>/boot/kernel.old</filename>
<filename>GENERIC</filename> カーネルそのものです。
このディレクトリの名前を
<filename>/boot/GENERIC</filename>
へと変更してください。</para>
</listitem>
<listitem>
<para>コンピュータへの物理的なアクセスが可能であれば、
以下のコマンドを実行することで、
インストールメディアから <filename>GENERIC</filename>
カーネルをインストールできます。</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput>
&prompt.root; <userinput>./install.sh GENERIC</userinput></screen>
<para>ここで <filename
class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
を実際のリリース番号に置き換えてください。
<filename>GENERIC</filename> カーネルは、
デフォルトで <filename>/boot/GENERIC</filename>
にインストールされます。</para>
</listitem>
<listitem>
<para>上記の方法がすべて失敗するのであれば、
<filename>GENERIC</filename> カーネルをソースから再構築して、
インストールしてください。</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>env DESTDIR=/boot/GENERIC make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null</userinput>
&prompt.root; <userinput>mv /boot/GENERIC/boot/kernel/* /boot/GENERIC</userinput>
&prompt.root; <userinput>rm -rf /boot/GENERIC/boot</userinput></screen>
<para><command>freebsd-update</command> が、このカーネルを
<filename>GENERIC</filename> カーネルとして扱うように、
<filename>GENERIC</filename> コンフィグレーションファイルは、
とにかく変更してはいけません。
また、特別なオプションを指定しないで構築してください。</para>
</listitem>
</itemizedlist>
<para>この時点で <filename>GENERIC</filename>
カーネルで再起動する必要はありません。</para>
</sect3>
<sect3 xml:id="freebsdupdate-portsrebuild">
<title>メジャーバージョンアップグレード後の ports の再構築</title>
<para>メジャーバージョンアップグレードを行った後では、
すべてのサードパーティ製のソフトウェアを再構築し、
再インストールする必要があります。
この作業が必要なのは、インストールされているソフトウェアが、
アップグレードの際に削除されたライブラリに依存している可能性があるためです。
<package>ports-mgmt/portupgrade</package>
は、このプロセスを自動化します。</para>
<para>一般的に、マイナーバージョンアップグレードの後では、
インストールされているアプリケーションは、問題なく動作するでしょう。
メジャーバージョンが異なるとアプリケーションバイナリーインタフェース
(<acronym>ABI</acronym>) が異なるため、
サードパーティ製のアプリケーションの多くは動作しなくなるでしょう。
メジャーバージョンアップグレードを行った後では、
インストールされているすべての packages, ports を
<package>ports-mgmt/portmaster</package>
のようなユーティリティを使ってアップグレードする必要があります。
以下のコマンドを用いて、
インストールされているすべてのアプリケーションを再構築できます。</para>
<screen>&prompt.root; <userinput>portmaster -af</userinput></screen>
<screen>&prompt.root; <userinput>portmaster -af</userinput></screen>
<para>このコマンドを実行すると、
設定を変更するオプションを持つアプリケーションは、
設定変更のスクリーンを表示し、
ユーザからの指示待ちの状態で停止します。
この振る舞いをやめ、デフォルトのオプションを使用するには、
上記のコマンドに <option>-G</option> を含めてください。</para>
<para>この作業の終了後、最後にもう一度
<command>freebsd-update</command>