Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Jun 2012 08:04:58 +0000 (UTC)
From:      Ryusuke SUZUKI <ryusuke@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r39052 - head/ja_JP.eucJP/books/handbook/cutting-edge
Message-ID:  <201206170804.q5H84wYL093513@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ryusuke
Date: Sun Jun 17 08:04:57 2012
New Revision: 39052
URL: http://svn.freebsd.org/changeset/doc/39052

Log:
  - Merge the following from the English version:
  
  	r36653 -> r38879	head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.sgml
  
  Reference: [doc-jp-work 2263]

Modified:
  head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.sgml

Modified: head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.sgml
==============================================================================
--- head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.sgml	Sat Jun 16 17:09:01 2012	(r39051)
+++ head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.sgml	Sun Jun 17 08:04:57 2012	(r39052)
@@ -2,7 +2,7 @@
      The FreeBSD Documentation Project
      The FreeBSD Japanese Documentation Project
 
-     Original revision: r36653
+     Original revision: r38879
      $FreeBSD$
 -->
 
@@ -189,9 +189,10 @@ Components src world kernel</programlist
       <para>このパラメータは、&os; のどの部分を最新に維持するかを設定します。
 	デフォルトではソースコード、ベースシステム全体、そしてカーネルをアップデートします。
 	Components に設定できる項目は、インストール時に選択できるものと同じです。
-	たとえば、ここで "world/games" を追加すると、
+	たとえば、ここで <literal>world/games</literal> を追加すると、
 	game にパッチが当たるようになります。
-	"src/bin" を追加すると、<filename class="directory">src/bin</filename>
+	<literal>src/bin</literal> を追加すると、
+	<filename class="directory">src/bin</filename>
 	ソースコードのアップデートを許可します。</para>
 
       <para>この部分についてはデフォルトのままにしておき、
@@ -302,11 +303,11 @@ MergeChanges /etc/ /var/named/etc/</prog
 
       <para><command>freebsd-update</command>
 	ユーティリティが自動的にアップデートするカーネルは
-	<literal>GENERIC</literal> のみです。
+	<filename>GENERIC</filename> のみです。
 	カスタムカーネルを使っている場合には、<command>freebsd-update</command>
 	が他の部分をアップデートした後、
 	カーネルを再構築し、もう一度インストールする必要があります。
-	<literal>GENERIC</literal> カーネルが <filename
+	<filename>GENERIC</filename> カーネルが <filename
 	  class="directory">/boot/GENERIC</filename>
 	に存在する場合には、
 	<command>freebsd-update</command> により
@@ -314,7 +315,7 @@ MergeChanges /etc/ /var/named/etc/</prog
 	アップデートされます。</para>
 
       <note>
-	<para><literal>GENERIC</literal> カーネルを、常に <filename
+	<para><filename>GENERIC</filename> カーネルを、常に <filename
 	    class="directory">/boot/GENERIC</filename>
 	  に置いておくことは良い考えです。
 	  さまざまな問題を解決する際や、
@@ -370,10 +371,10 @@ MergeChanges /etc/ /var/named/etc/</prog
 
       <para>カスタムカーネルを使用している場合には、
 	アップグレードのプロセスは幾分複雑となります。
-	<literal>GENERIC</literal> カーネルが <filename
+	<filename>GENERIC</filename> カーネルが <filename
 	  class="directory">/boot/GENERIC</filename>
 	に置かれている必要があります。
-	もし <literal>GENERIC</literal>
+	もし <filename>GENERIC</filename>
 	カーネルがシステムに存在しない場合には、
 	以下のどれかの方法で用意してください。</para>
 
@@ -381,7 +382,7 @@ MergeChanges /etc/ /var/named/etc/</prog
 	<listitem>
 	  <para>ただ一度だけカスタムカーネルを構築したのであれば、
 	    <filename class="directory">/boot/kernel.old</filename>
-	    カーネルは <literal>GENERIC</literal> そのものです。
+	    カーネルは <filename>GENERIC</filename> そのものです。
 	    ただ単にこのディレクトリの名前を
 	    <filename class="directory">/boot/GENERIC</filename>
 	    へと変更してください。</para>
@@ -389,7 +390,7 @@ MergeChanges /etc/ /var/named/etc/</prog
 
 	<listitem>
 	  <para>コンピュータへの物理的なアクセスが可能であれば、
-	    CD-ROM から <literal>GENERIC</literal>
+	    CD-ROM から <filename>GENERIC</filename>
 	    カーネルをインストールできます。
 	    インストールディスクを挿入して、以下のコマンドを実行してください。</para>
 
@@ -400,14 +401,14 @@ MergeChanges /etc/ /var/named/etc/</prog
 	  <para>ここで <filename
 	      class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
 	    を実際のリリース番号に置き換えてください。
-	    <literal>GENERIC</literal> は、デフォルトで <filename
+	    <filename>GENERIC</filename> は、デフォルトで <filename
 	      class="directory">/boot/GENERIC</filename>
 	    にインストールされます。</para>
 	</listitem>
 
 	<listitem>
 	  <para>上記の方法が失敗するのであれば、
-	    <literal>GENERIC</literal> カーネルをソースから再構築して、
+	    <filename>GENERIC</filename> カーネルをソースから再構築して、
 	    インストールしてください。</para>
 
 	  <screen>&prompt.root; <userinput>cd /usr/src</userinput>
@@ -416,8 +417,8 @@ MergeChanges /etc/ /var/named/etc/</prog
 &prompt.root; <userinput>rm -rf /boot/GENERIC/boot</userinput></screen>
 
 	  <para><command>freebsd-update</command> は、このカーネルを
-	    <literal>GENERIC</literal> として扱います。
-	    <literal>GENERIC</literal> コンフィグレーションファイルは、
+	    <filename>GENERIC</filename> として扱います。
+	    <filename>GENERIC</filename> コンフィグレーションファイルは、
 	    とにかく変更してはいけません。
 	    また、特別なオプションを指定しない
 	    (<filename>/etc/make.conf</filename> が空であることが望ましい)
@@ -425,7 +426,7 @@ MergeChanges /etc/ /var/named/etc/</prog
 	</listitem>
       </itemizedlist>
 
-      <para>この時点で <literal>GENERIC</literal>
+      <para>この時点で <filename>GENERIC</filename>
 	カーネルで再起動する必要はありません。</para>
 
       <para><command>freebsd-update</command>
@@ -473,7 +474,7 @@ This kernel will not be updated: you MUS
 before running "/usr/sbin/freebsd-update install"</screen>
 
       <para>この時点ではこの警告を無視してもかまいません。
-	アップデートされた <literal>GENERIC</literal> カーネルは、
+	アップデートされた <filename>GENERIC</filename> カーネルは、
 	アップグレードプロセスの途中で利用されます。</para>
 
       <para>すべてのパッチがローカルシステムへダウンロードされたら、
@@ -509,7 +510,7 @@ before running "/usr/sbin/freebsd-update
       <screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>
 
       <warning>
-	<para><literal>GENERIC</literal> カーネルで再起動する前に、
+	<para><filename>GENERIC</filename> カーネルで再起動する前に、
 	  システムが適切に起動するために必要な
 	  (もしコンピュータにリモートでアクセスしてアップデートしていたのであれば、
 	  ネットワーク接続に必要な)
@@ -519,7 +520,7 @@ before running "/usr/sbin/freebsd-update
 	  ビルド済みの機能を含んでいるのであれば、
 	  これらのモジュールを一時的に <filename>/boot/loader.conf</filename>
 	  の機能を用いて、
-	  <literal>GENERIC</literal> へと読み込んでください。
+	  <filename>GENERIC</filename> へと読み込んでください。
 	  アップグレードプロセスが終わるまでは、
 	  重要ではないサービスを無効にし、
 	  ディスクやネットワークのマウントなどは避けてください。</para>
@@ -564,7 +565,7 @@ before running "/usr/sbin/freebsd-update
 
       <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
 
-      <para><literal>GENERIC</literal>
+      <para><filename>GENERIC</filename>
 	カーネルを一時的に読み込んでいたのであれば、
 	ここで、通常の方法を用いて新しいカスタムを構築し、インストールしてください。</para>
 
@@ -669,10 +670,10 @@ before running "/usr/sbin/freebsd-update
       以下のコマンドを実行してください。</para>
 
     <screen>&prompt.root; <userinput>portsnap fetch</userinput>
-Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
-Fetching snapshot tag from portsnap1.FreeBSD.org... done.
+Looking up portsnap.FreeBSD.org mirrors... 9 mirrors found.
+Fetching snapshot tag from geodns-1.portsnap.freebsd.org... done.
 Fetching snapshot metadata... done.
-Updating from Wed Aug  6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
+Updating from Tue May 22 02:12:15 CEST 2012 to Wed May 23 16:28:31 CEST 2012.
 Fetching 3 metadata patches.. done.
 Applying metadata patches... done.
 Fetching 3 metadata files... done.
@@ -2123,8 +2124,9 @@ DOCSUPFILE?= /usr/share/examples/cvsup/d
 	シングルユーザモードで立ち上げましょう。
 	それから、以下を実行してください。</para>
 
-      <screen>&prompt.root; <userinput>adjkerntz -i</userinput>
+      <screen>&prompt.root; <userinput>mount -u /</userinput>
 &prompt.root; <userinput>mount -a -t ufs</userinput>
+&prompt.root; <userinput>adjkerntz -i</userinput>
 &prompt.root; <userinput>mergemaster -p</userinput>
 &prompt.root; <userinput>cd /usr/src</userinput>
 &prompt.root; <userinput>make installworld</userinput>
@@ -2228,13 +2230,7 @@ DOCSUPFILE?= /usr/share/examples/cvsup/d
 	オプションをつけて &man.mergemaster.8; を実行することです。
 	これを実行すると、<maketarget>buildworld</maketarget> や
 	<maketarget>installworld</maketarget>
-	が成功するために必要なファイルだけを比較します。
-	古いバージョンの <command>mergemaster</command>
-	を使っていて、<option>-p</option> がサポートされていない場合、
-	最初に実行するときソースツリーにある新しいバージョンのものを使ってください。</para>
-
-      <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/mergemaster</userinput>
-&prompt.root; <userinput>./mergemaster.sh -p</userinput></screen>
+	が成功するために必要なファイルだけを比較します。</para>
 
       <tip>
 	<para>もし、あなたがもっと神経質な人なら、あなたが名前を変更したり、
@@ -3260,6 +3256,113 @@ Building everything..
     </sect2>
   </sect1>
 
+  <sect1 id="make-delete-old">
+    <sect1info>
+      <authorgroup>
+	<author>
+	  <firstname>Anton</firstname>
+	  <surname>Shterenlikht</surname>
+	  <contrib>ベースとなったノートの提供: </contrib>
+	</author>
+      </authorgroup>
+    </sect1info>
+    <title>使われなくなったファイル、ディレクトリ、ライブラリの削除</title>
+    <indexterm>
+      <primary>Deleting obsolete files, directories and libraries</primary>
+    </indexterm>
+
+    <para>&os; の開発サイクルにおいて、
+      ファイルやシステムの一部が使われなくなることがあります。
+      それらの機能が別の場所で実装されたり、
+      ライブラリのバージョン番号が変わったり、
+      システムから完全に削除されることがあるためです。
+      システムのアップデート時に削除が必要になるのは、
+      古いファイル、ライブラリそしてディレクトリです。
+      これらのファイルを削除すると、記憶媒体 (およびバックアップ媒体)
+      において不必要な容量を占めている古いファイルが、
+      システム上に散乱することがなくなります。
+      また、古いライブラリのセキュリティや安定性に問題があると、
+      ライブラリを新しくしてシステムを安定な状態にし、
+      古いライブラリの実装からシステムがクラッシュすることを防がなければなりません。
+      使われなくなったファイル、ディレクトリ、ライブラリは
+      <filename>/usr/src/ObsoleteFiles.inc</filename>
+      にまとめられています。この節では、
+      アップグレードの過程でこれらのファイルを削除する方法について説明します。</para>
+
+    <para>システムは、<xref linkend="canonical-build">
+      で説明した方法で構築されていると仮定します。
+      <command>make <maketarget>installworld</maketarget></command> と、
+      その後の <command>mergemaster</command> コマンドが無事に終わったら、
+      以下の方法で使われなくなったファイルやライブラリを確認してください。</para>
+
+    <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make check-old</userinput></screen>
+
+    <para>見つかった古いファイルは、以下のコマンドで削除できます。</para>
+
+    <screen>&prompt.root; <userinput>make delete-old</userinput></screen>
+
+    <tip>
+      <para>その他のターゲットについては <filename>/usr/src/Makefile</filename>
+	をご覧ください。</para>
+    </tip>
+
+    <para>使われなくなったファイルを削除する際、ファイルごとに確認が求められます。
+      以下のように make の <makevar>BATCH_DELETE_OLD_FILES</makevar>
+      環境変数を設定すると、
+      確認が省略され、自動的にファイルが削除されます。</para>
+
+    <screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen>
+
+    <para><command>yes</command>
+      をコマンドへパイプでつなげても省略できます。</para>
+
+    <screen>&prompt.root; <userinput>yes|make delete-old</userinput></screen>
+
+    <warning>
+      <title>Warning</title>
+        <para>使われなくなったファイルを削除すると、
+	  削除したファイルに依存していたアプリケーションは壊れてしまいます。
+	  特に、古いライブラリを削除する場合に起こり得ます。
+	  通常、<command>make
+	    <maketarget>delete-old-libs</maketarget></command>
+	  を実行する前に、
+	  これらの古いライブラリを使っているプログラム、ports、
+	  ライブラリを再構築する必要があります。</para>
+    </warning>
+
+    <para>共有ライブラリをチェックするユーティリティとして、
+      Ports Collection の <filename
+      role="package">sysutils/libchk</filename> や <filename
+      role="package">sysutils/bsdadminscripts</filename>
+      を利用できます。</para>
+
+    <para>使われなくなった共有ライブラリは、
+      新しいライブラリと競合し、以下のようなメッセージを表示することがあります。</para>
+
+    <screen>/usr/bin/ld: warning: libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5
+/usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so, may conflict with librpcsvc.so.5</screen>
+
+    <para>この問題を解決するには、
+      まずライブラリがどの port によってインストールされたかを調べて下さい。</para>
+
+    <screen>&prompt.root; <userinput>pkg_info -W  /usr/local/lib/libtiff.so</userinput>
+/usr/local/lib/libtiff.so was installed by package tiff-3.9.4
+&prompt.root; <userinput>pkg_info -W /usr/local/lib/libXext.so</userinput>
+/usr/local/lib/libXext.so was installed by package libXext-1.1.1,1</screen>
+
+    <para>見つかった port をアンインストールし、
+      再構築、再インストールしてください。
+      この過程は <filename role="package">ports-mgmt/portmaster</filename>
+      や <filename role="package">ports-mgmt/portupgrade</filename>
+      ユーティリティで自動化できます。
+      すべての ports が再構築され、
+      古いライブラリがどこにも使われていないことを確認したら、
+      以下のコマンドで古いライブラリを削除してください。</para>
+
+    <screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
+  </sect1>
+
   <sect1 id="small-lan">
     <sect1info>
       <authorgroup>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206170804.q5H84wYL093513>