- Merge the following from the English version:

r39727 -> r40082	head/ja_JP.eucJP/books/handbook/ports/chapter.sgml
This commit is contained in:
Ryusuke SUZUKI 2012-12-14 11:34:08 +00:00
parent eb65c91e01
commit 2c5c060ac0
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=40383

View file

@ -3,7 +3,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: r40082
Original revision: r40153
$FreeBSD$
-->
@ -357,8 +357,9 @@ Port: lsof-4.87.a,7
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))</screen>
<para>もっと詳しく検索するには、
<command>make <maketarget>search</maketarget>
<command>make <maketarget>search</maketarget>
key=<replaceable>string</replaceable></command> または
<command>make <maketarget>quicksearch</maketarget>
key=<replaceable>string</replaceable></command>
@ -633,6 +634,415 @@ docbook =
</sect2>
</sect1>
<sect1 id="pkgng-intro">
<title><application>pkgng</application> によるバイナリ
package の管理</title>
<para><application>pkgng</application> は、伝統的な &os;
<application>pkg_install</application> package
管理ツールの置き換えとなるものであり、
バイナリ packages をより早く、
より簡単に管理できるようにする数多くの機能を提供します。
<application>pkgng</application> の最初のリリースは
2012 年 8 月に行われました。</para>
<para><application>pkgng</application><filename
role="package">ports-mgmt/portmaster</filename><filename
role="package">ports-mgmt/portupgrade</filename> などの
port 管理ツールの置き換えではありません。
<filename role="package">ports-mgmt/portmaster</filename> および
<filename role="package">ports-mgmt/portupgrade</filename> は、
サードパーティ製ソフトウェアをバイナリ packages および
Ports Collection の両方の形式からインストールできますが、
<application>pkgng</application> はバイナリ packages のみをインストールします。</para>
<sect2 id="pkgng-initial-setup">
<title><application>pkgng</application> 入門</title>
<para>&os;&nbsp;9.1 以降では、
<application>pkgng</application> のための &quot;ブートストラップ&quot;
ユーティリティが用意されています。
ブートストラップユーティリティは <application>pkgng</application>
をダウンロードし、インストールします。</para>
<para>システムをブートストラップするためには、
以下を実行してください。</para>
<screen>&prompt.root; <userinput>/usr/sbin/pkg</userinput></screen>
<para>これより前のバージョンの &os; では、Ports Collection
または packages を用いてインストールする必要があります。</para>
<para><application>pkgng</application> port
をインストールするには以下を実行してください。</para>
<screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/pkg</userinput>
&prompt.root; <userinput>make</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>package からインストールするには以下を実行してください。</para>
<screen>&prompt.root; <userinput>pkg_add -r pkg</userinput></screen>
<note>
<para><application>pkgng</application> package 管理ユーティリティは、
&os;&nbsp;7.<replaceable>X</replaceable> および
&os;&nbsp;8.0 には対応していません。</para>
</note>
<para>&os; のインストールがすでに行われているようなシステムでは、
<application>pkg_install</application> package
データベースを新しいフォーマットへ変換する必要があります。
変換を行うには以下を実行してください。</para>
<screen>&prompt.root; <userinput>pkg2ng</userinput></screen>
<para>このステップは、
サードパーティ製ソフトウェアがまだインストールされていないような、
新しくインストールされた直後のシステムでは必要ありません。</para>
<important>
<para>このステップは非可逆です。
一度 package データベースを <application>pkgng</application>
フォーマットへと変換したら、<application>pkg_install</application>
ツールを使うべきではありません。</para>
</important>
<note>
<para>package データベースの変換では、
新しいバージョンへのデータ変換に伴いエラーが出力されることがあります。
通常、これらのエラーは無視して構いませんが、
<command>pkg2ng</command> 終了後に表示される、
変換に失敗したサードパーティ製ソフトウェアの一覧については、
これらのソフトウェアを手動で修正する必要があります。</para>
</note>
<para>&os; のバージョンが
10.<replaceable>X</replaceable> より前であれば、
以下の行を <filename>/etc/make.conf</filename> に追加して、
&os;&nbsp;Ports Collection がソフトウェアの登録に、
<application>pkg_install</application>
ではなく <application>pkgng</application>
を用いるように設定してください。</para>
<programlisting>WITH_PKGNG= yes</programlisting>
</sect2>
<sect2 id="pkgng-pkg-conf">
<title><application>pkgng</application> 環境の設定</title>
<para><application>pkgng</application> package 管理システムでは、
ほとんどのコマンドに対して、package リポジトリを使います。
デフォルトの package リポジトリは
<filename>/usr/local/etc/pkg.conf</filename>、または
<envar>PACKAGESITE</envar> 環境変数で定義されます。
この環境変数は、設定ファイルを上書きします。</para>
<para>その他の <application>pkgng</application>
の設定オプションについては、
pkg.conf(5) に記述されています。</para>
</sect2>
<sect2 id="pkgng-basic-usage">
<title>基本的な <application>pkgng</application> の操作</title>
<para><application>pkgng</application> の利用情報は、
man.pkg(8) のマニュアルページや、
<command>pkg</command> を引数なしに実行すると表示されます。</para>
<para><application>pkgng</application> コマンドの引数は、
コマンドに固有なマニュアルページに記述されています。
たとえば、<command>pkg install</command> のマニュアルページを読むには、
以下を実行してください。</para>
<screen>&prompt.root; <userinput>pkg help install</userinput></screen>
<screen>&prompt.root; <userinput>man pkg-install</userinput></screen>
<sect3 id="pkgng-pkg-info">
<title><application>pkgng</application> を使ってインストールされた
package の情報を得るには</title>
<para><command>pkg info</command> を実行すると、
システムにインストールされている package 情報が得られます。
&man.pkg.info.1; 同様、すべての package のバージョン、
および説明の一覧が表示されます。</para>
<para>ある特定の package の情報が必要であれば、
以下を実行してください。</para>
<screen>&prompt.root; <userinput>pkg info <replaceable>packagename</replaceable></userinput></screen>
<para>たとえば、システムにインストールされている
<application>pkgng</application> の情報を調べるには、
以下のように実行してください。</para>
<screen>&prompt.root; <userinput>pkg info pkg</userinput>
pkg-1.0.2 New generation package manager</screen>
</sect3>
<sect3 id="pkgng-installing-deinstalling">
<title><application>pkgng</application>
を用いた packages のインストールと削除</title>
<para>通常、ほとんどの &os; ユーザは、バイナリパッケージを
<command>pkg install
<replaceable>packagename</replaceable></command>
でインストールすることでしょう。</para>
<screen>&prompt.root; <userinput>pkg install <replaceable>packagename</replaceable></userinput></screen>
<para><xref linkend="pkgng-pkg-conf"/> で説明した通り、
<command>pkg install</command> はリポジトリデータを使用します。
これとは反対に、pkg-add(8) ではリポジトリデータは用いられなければ、
定義されている <envar>PACKAGESITE</envar> も使われません。
そのため、依存関係は適切には追跡されず、足りない依存についてもリモートホストからダウンロードすることもありません。
この節では、<command>pkg install</command> の使用方法について説明します。
<command>pkg add</command> の使用方法については pkg-add(8)
をご覧ください。</para>
<para>追加のバイナリ package は、
<command>pkg install</command> によりインストールされます。
たとえば、
<application>curl</application> をインストールするには以下を実行してください。</para>
<screen>&prompt.root; <userinput>pkg install curl</userinput>
Updating repository catalogue
Repository catalogue is up-to-date, no need to fetch fresh copy
The following packages will be installed:
Installing ca_root_nss: 3.13.5
Installing curl: 7.24.0
The installation will require 4 MB more space
1 MB to be downloaded
Proceed with installing packages [y/N]: <userinput>y</userinput>
ca_root_nss-3.13.5.txz 100% 255KB 255.1KB/s 255.1KB/s 00:00
curl-7.24.0.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00
Checking integrity... done
Installing ca_root_nss-3.13.5... done
Installing curl-7.24.0... done</screen>
<para>新しい package と依存関係から追加された package は、
インストール済み package 一覧に表示されます。</para>
<screen>&prompt.root; <userinput>pkg info</userinput>
ca_root_nss-3.13.5 The root certificate bundle from the Mozilla Project
curl-7.24.0 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
pkg-1.0.2 New generation package manager</screen>
<para>必要のなくなった packages は、
<command>pkg delete</command> を使って削除できます。
たとえば、<application>curl</application> が必要なくなったら、
以下のようにして削除できます。</para>
<screen>&prompt.root; <userinput>pkg delete curl</userinput>
The following packages will be deleted:
curl-7.24.0_1
The deletion will free 3 MB
Proceed with deleting packages [y/N]: <userinput>y</userinput>
Deleting curl-7.24.0_1... done</screen>
</sect3>
<sect3 id="pkgng-upgrading">
<title><application>pkgng</application> による package
のアップグレード</title>
<para><command>pkg version</command>
を用いて古くなった packages を見つけることができます。
ローカルに ports ツリーがない場合には、
pkg-version(8) は、リモートリポジトリのカタログを利用します。
そうでなければ、ローカルの ports ツリーを使って
package のバージョンを同定します。</para>
<para><application>pkgng</application> を用いて、
package を新しいバージョンにアップグレードできます。
<application>curl</application>
の新しいバージョンがリリースされた場合に、ローカル package
を以下のようにして新しいバージョンにアップグレードできます。</para>
<screen>&prompt.root; <userinput>pkg upgrade</userinput>
Updating repository catalogue
repo.txz 100% 297KB 296.5KB/s 296.5KB/s 00:00
The following packages will be upgraded:
Upgrading curl: 7.24.0 -> 7.24.0_1
1 MB to be downloaded
Proceed with upgrading packages [y/N]: <userinput>y</userinput>
curl-7.24.0_1.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00
Checking integrity... done
Upgrading curl from 7.24.0 to 7.24.0_1... done</screen>
</sect3>
<sect3 id="pkgng-auditing">
<title><application>pkgng</application> による package
の検証</title>
<para>時折、Ports Collection
に含まれているソフトウェアに脆弱性が見つかることがあります。
<application>pkgng</application> は、<filename
role="package">ports-mgmt/portaudit</filename> package
同様の検証機能を持っています。
システムにインストールされているソフトウェアを検証するには、
以下のように実行してください。</para>
<screen>&prompt.root; <userinput>pkg audit -F</userinput></screen>
</sect3>
</sect2>
<sect2 id="pkgng-advanced-usage">
<title>高度な <application>pkgng</application> の利用</title>
<sect3 id="pkgng-autoremove">
<title> <application>pkgng</application> によるリーフ依存 ports
の自動削除</title>
<para>package を削除すると、不必要な依存 ports、たとえば上の例では
<filename role="package">security/ca_root_nss</filename>
が残されることがあります。
これらの packages は、インストールされたままで、
どこからも依存されません。
依存のために導入され、現在は不必要になった package は、
以下のようにすると自動的に検出され、削除されます。</para>
<screen>&prompt.root; <userinput>pkg autoremove</userinput>
Packages to be autoremoved:
ca_root_nss-3.13.5
The autoremoval will free 723 kB
Proceed with autoremoval of packages [y/N]: <userinput>y</userinput>
Deinstalling ca_root_nss-3.13.5... done</screen>
</sect3>
<sect3 id="pkgng-backup">
<title><application>pkgng</application> package
データベースのバックアップ</title>
<para><application>pkg_install</application>
package 管理システムとは異なり、
<application>pkgng</application> には package
データベースバックアップのメカニズムが含まれています。
package データベースの内容を手動でバックアップするには、
以下を実行してください。</para>
<screen>&prompt.root; <userinput>pkg backup -d <replaceable>pkgng.db</replaceable></userinput></screen>
<note>
<para>ファイル名の <replaceable>pkgng.db</replaceable>
を適切なファイル名に置き換えてください。</para>
</note>
<para>さらに、<application>pkgng</application>
package データベースを毎日自動的にバックアップする
&man.periodic.8; スクリプトを含んでいます。
&man.periodic.conf.5; の中で、
<literal>daily_backup_pkgng_enable</literal>
<literal>YES</literal> に設定するとバックアップされます。</para>
<tip>
<para><application>pkg_install</application>
の定期的なスクリプトが、
package データベースを同様にバックアップすることを避けるためには、
&man.periodic.conf.5; の中で、
<literal>daily_backup_pkgdb_enable</literal>
<literal>NO</literal> に設定してください。</para>
</tip>
<para>過去にバックアップした package
データベースの中身をリストアするには、以下を実行してください。</para>
<screen>&prompt.root; <userinput>pkg backup -r <replaceable>/path/to/pkgng.db</replaceable></userinput></screen>
</sect3>
<sect3 id="pkgng-clean">
<title>古くなった <application>pkgng</application> package
の削除</title>
<para>デフォルトでは、<application>pkgng</application>
はキャッシュディレクトリにバイナリ packages を保存します。
このディレクトリは、pkg.conf(5) の
<envar>PKG_CACHEDIR</envar> 変数で定義されます。
<command>pkg upgrade</command> を使って packages
をアップグレードする際には、
アップグレードされた package
の古いバージョンは自動的には削除されません。</para>
<para>システムから古いバイナリ package を削除するには、
以下を実行してください。</para>
<screen>&prompt.root; <userinput>pkg clean</userinput></screen>
</sect3>
<sect3 id="pkgng-set">
<title><application>pkgng</application> package
メタデータの変更</title>
<para>歴史的に &os;&nbsp;Ports Collection
は、メジャーバージョン番号の変更に対応できます。
<application>pkg_install</application> とは異なり、
<application>pkgng</application> には、
package の情報をアップデートするコマンドが組み込まれています。
たとえば、<filename
role="package">lang/php5</filename> のバージョンが、もともとは
<literal>5.3</literal> でしたが、<literal>5.4</literal>
がリリースされたことに伴い
<filename role="package">lang/php53</filename>
へと名前が変更される場合、
<application>pkg_install</application> では、
package のデータベースを、
どの port がインストール元であったかという情報を変更するために
<filename role="package">ports-mgmt/portmaster</filename>
のような別のソフトウェアを必要とします。</para>
<para><filename
role="package">ports-mgmt/portmaster</filename> および
<filename role="package">ports-mgmt/portupgrade</filename>
ports とは異なり、引数に与えるバージョンの新、旧の順番は異なります。
<application>pkgng</application> での構文は、<command>pkg set -o
<replaceable>category/oldport</replaceable>:<replaceable>category/newport</replaceable></command> となります。</para>
<para>たとえば、上記の例の package の情報を変更するには、
以下のように実行してください。</para>
<screen>&prompt.root; <userinput>pkg set -o lang/php5:lang/php53</userinput></screen>
<para>別の例として、<filename
role="package">lang/ruby18</filename><filename
role="package">lang/ruby19</filename> にアップデートするには、
以下のようにしてください。</para>
<screen>&prompt.root; <userinput>pkg set -o lang/ruby18:lang/ruby19</userinput></screen>
<para>最後の例として、
<filename>libglut</filename> 共有ライブラリの情報を <filename
role="package">graphics/libglut</filename> から <filename
role="package">graphics/freeglut</filename> へと変更するには、
以下のように実行してください。</para>
<screen>&prompt.root; <userinput>pkg set -o graphics/libglut:graphics/freeglut</userinput></screen>
<note>
<para>package の情報を変更したら、多くの場合、
情報が変更された package に依存している
packages を再インストールすることが重要となります。
依存 packages を再インストールするには、
以下のように実行してください。</para>
<screen>&prompt.root; <userinput>pkg install -Rf <replaceable>graphics/freeglut</replaceable></userinput></screen>
</note>
</sect3>
</sect2>
</sect1>
<sect1 id="ports-using">
<title>Ports Collection の利用</title>