0 - en to ja-JP translation catalogue (175 entries)

en: Binary package
ja-JP: バイナリパッケージ

en: Source package
ja-JP: ソースパッケージ

en: dependencies
ja-JP: 依存関係

en: conflict
ja-JP: 衝突

en: Packaging System: Tools and Fundamental Principles
ja-JP: パッケージシステム、ツールと基本原則

en: As a Debian system administrator, you will routinely handle <filename>.deb</filename> packages, since they contain consistent functional units (applications, documentation, etc.), whose installation and maintenance they facilitate. It is therefore a good idea to know what they are and how to use them.
ja-JP: Debian システム管理者は日常的に <filename>.deb</filename> パッケージを取り扱います。なぜなら、パッケージにはそのパッケージを使うために必要なすべての要素 (アプリケーション、文書など) が含まれており、パッケージによってこれらの要素のインストールとメンテナンスが楽になるからです。ゆえに、パッケージとはどのようなもので、パッケージはどのように取り扱われるべきものなのかを知っておくことは良い考えです。

en: Structure of a Binary Package
ja-JP: バイナリパッケージの構造

en: <emphasis>TOOLS</emphasis> <command>dpkg</command>, <command>APT</command> and <command>ar</command>
ja-JP: <emphasis>TOOLS</emphasis> <command>dpkg</command>、<command>APT</command>、<command>ar</command>

en: <primary>unpacking</primary><secondary>binary package</secondary>
ja-JP: <primary sortas="テンカイ">展開</primary><secondary>バイナリパッケージ</secondary>

en: <emphasis>BACK TO BASICS</emphasis> Man page notation
ja-JP: <emphasis>BACK TO BASICS</emphasis> man ページの表記

en: It can be confusing for beginners to find references to “<citerefentry><refentrytitle>ar</refentrytitle><manvolnum>1</manvolnum></citerefentry>” in the literature. This is generally a convenient means of referring to the man page entitled <literal>ar</literal> in section 1.
ja-JP: 初心者にとって、文献から「<citerefentry><refentrytitle>ar</refentrytitle><manvolnum>1</manvolnum></citerefentry>」の資料を探すことは、わかりにくいことかもしれません。<citerefentry><refentrytitle>ar</refentrytitle><manvolnum>1</manvolnum></citerefentry> は第 1 セクションにある <literal>ar</literal> と名付けられた man ページを参照する便利な表記です。

en: Sometimes this notation is also used to remove ambiguities, for example to distinguish between the <command>printf</command> command that can also be indicated by <citerefentry><refentrytitle>printf</refentrytitle><manvolnum>1</manvolnum></citerefentry> and the <function>printf</function> function in the C programming language, which can also be referred to as <citerefentry><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
ja-JP: man ページの表記は曖昧さをなくすために使われる場合があります。たとえば、<command>printf</command> コマンドの man ページは <citerefentry><refentrytitle>printf</refentrytitle><manvolnum>1</manvolnum></citerefentry> と表記し、C 言語の <function>printf</function> 関数の man ページは <citerefentry><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry> と表記することで、両者を区別します。

en: <xref linkend="solving-problems" /> discusses manual pages in further detail (see <xref linkend="sect.manual-pages" />).
ja-JP: 詳細は<xref linkend="solving-problems" />で議論されています (<xref linkend="sect.manual-pages" />をご覧ください)。

en: Have a look at the content of a <filename>.deb</filename> file:
ja-JP: それでは <filename>.deb</filename> ファイルの内容を見てみましょう。

en: As you can see, the <command>ar</command> archive of a Debian package is comprised of three files:
ja-JP: ご覧の通り、Debian パッケージの <command>ar</command> アーカイブは以下の 3 つのファイルから成り立っています。

en: Package Meta-Information
ja-JP: パッケージのメタ情報

en: <primary>package</primary><secondary>meta-information</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="メタジョウホウ">メタ情報</secondary>

en: Description: the <filename>control</filename> File
ja-JP: 説明、<filename>control</filename> ファイル

en: <primary>package meta-information</primary>
ja-JP: <primary sortas="メタジョウホウ">メタ情報</primary><secondary>パッケージ</secondary>

en: <emphasis>BACK TO BASICS</emphasis> RFC — Internet standards
ja-JP: <emphasis>BACK TO BASICS</emphasis> RFC — インターネット標準

en: RFC 2026 defines the process for standardization of Internet protocols. <ulink type="block" url="http://www.faqs.org/rfcs/rfc2026.html" />
ja-JP: RFC 2026 ではインターネットプロトコル標準化の手続きが定義されています。<ulink type="block" url="http://www.faqs.org/rfcs/rfc2026.html" />

en: Dependencies: the <literal>Depends</literal> Field
ja-JP: 依存関係、<literal>Depends</literal> フィールド

en: <primary>dependency</primary>
ja-JP: <primary sortas="イゾン">依存関係</primary><secondary>パッケージ</secondary>

en: <primary>package</primary><secondary>dependency</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="イゾンカンケイ">依存関係</secondary>

en: <command>&lt;&lt;</command>: less than;
ja-JP: <command>&lt;&lt;</command> はより低いことを意味します。

en: <command>&lt;=</command>: less than or equal to;
ja-JP: <command>&lt;=</command> は以下を意味します。

en: <command>=</command>: equal to (note that “<literal>2.6.1</literal>” is not equal to “<literal>2.6.1-1</literal>”);
ja-JP: <command>=</command> は等しいことを意味します (「<literal>2.6.1</literal>」は「<literal>2.6.1-1</literal>」と等しくありません)。

en: <command>&gt;=</command>: greater than or equal to;
ja-JP: <command>&gt;=</command> は以上を意味します。

en: <command>&gt;&gt;</command>: greater than.
ja-JP: <command>&gt;&gt;</command> はより高いことを意味します。

en: <primary>meta-package</primary>
ja-JP: <primary>メタパッケージ</primary>

en: <emphasis>DEBIAN POLICY</emphasis> <literal>Recommends</literal>, <literal>Suggests</literal>, and <literal>Enhances</literal> fields
ja-JP: <emphasis>DEBIAN POLICY</emphasis> <literal>Recommends</literal>、<literal>Suggests</literal>、<literal>Enhances</literal> フィールド

en: The <literal>Recommends</literal> and <literal>Suggests</literal> fields describe dependencies that are not compulsory. The “recommended” dependencies, the most important, considerably improve the functionality offered by the package but are not indispensable to its operation. The “suggested” dependencies, of secondary importance, indicate that certain packages may complement and increase their respective utility, but it is perfectly reasonable to install one without the others.
ja-JP: <literal>Recommends</literal> (推奨) と <literal>Suggests</literal> (提案) フィールドは必須ではない依存関係を表すためのものです。最も重要な「推奨」依存関係のパッケージは、パッケージの提供する機能を大幅に改善するけれども、動作に必要不可欠ではないパッケージです。2 番目に重要な「提案」依存関係のパッケージは、そのユーティリティの機能を補完したり強化する可能性があり、他のパッケージではなくこのパッケージをインストールするのが極めて合理的であるようなパッケージです。

en: The <literal>Enhances</literal> field also describes a suggestion, but in a different context. It is indeed located in the suggested package, and not in the package that benefits from the suggestion. Its interest lies in that it is possible to add a suggestion without having to modify the package that is concerned. Thus, all add-ons, plug-ins, and other extensions of a program can then appear in the list of suggestions related to the software. Although it has existed for several years, this last field is still largely ignored by programs such as <command>apt</command> or <command>synaptic</command>. Its purpose is for a suggestion made by the <literal>Enhances</literal> field to appear to the user in addition to the traditional suggestions — found in the <literal>Suggests</literal> field.
ja-JP: <literal>Enhances</literal> フィールドは <literal>Recommends</literal> や <literal>Suggests</literal> フィールドと同様にパッケージを提案するためのものですが、使用法が少し違います。自分があるパッケージから利益を得る場合は Suggests フィールドにそのパッケージを追加し、自分があるパッケージに利益を与える場合は Enhances フィールドにそのパッケージを追加します。Enhances フィールドの良いところは、提案される側のパッケージを変更せずにそのパッケージにとって自分が有用であるという提案を追加できる、という点です。つまり、あるソフトウェアのアドオン、プラグイン、機能拡張のパッケージはそのソフトウェアを Enhances フィールドに載せることが可能です。数年前から存在したにも関わらず、Enhances フィールドはいまだに <command>apt</command> や <command>synaptic</command> など多くのプログラムから無視されています。<literal>Enhances</literal> フィールドの目的とは、<literal>Suggests</literal> フィールドによる伝統的な提案ではカバーできない提案をユーザに示すことです。

en: <emphasis>DEBIAN POLICY</emphasis> <literal>Pre-Depends</literal>, a more demanding <literal>Depends</literal>
ja-JP: <emphasis>DEBIAN POLICY</emphasis> <literal>Pre-Depends</literal>、<literal>Depends</literal> よりも厳しい要求

en: <primary>pre-dependency</primary>
ja-JP: <primary sortas="センコウイゾン">先行依存</primary>

en: “Pre-dependencies”, which are listed in the “<literal>Pre-Depends</literal>” field in the package headers, complete the normal dependencies; their syntax is identical. A normal dependency indicates that the package in question must be unpacked and configured before configuration of the package declaring the dependency. A pre-dependency stipulates that the package in question must be unpacked and configured before execution of the pre-installation script of the package declaring the pre-dependency, that is before its installation.
ja-JP: 「先行依存」はパッケージヘッダの「<literal>Pre-Depends</literal>」フィールドに書かれており、通常の依存関係を完全なものにします。条件の書式は <literal>Depends</literal> フィールドと同じです。通常の依存関係とは、依存関係が記述されたパッケージの設定前に、依存関係にあるパッケージの展開および設定を行わなければいけないことを示しています。先行依存とは、先行依存関係が記述されたパッケージのインストール前スクリプトの実行前 (インストールの前) に、先行依存関係にあるパッケージの展開および設定を行わなければいけないことを規定しています。

en: Conflicts: the <literal>Conflicts</literal> field
ja-JP: 衝突、<literal>Conflicts</literal> フィールド

en: <primary>conflicts</primary>
ja-JP: <primary sortas="ショウトツ">衝突</primary><secondary>パッケージ</secondary>

en: <primary>package</primary><secondary>conflict</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="ショウトツ">衝突</secondary>

en: <command>dpkg</command> will refuse to install a package if it triggers a conflict with an already installed package, except if the new package specifies that it will “replace” the installed package, in which case <command>dpkg</command> will choose to replace the old package with the new one. <command>apt</command> always follows your instructions: if you choose to install a new package, it will automatically offer to uninstall the package that poses a problem.
ja-JP: <command>dpkg</command> は、あるパッケージがインストール済みのパッケージと衝突を引き起こす場合、新しいパッケージがインストール済みのパッケージを「置換」するものでない限り、そのパッケージのインストールを拒否するでしょう (「置換」するものの場合、<command>dpkg</command> はインストール済みパッケージを新パッケージで置換します)。これに対して <command>apt</command> は常にあなたの指示に従います。つまり、もし <command>apt</command> に新しいパッケージをインストールするよう指示したのなら、<command>apt</command> は新しいパッケージをインストールする際に障害となるインストール済みパッケージを自動的にアンインストールします。

en: Incompatibilities: the <literal>Breaks</literal> Field
ja-JP: 不適合性、<literal>Breaks</literal> フィールド

en: <primary>incompatibilities</primary>
ja-JP: <primary sortas="フテキゴウセイ">不適合性</primary><secondary>パッケージ</secondary>

en: <primary>package</primary><secondary>incompatibility</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="フテキゴウセイ">不適合性</secondary>

en: The <literal>Breaks</literal> field has an effect similar to that of the <literal>Conflicts</literal> field, but with a special meaning. It signals that the installation of a package will “break” another package (or particular versions of it). In general, this incompatibility between two packages is transitory, and the <literal>Breaks</literal> relationship specifically refers to the incompatible versions.
ja-JP: <literal>Breaks</literal> フィールドは <literal>Conflicts</literal> フィールドとよく似た効果を持っていますが、特別な意味があります。すなわち、<literal>Breaks</literal> フィールドを持つパッケージは <literal>Breaks</literal> フィールドに指定された他のパッケージ (または他のパッケージの特定バージョン) を「破壊する」という意味があります。一般的に、このような 2 つのパッケージの不適合性は一時的なもので、<literal>Breaks</literal> フィールドでは不適合性がある特定のバージョンだけを指定します。

en: <command>dpkg</command> will refuse to install a package that breaks an already installed package, and <command>apt</command> will try to resolve the problem by updating the package that would be broken to a newer version (which is assumed to be fixed and, thus, compatible again).
ja-JP: <command>dpkg</command> はインストール済みのパッケージを破壊するようなパッケージのインストールを拒否します。<command>apt</command> は破壊されるパッケージを新しいバージョンに更新することで (新しいバージョンではこの問題が修正され、両パッケージが適合すると期待されます) この問題の解決を試みます。

en: This type of situation may occur in the case of updates without backwards compatibility: this is the case if the new version no longer functions with the older version, and causes a malfunction in another program without making special provisions. The <literal>Breaks</literal> field prevents the user from running into these problems.
ja-JP: この手の状況は更新によって後方互換性がなくなる場合に起こりうるかもしれません。具体的に言えば、新しいバージョンが古いバージョンと同時に動かない場合、特別な設定をしないと別のプログラムがうまく動かない場合です。<literal>Breaks</literal> フィールドはユーザがこのような問題に遭遇することがないようにしています。

en: Provided Items: the <literal>Provides</literal> Field
ja-JP: 提供されるアイテム、<literal>Provides</literal> フィールド

en: This field introduces the very interesting concept of a “virtual package”. It has many roles, but two are of particular importance. The first role consists in using a virtual package to associate a generic service with it (the package “provides” the service). The second indicates that a package completely replaces another, and that for this purpose it can also satisfy the dependencies that the other would satisfy. It is thus possible to create a substitution package without having to use the same package name.
ja-JP: <literal>Provides</literal> フィールドはとても興味深い「仮想パッケージ」の構想を生み出しました。<literal>Provides</literal> フィールドは多くの役割を持っていますが、特に重要な 2 つを説明します。最初の役割は、<literal>Provides</literal> フィールドを持つパッケージは <literal>Provides</literal> フィールドに指定された一般的なサービスを意味する仮想パッケージに関連付けられている (サービスを「提供する」のは <literal>Provides</literal> フィールドを持つパッケージ自身です)、という意味を持たせる役割です。2 番目の役割は、<literal>Provides</literal> フィールドを持つパッケージは <literal>Provides</literal> フィールドに指定されたパッケージの機能を完全に置き換えており、<literal>Provides</literal> フィールドに指定されたパッケージの代替として <literal>Provides</literal> フィールドに指定されたパッケージに依存する他のパッケージの依存関係を満足できる、という意味を持たせる役割です。そのため、あるパッケージの機能を代替する別パッケージを必ずしも同じパッケージ名を使わずに作ることが可能です。

en: <emphasis>VOCABULARY</emphasis> Meta-package and virtual package
ja-JP: <emphasis>VOCABULARY</emphasis> メタパッケージと仮想パッケージ

en: <primary>package</primary><secondary>virtual package</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="カソウパッケージ">仮想パッケージ</secondary>

en: <primary>virtual package</primary>
ja-JP: <primary sortas="カソウパッケージ">仮想パッケージ</primary>

en: It is essential to clearly distinguish meta-packages from virtual packages. The former are real packages (including real <filename>.deb</filename> files), whose only purpose is to express dependencies.
ja-JP: メタパッケージと仮想パッケージを明確に区別することは絶対に不可欠です。メタパッケージは真のパッケージで (真の <filename>.deb</filename> ファイルを含んでいます)、その目的は依存関係を表現するだけです。

en: Virtual packages, however, do not exist physically; they are only a means of identifying real packages based on common, logical criteria (service provided, compatibility with a standard program or a pre-existing package, etc.).
ja-JP: これに対して、仮想パッケージは実体がありません。そして、仮想パッケージの目的は、一般的で論理的な基準 (提供するサービス、一般的なプログラムまたは既存のパッケージなどとの互換性) に従って複数の実体を持つパッケージを同一視することです。

en: Providing a “Service”
ja-JP: 「サービス」の提供

en: Let us discuss the first case in greater detail with an example: all mail servers, such as <emphasis role="pkg">postfix</emphasis> or <emphasis role="pkg">sendmail</emphasis> are said to “provide” the <emphasis role="pkg">mail-transport-agent</emphasis> virtual package. Thus, any package that needs this service to be functional (e.g. a mailing list manager, such as <emphasis role="pkg">smartlist</emphasis> or <emphasis role="pkg">sympa</emphasis>) simply states in its dependencies that it requires a <emphasis role="pkg">mail-transport-agent</emphasis> instead of specifying a large yet incomplete list of possible solutions (e.g. <command>postfix | sendmail | exim4 | …</command>). Furthermore, it is useless to install two mail servers on the same machine, which is why each of these packages declares a conflict with the <emphasis role="pkg">mail-transport-agent</emphasis> virtual package. A conflict between a package and itself is ignored by the system, but this technique will prohibit the installation of two mail servers side by side.
ja-JP: 最初の場合について、例を挙げて詳細に議論しましょう。すなわち、すべてのメールサーバ、たとえば <emphasis role="pkg">postfix</emphasis> や <emphasis role="pkg">sendmail</emphasis> などは <emphasis role="pkg">mail-transport-agent</emphasis> 仮想パッケージ「提供」しています。このため、動作にメールサービスを必要とするパッケージ (たとえば <emphasis role="pkg">smartlist</emphasis> や <emphasis role="pkg">sympa</emphasis> などのメーリングリストマネージャ) は、おそらくメールサービスを提供するであろうパッケージをたくさん依存関係に宣言する (たとえば、<command>postfix | sendmail | exim4 | …</command>のように宣言する) のではなく、たった 1 つ <emphasis role="pkg">mail-transport-agent</emphasis> を宣言するだけで十分です。さらに、1 台のマシンに 2 つのメールサーバをインストールすることは無駄なため、メールサーバの機能を提供するパッケージは <emphasis role="pkg">mail-transport-agent</emphasis> 仮想パッケージとの衝突を宣言します。例外的にあるパッケージとそれ自身との衝突はシステムによって無視されます。この手法により、2 つのメールサーバを同時にインストールできなくなります。

en: <emphasis>DEBIAN POLICY</emphasis> List of virtual packages
ja-JP: <emphasis>DEBIAN POLICY</emphasis> 仮想パッケージのリスト

en: For virtual packages to be useful, everyone must agree on their name. This is why they are standardized in the Debian Policy. The list includes among others <emphasis role="pkg">mail-transport-agent</emphasis> for mail servers, <emphasis role="pkg">c-compiler</emphasis> for C programming language compilers, <emphasis role="pkg">www-browser</emphasis> for web browsers, <emphasis role="pkg">httpd</emphasis> for web servers, <emphasis role="pkg">ftp-server</emphasis> for FTP servers, <emphasis role="pkg">x-terminal-emulator</emphasis> for terminal emulators in graphical mode (<command>xterm</command>), and <emphasis role="pkg">x-window-manager</emphasis> for window managers.
ja-JP: 仮想パッケージを有益なものにするためには、全員がその名前に同意しなければいけません。このため、仮想パッケージの名前は Debian ポリシーで標準化されています。メールサーバ用に <emphasis role="pkg">mail-transport-agent</emphasis>、C 言語コンパイラ用に <emphasis role="pkg">c-compiler</emphasis>、ウェブブラウザ用に <emphasis role="pkg">www-browser</emphasis>、ウェブサーバ用に <emphasis role="pkg">httpd</emphasis>、FTP サーバ用に <emphasis role="pkg">ftp-server</emphasis>、グラフィカルモードのターミナルエミュレータ (<command>xterm</command>) 用に <emphasis role="pkg">x-terminal-emulator</emphasis>、ウィンドウマネージャ用に <emphasis role="pkg">x-window-manager</emphasis> などが定められています。

en: Interchangeability with Another Package
ja-JP: 他のパッケージとの互換性

en: Use of a <literal>Provides</literal> field in order to not break dependencies
ja-JP: 依存関係を壊さないための <literal>Provides</literal> フィールドの使い方

en: This feature is very useful, since it is never possible to anticipate the vagaries of development, and it is necessary to be able to adjust to renaming, and other automatic replacement, of obsolete software.
ja-JP: この機能はとても役立ちます。なぜなら、開発方向性の変化を予測することは絶対に不可能ですし、パッケージ名を変更したり他の時代遅れのソフトウェアを自動に置き換えたりすることを可能な状態にしておくことが必要だからです。

en: <emphasis>BACK TO BASICS</emphasis> Perl, a programming language
ja-JP: <emphasis>BACK TO BASICS</emphasis> Perl、プログラミング言語

en: Since it is an interpreted language, a program written in Perl does not require compilation prior to execution. This is why they are called “Perl scripts”.
ja-JP: Perl はインタプリタ型言語であるため、Perl で書かれたプログラムは実行前にコンパイルする必要がありません。このためプログラムは「Perl スクリプト」と呼ばれています。

en: Past Limitations
ja-JP: 過去に設けられていた制限

en: Replacing Files: The <literal>Replaces</literal> Field
ja-JP: ファイルの置き換え、<literal>Replaces</literal> フィールド

en: <primary>replacement</primary>
ja-JP: <primary sortas="ファイルノオキカエ">ファイルの置き換え</primary><secondary>パッケージ</secondary>

en: <primary>package</primary><secondary>replacement</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="ファイルノオキカエ">ファイルの置き換え</secondary>

en: The use of this field is justified when package names change or when a package is included in another. This also happens when the maintainer decides to distribute files differently among various binary packages produced from the same source package: a replaced file no longer belongs to the old package, but only to the new one.
ja-JP: <literal>Replaces</literal> フィールドはパッケージ名が変更された時やパッケージが別のパッケージに統合された時に使われます。この状況はメンテナが同じソースパッケージから複数のバイナリパッケージを作成し、各バイナリパッケージから異なるファイルを配布するように方針を決めた場合に発生します。つまり、古いパッケージに含まれていたファイルがソースパッケージは同じでもバイナリパッケージの名前が異なる新しいパッケージに含まれるようになった場合に発生します。

en: If all of the files in an installed package have been replaced, the package is considered to be removed. Finally, this field also encourages <command>dpkg</command> to remove the replaced package where there is a conflict.
ja-JP: インストール済みパッケージのすべてのファイルが置き換えられたら、このパッケージは削除されたとみなされます。最後に、<literal>Replaces</literal> フィールドは衝突がある場合に <command>dpkg</command> に置き換えられたパッケージを削除させる際に使われます。

en: <emphasis>GOING FURTHER</emphasis> The <literal>Tag</literal> field
ja-JP: <emphasis>GOING FURTHER</emphasis> <literal>Tag</literal> フィールド

en: Configuration Scripts
ja-JP: 設定スクリプト

en: <emphasis>GOING FURTHER</emphasis> <command>dpkg</command>'s database
ja-JP: <emphasis>GOING FURTHER</emphasis> <command>dpkg</command> データベース

en: <primary>dpkg</primary><secondary>database</secondary>
ja-JP: <primary>dpkg</primary><secondary>データベース</secondary>

en: All of the configuration scripts for installed packages are stored in the <filename>/var/lib/dpkg/info/</filename> directory, in the form of a file prefixed with the package's name. This directory also includes a file with the <filename>.list</filename> extension for each package, containing the list of files that belong to that package.
ja-JP: インストール済みパッケージの設定スクリプトはすべて <filename>/var/lib/dpkg/info/</filename> ディレクトリに、ファイル名がパッケージ名から始まるファイルの形で保存されています。このディレクトリには、ファイル名がパッケージ名に <filename>.list</filename> 拡張子を付けたファイルが含まれています。このファイルの内容はパッケージに含まれるファイルのリストです。

en: The <filename>/var/lib/dpkg/status</filename> file contains a series of data blocks (in the format of the famous mail headers, RFC 2822) describing the status of each package. The information from the <filename>control</filename> file of the installed packages is also replicated there.
ja-JP: <filename>/var/lib/dpkg/status</filename> ファイルは (有名なメールヘッダ、RFC 2822、の形で) 一連のデータブロックを含んでおり、各データブロックは各パッケージの状態に対応します。この情報はインストール済みのパッケージの <filename>control</filename> ファイルから複製されています。

en: <emphasis>CAUTION</emphasis> Symbolic names of the scripts
ja-JP: <emphasis>CAUTION</emphasis> スクリプト名の表記規則

en: The sequences described in this section call configuration scripts by specific names, such as <command>old-prerm</command> or <command>new-postinst</command>. They are, respectively, the <command>prerm</command> script contained in the old version of the package (installed before the update) and the <command>postinst</command> script contained in the new version (installed by the update).
ja-JP: この節の説明文では、<command>old-prerm</command> や <command>new-postinst</command> などの特定の名前を持つ設定スクリプトが登場します。<command>old-prerm</command> はパッケージの (更新の前にインストールされていた) 古いバージョンに含まれる <command>prerm</command> スクリプト、<command>new-postinst</command> は (更新によってインストールされる) 新しいバージョンに含まれる <command>postinst</command> スクリプトを指します。

en: <emphasis>TIP</emphasis> State diagrams
ja-JP: <emphasis>TIP</emphasis> 状態遷移図

en: Installation and Upgrade
ja-JP: パッケージのインストールとアップグレード

en: <primary><command>dpkg</command></primary><secondary>internal operation</secondary>
ja-JP: <primary><command>dpkg</command></primary><secondary sortas="ナイブドウサ">内部動作</secondary>

en: <primary>package</primary><secondary>installation</secondary>
ja-JP: <primary>パッケージ</primary><secondary>インストール</secondary>

en: The new package files are then unpacked. If a file already exists, it is replaced, but a backup copy is temporarily made.
ja-JP: そして新しいパッケージのファイルが展開されます。あるファイルが既に存在した場合、そのファイルは置換されますが、一時的にバックアップコピーが作られます。

en: <command>dpkg</command> updates all of the internal data (file list, configuration scripts, etc.) and removes the backups of the replaced files. This is the point of no return: <command>dpkg</command> no longer has access to all of the elements necessary to return to the previous state.
ja-JP: <command>dpkg</command> はすべての内部データ (ファイルリスト、設定スクリプトなど) を更新し、置換されたファイルのバックアップを削除します。これ以降はもう後戻りできません。つまり、前の状態に戻るために必要な情報がすべて失われたため、<command>dpkg</command> は状態を復元できません。

en: <command>dpkg</command> will update the configuration files, asking the user to decide if it is unable to automatically manage this task. The details of this procedure are discussed in <xref linkend="sect.conffiles" />.
ja-JP: <command>dpkg</command> は設定ファイルを更新します。自動的にこの作業を完了できない場合にはユーザにどうするか尋ねます。この作業の詳細は<xref linkend="sect.conffiles" />をご覧ください。

en: Package Removal
ja-JP: パッケージの削除

en: <primary>package</primary><secondary>removal</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="サクジョ">削除</secondary>

en: <emphasis>VOCABULARY</emphasis> Purge, a complete removal
ja-JP: <emphasis>VOCABULARY</emphasis> Purge、完全削除

en: <primary>purging a package</primary>
ja-JP: <primary sortas="カンゼンサクジョ">完全削除</primary><secondary>パッケージ</secondary>

en: <primary>package</primary><secondary>purge</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="カンゼンサクジョ">完全削除</secondary>

en: When a Debian package is removed, the configuration files are retained in order to facilitate possible re-installation. Likewise, the data generated by a daemon (such as the content of an LDAP server directory, or the content of a database for an SQL server) are usually retained.
ja-JP: Debian パッケージが削除されても、パッケージの設定ファイルは後々の再インストールを楽にするために削除されません。同様に、デーモンが作成したデータ (LDAP サーバディレクトリの内容、SQL サーバのデータベースの内容など) も削除されません。

en: To remove all data associated with a package, it is necessary to “purge” the package with the command, <command>dpkg -P <replaceable>package</replaceable></command>, <command>apt-get remove --purge <replaceable>package</replaceable></command> or <command>aptitude purge <replaceable>package</replaceable></command>.
ja-JP: パッケージに関連するすべてのデータを削除するには、<command>dpkg -P <replaceable>package</replaceable></command>、<command>apt-get remove --purge <replaceable>package</replaceable></command>、<command>aptitude purge <replaceable>package</replaceable></command> などのコマンドを使ってパッケージを「完全削除」する必要があります。

en: Given the definitive nature of such data removals, a purge should not be taken lightly.
ja-JP: 「完全削除」によって削除されるデータに含まれる内容を考慮すると、安易に完全削除を実行するべきではありません。

en: <primary><filename>config</filename>, <command>debconf</command> script</primary>
ja-JP: <primary><filename>config</filename>、<command>debconf</command> スクリプト</primary>

en: The four scripts detailed above are complemented by a <filename>config</filename> script, provided by packages using <command>debconf</command> to acquire information from the user for configuration. During installation, this script defines in detail the questions asked by <command>debconf</command>. The responses are recorded in the <command>debconf</command> database for future reference. The script is generally executed by <command>apt</command> prior to installing packages one by one in order to group all the questions and ask them all to the user at the beginning of the process. The pre- and post-installation scripts can then use this information to operate according to the user's wishes.
ja-JP: 上で詳細を述べた 4 つのスクリプトの実行を補助するのが <filename>config</filename> スクリプトです。<filename>config</filename> スクリプトはパッケージから提供され、<command>debconf</command> を用いて設定に必要な情報をユーザに入力させるために使われます。ユーザからの情報は <command>debconf</command> データベースに保存され、後から利用されます。このスクリプトは通常 <command>apt</command> によって各パッケージインストールの前に実行され、処理が始まるとすべての質問をまとめてユーザに尋ねます。インストール前後に実行されるスクリプトは、ユーザの希望を反映させるために、<command>debconf</command> データベースに保存された情報を利用します。

en: <command>debconf</command> was created to resolve a recurring problem in Debian. All Debian packages unable to function without a minimum of configuration used to ask questions with calls to the <command>echo</command> and <command>read</command> commands in <filename>postinst</filename> shell scripts (and other similar scripts). But this also means that during a large installation or update the user must stay with their computer to respond to various questions that may arise at any time. These manual interactions have now been almost entirely dispensed with, thanks to the <command>debconf</command> tool.
ja-JP: <command>debconf</command> は Debian で繰り返し発生する問題を解決するために作られました。その昔、最低限の設定なしにはうまく動作しないすべての Debian パッケージは、最低限の設定を行うために <filename>postinst</filename> シェルスクリプト (と同様の別のスクリプト) の中で <command>echo</command> や <command>read</command> コマンドを呼び出すことにより、設定内容について質問していました。しかしこの方法では、ユーザは長時間かかるインストールや更新の最中、いつあるかわからないさまざまな質問に答えるために、コンピュータの前に居続けなければいけませんでした。<command>debconf</command> ツールのおかげで、今やほとんどの場合、このような手動設定法を採る必要はなくなりました。

en: <command>debconf</command> has many interesting features: it requires the developer to specify user interaction; it allows localization of all the strings displayed to users (all translations are stored in the <filename>templates</filename> file describing the interactions); it has different frontends to display the questions to the user (text mode, graphical mode, non-interactive); and it allows creation of a central database of responses to share the same configuration with several computers... but the most important is that it is now possible to present all of the questions in a row to the user, prior to starting a long installation or update process. The user can go about their business while the system handles the installation on its own, without having to stay there staring at the screen waiting for questions.
ja-JP: <command>debconf</command> には多くの興味深い機能があります。具体的に言えば <command>debconf</command> を使うことで開発者は、ユーザに入力させる内容を規定したり、ユーザに向けて表示されるすべての文字列を地域化したり (すべての翻訳は入力内容を説明している <filename>templates</filename> ファイルに保存されます)、ユーザに質問を表示するためのさまざまなフロントエンド (テキストモード、グラフィカルモード、非対話型モード) に自前で対応させる必要がなくなり、複数のコンピュータで同じ設定を共有するためにユーザが入力した内容の中央データベースを作成したり、することが可能になります。しかし <command>debconf</command> の最も重要な機能はユーザに対するすべての質問が長時間かかるインストールや更新作業の前に行われる点です。ユーザはシステムがインストールを行っている間に自分の仕事をできます。質問に答えるために画面の前に居続ける必要はありません。

en: <primary>checksums</primary>
ja-JP: <primary>チェックサム</primary>

en: In effect, in this situation, <command>dpkg</command> behaves as intelligently as possible: if the standard configuration file has not changed between the two versions, it does nothing. If, however, the file has changed, it will try to update this file. Two cases are possible: either the administrator has not touched this configuration file, in which case <command>dpkg</command> automatically installs the new version; or the file has been modified, in which case <command>dpkg</command> asks the administrator which version they wish to use (the old one with modifications, or the new one provided with the package). To assist in making this decision, <command>dpkg</command> offers to display a “<command>diff</command>” that shows the difference between the two versions. If the user chooses to retain the old version, the new one will be stored in the same location in a file with the <filename>.dpkg-dist</filename> suffix. If the user chooses the new version, the old one is retained in a file with the <filename>.dpkg-old</filename> suffix. Another available action consists of momentarily interrupting <command>dpkg</command> to edit the file and attempt to re-instate the relevant modifications (previously identified with <command>diff</command>).
ja-JP: 実際のところ、システムに現存する設定ファイルをパッケージから提供された設定ファイルで更新する際に <command>dpkg</command> はできるだけ賢明に振る舞います。以下に <command>dpkg</command> のデフォルトの設定ファイル更新処理規則を述べます。パッケージの更新前後でパッケージから提供される標準設定ファイルの内容が同じ場合、<command>dpkg</command> は何もしません。しかしながら、パッケージの更新前後でパッケージから提供される標準設定ファイルの内容が違う場合、<command>dpkg</command> はシステムに現存する設定ファイルを更新しようとします。ここでさらに 2 つの場合が考えられます。システムに現存する設定ファイルと古いバージョンのパッケージから提供される標準設定ファイルの内容が同じ場合、<command>dpkg</command> は自動的に新しいパッケージから提供される標準設定ファイルをパッケージ更新完了後の設定ファイルとして採用します。一方で、システムに現存する設定ファイルと古いバージョンのパッケージから提供される標準設定ファイルの内容が違う場合、<command>dpkg</command> は管理者に対してシステムに現存する設定ファイルまたは新しいバージョンのパッケージから提供される標準設定ファイルのどちらを更新後の設定ファイルとして採用するかを尋ねます。この判断を手助けするために、<command>dpkg</command> は「<command>diff</command>」を使って 2 つの設定ファイルの内容の違いを表示します。管理者が現存する設定ファイルを選んだ場合、新しいバージョンのパッケージから提供される標準設定ファイルは同じ場所にファイル名の末尾に <filename>.dpkg-dist</filename> を追加して保存されます。管理者が新しいバージョンのパッケージから提供される標準設定ファイルを選んだ場合、現存する設定ファイルは同じ場所にファイル名の末尾に <filename>.dpkg-old</filename> を追加して保存されます。この段階では、一時的に <command>dpkg</command> の処理を中断してファイルを編集したり、もう一度バージョン間の違いを表示したり (先と同様に <command>diff</command> コマンドを実行する) することも可能です。

en: <emphasis>GOING FURTHER</emphasis> Force dpkg to ask configuration file questions
ja-JP: <emphasis>GOING FURTHER</emphasis> 設定ファイルの更新に関連する質問を強制する

en: <emphasis>GOING FURTHER</emphasis> Avoiding the configuration file questions
ja-JP: <emphasis>GOING FURTHER</emphasis> 設定ファイルの更新に関連する質問を回避する

en: <command>dpkg</command> handles configuration file updates, but, while doing so, regularly interrupts its work to ask for input from the administrator. This makes it less than enjoyable for those who wish to run updates in a non-interactive manner. This is why this program offers options that allow the system to respond automatically according to the same logic: <command>--force-confold</command> retains the old version of the file; <command>--force-confnew</command> will use the new version of the file (these choices are respected, even if the file has not been changed by the administrator, which only rarely has the desired effect). Adding the <command>--force-confdef</command> option tells <command>dpkg</command> to decide by itself when possible (in other words, when the original configuration file has not been touched), and only uses <command>--force-confnew</command> or <command>--force-confold</command> for other cases.
ja-JP: <command>dpkg</command> は設定ファイルの更新を担当しますが、更新中に管理者からの入力を要求するため、更新作業は定期的に中断されます。この状況は非対話的に更新作業を行いたいと思う管理者にとって都合がよいとは言えません。そのため、<command>dpkg</command> には設定ファイル更新処理規則を指定して自動的に処理を進めるオプションが用意されています。具体的に言えば、<command>--force-confold</command> を使った場合はいかなる状況でも常にシステムに現存する設定ファイルがパッケージ更新完了後の設定ファイルとして採用され、<command>--force-confnew</command> を使った場合はいかなる状況でも常に新しいバージョンのパッケージから提供される標準設定ファイルが採用されます (これらのオプションを単独で使った場合、システムに現存する設定ファイルおよび更新前後のバージョンのパッケージから提供される標準設定ファイルの互いの内容の違いは一切考慮されないので、期待通りの結果を得られないことが多いです)。上記オプションに加えて <command>--force-confdef</command> オプションを使うと、<command>dpkg</command> は設定ファイル更新処理時に管理者の判断を仰ぐ必要が生じた場合に限り (言い換えれば、システムに現存する設定ファイルの内容が更新前後のどちらのバージョンのパッケージから提供される標準設定ファイルの内容とも違う場合に限り) 管理者からの入力を待つ代わりに <command>--force-confnew</command> または <command>--force-confold</command> に従って設定ファイルを更新し、それ以外の場合はデフォルトの設定ファイル更新処理規則に従って設定ファイルを更新するようになります。

en: Including this option in the configuration file means that it will also be used in a graphical interface such as <command>aptitude</command>.
ja-JP: <command>dpkg</command> に渡すオプションを <command>apt</command> の設定ファイルに保存した場合、<command>aptitude</command> のようなグラフィカルインターフェースでもここで指定したオプションが使われるようになります。

en: Structure of a Source Package
ja-JP: ソースパッケージの構造

en: <primary>package</primary><secondary>source package</secondary>
ja-JP: <primary>パッケージ</primary><secondary>ソースパッケージ</secondary>

en: Format
ja-JP: フォーマット

en: <primary>DSC file</primary>
ja-JP: <primary>DSC ファイル</primary>

en: A source package is usually comprised of three files, a <filename>.dsc</filename>, a <filename>.orig.tar.gz</filename>, and a <filename>.debian.tar.xz</filename> (or <filename>.diff.gz</filename>). They allow creation of binary packages (<filename>.deb</filename> files described above) from the source code files of the program, which are written in a programming language.
ja-JP: ソースパッケージは通常 <filename>.dsc</filename>、<filename>.orig.tar.gz</filename>、<filename>.debian.tar.xz</filename> (または <filename>.diff.gz</filename>) の 3 つのファイルで構成されています。これらのファイルを使って、プログラミング言語で書かれたプログラムのソースコードファイルからバイナリパッケージ (前に説明した <filename>.deb</filename> ファイル) を作成します。

en: The <filename>.dsc</filename> (Debian Source Control) file is a short text file containing an RFC 2822 header (just like the <filename>control</filename> file studied in <xref linkend="sect.control" />) which describes the source package and indicates which other files are part thereof. It is signed by its maintainer, which guarantees authenticity. See <xref linkend="sect.package-authentication" /> for further details on this subject.
ja-JP: <filename>.dsc</filename> (Debian Source Control) ファイルは RFC 2822 ヘッダを含む短いテキストファイルで (<xref linkend="sect.control" />で述べた <filename>control</filename> ファイルと似ています)、ソースパッケージを説明し、他のどのファイルがパッケージの一部であるかを表明しています。メンテナは <filename>.dsc</filename> ファイルに署名することで、信頼性を保証しています。より詳しい情報は<xref linkend="sect.package-authentication" />をご覧ください。

en: A <filename>.dsc</filename> file
ja-JP: <filename>.dsc</filename> ファイルの一例

en: Note that the source package also has dependencies (<literal>Build-Depends</literal>) completely distinct from those of binary packages, since they indicate tools required to compile the software in question and construct its binary package.
ja-JP: バイナリパッケージと同様にソースパッケージにも依存関係 (<literal>Build-Depends</literal>) がある点に注意してください。依存関係の意味は、バイナリパッケージのそれとは全く異なり、このソフトウェアをコンパイルしてバイナリパッケージを作るのに必要なツールを表しています。

en: <emphasis>CAUTION</emphasis> Distinct namespaces
ja-JP: <emphasis>CAUTION</emphasis> 別の名前空間

en: It is important to note here that there is no required correspondence between the name of the source package and that of the binary package(s) that it generates. It is easy enough to understand if you know that each source package may generate several binary packages. This is why the <filename>.dsc</filename> file has the <literal>Source</literal> and <literal>Binary</literal> fields to explicitly name the source package and store the list of binary packages that it generates.
ja-JP: ここで、ソースパッケージの名前とそのソースパッケージから生成したバイナリパッケージの名前を一致させる必要がないという点によく注意してください。単一のソースパッケージから複数のバイナリパッケージが生成されていることを知ったら、これはすぐに理解できるでしょう。このため <filename>.dsc</filename> ファイルにはソースパッケージ名を明確に指定するための <literal>Source</literal> フィールドおよび生成されるバイナリパッケージ名のリストを指定するための <literal>Binary</literal> フィールドが含まれています。

en: <emphasis>CULTURE</emphasis> Why divide into several packages
ja-JP: <emphasis>CULTURE</emphasis> 複数のパッケージに分割する理由

en: Quite frequently, a source package (for a given software) can generate several binary packages. The split is justified by the possibility to use (parts of) the software in different contexts. Consider a shared library, it may be installed to make an application work (for example, <emphasis role="pkg">libc6</emphasis>), or it can be installed to develop a new program (<emphasis role="pkg">libc6-dev</emphasis> will then be the correct package). We find the same logic for client/server services where we want to install the server part on one machine and the client part on others (this is the case, for example, of <emphasis role="pkg">openssh-server</emphasis> and <emphasis role="pkg">openssh-client</emphasis>).
ja-JP: 極めて多くの場合において、単独のソフトウェアのソースパッケージは複数のバイナリパッケージを生成できます。しかしながら、この方針が正当化されるのはソースパッケージから生成されるそれぞれのソフトウェアが異なる目的で使われる可能性がある場合だけです。共有ライブラリについて考えてみましょう。共有ライブラリはアプリケーションを動作させるためにインストールされる場合もあれば (たとえば <emphasis role="pkg">libc6</emphasis>)、新しいプログラムを開発するためにインストールされる場合もあります (開発する場合は <emphasis role="pkg">libc6-dev</emphasis> が適切です)。クライアント/サーバサービスに対しても同じことが言えます。あるマシンにはサーバ部分だけを、別のマシンにはクライアント部分だけをインストールしたいと考えるのは真っ当な考え方です (サーバマシンに <emphasis role="pkg">openssh-server</emphasis> を、クライアントマシンに <emphasis role="pkg">openssh-client</emphasis> をインストールするような場合がこれに該当します)。

en: <emphasis>PERSPECTIVE</emphasis> Different source package formats
ja-JP: <emphasis>PERSPECTIVE</emphasis> ソースパッケージのさまざまなフォーマット

en: Originally there was only one source package format. This is the <literal>1.0</literal> format, which associates an <filename>.orig.tar.gz</filename> archive to a <filename>.diff.gz</filename> “debianization” patch (there is also a variant, consisting of a single <filename>.tar.gz</filename> archive, which is automatically used if no <filename>.orig.tar.gz</filename> is available).
ja-JP: もともとソースパッケージのフォーマットは 1 種類だけでした。これが <literal>1.0</literal> フォーマットです。<literal>1.0</literal> フォーマットでは <filename>.orig.tar.gz</filename> アーカイブに <filename>.diff.gz</filename>「debianization」パッチを当てるようにしていました (<literal>1.0</literal> フォーマットには亜種があります。亜種には <filename>.tar.gz</filename> アーカイブだけが含まれており、<filename>.orig.tar.gz</filename> がなければ自動的に <filename>.tar.gz</filename> アーカイブが使われます)。

en: The <filename>.orig.tar.gz</filename> file is an archive containing the source code as provided by the original developer. Debian package maintainers are asked to not modify this archive in order to be able to easily check the origin and integrity of the file (by simple comparison with a checksum) and to respect the wishes of some authors.
ja-JP: <filename>.orig.tar.gz</filename> ファイルはオリジナルの開発者が提供するソースコードと同じ内容を含むアーカイブです。Debian パッケージメンテナはファイルの出所と整合性を簡単に (チェックサムによる単純な比較で) 確認できるようにするために、そして一部の作者からの希望を尊重するためにアーカイブを変更しないことを要求されます。

en: <emphasis>TOOL</emphasis> Decompressing a source package
ja-JP: <emphasis>TOOL</emphasis> ソースパッケージの展開

en: <primary>decompressing, source package</primary>
ja-JP: <primary>ソースパッケージ</primary><secondary sortas="テンカイ">展開</secondary>

en: <primary>uncompressing, source package</primary>
ja-JP: <primary sortas="テンカイ">展開</primary><secondary>ソースパッケージ</secondary>

en: <primary>unpacking</primary><secondary>source package</secondary>
ja-JP: <primary sortas="テンカイ">展開</primary><secondary>ソースパッケージ</secondary>

en: If you have a source package, you can use the <command>dpkg-source</command> command (from the <emphasis role="pkg">dpkg-dev</emphasis> package) to decompress it:
ja-JP: ソースパッケージを持っていれば、<command>dpkg-source</command> コマンド (<emphasis role="pkg">dpkg-dev</emphasis> パッケージに含まれます) を使ってソースパッケージを展開できます。

en: Usage within Debian
ja-JP: Debian 内での使われ方

en: Manipulating Packages with <command>dpkg</command>
ja-JP: <command>dpkg</command> を用いたパッケージの操作

en: <emphasis>NOTE</emphasis> <command>dpkg</command> or <command>apt</command>?
ja-JP: <emphasis>NOTE</emphasis> <command>dpkg</command> か <command>apt</command> か?

en: <command>dpkg</command> should be seen as a system tool (backend), and <command>apt</command> as a tool closer to the user, which overcomes the limitations of the former. These tools work together, each one with its particularities, suited to specific tasks.
ja-JP: <command>dpkg</command> はシステムツール (バックエンド)、<command>apt</command> はユーザに近いツールとみなすべきです。<command>apt</command> は <command>dpkg</command> の制限を克服しています。これらのツールは互いに協力して作業を行います。両者は互いに異なる得意分野を持っており、それぞれが特定の作業を担当しています。

en: Installing Packages
ja-JP: パッケージのインストール

en: <primary>installation</primary><secondary>package installation</secondary>
ja-JP: <primary>インストール</primary><secondary sortas="パッケージノインストール">パッケージのインストール</secondary>

en: <command>dpkg</command> is, above all, the tool for installing an already available Debian package (because it does not download anything). To do this, we use its <literal>-i</literal> or <literal>--install</literal> option.
ja-JP: <command>dpkg</command> は既に利用できる Debian パッケージのインストールを担当しているツールです (ダウンロード機能を持っていません)。<command>dpkg</command> を使ってパッケージをインストールするには、<literal>-i</literal> または <literal>--install</literal> オプションを使ってください。

en: Installation of a package with <command>dpkg</command>
ja-JP: <command>dpkg</command> を使ったパッケージのインストール

en: Separate unpacking and configuration
ja-JP: 展開と設定を分けて実行

en: <primary>package</primary><secondary>unpacking</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="テンカイ">展開</secondary>

en: Sometimes <command>dpkg</command> will fail to install a package and return an error; if the user orders it to ignore this, it will only issue a warning; it is for this reason that we have the different <literal>--force-*</literal> options. The <command>dpkg --force-help</command> command, or documentation of this command, will give a complete list of these options. The most frequent error, which you are bound to encounter sooner or later, is a file collision. When a package contains a file that is already installed by another package, <command>dpkg</command> will refuse to install it. The following messages will then appear:
ja-JP: <command>dpkg</command> がパッケージのインストールに失敗し、エラーを返すことがあります。さらに、ユーザがインストールの失敗を無視するように命令すれば、警告が表示されるでしょう。すなわちこれが多くの <literal>--force-*</literal> 系オプションが用意されている理由です。<command>dpkg</command> の文書によれば <command>dpkg --force-help</command> コマンドでこれらのオプションの完全なリストを見ることが可能です。最もよく目にするエラーはファイルの衝突で、遅かれ早かれこのエラーに遭遇するのは避けられません。パッケージが他のパッケージによってインストール済みのファイルを含んでいる場合、<command>dpkg</command> はパッケージのインストールを拒否します。その場合、以下のメッセージが表示されます。

en: 
    <computeroutput>Unpacking libgdm (from .../libgdm_3.8.3-2_amd64.deb) ...
    dpkg: error processing /var/cache/apt/archives/libgdm_3.8.3-2_amd64.deb (--unpack):
     trying to overwrite '/usr/bin/gdmflexiserver', which is also in package gdm3 3.4.1-9</computeroutput>
ja-JP: 
    <computeroutput>libgdm (.../libgdm_3.8.3-2_amd64.deb) を展開しています...
    パッケージ /var/cache/apt/archives/libgdm_3.8.3-2_amd64.deb の処理中にエラーが発生しました (--unpack):
    '/usr/bin/gdmflexiserver' を上書きしようとしています。これはパッケージ gdm3 3.4.1-9 にも存在します</computeroutput>

en: In this case, if you think that replacing this file is not a significant risk to the stability of your system (which is usually the case), you can use the option <literal>--force-overwrite</literal>, which tells <command>dpkg</command> to ignore this error and overwrite the file.
ja-JP: この場合、ファイルを置き換えてもシステムの安定度は大きく損なわれない (通常は損なわれません) と考えるなら、<literal>--force-overwrite</literal> オプションを使うことで <command>dpkg</command> はこのエラーを無視してファイルを上書きします。

en: <emphasis>CAUTION</emphasis> Effective use of <literal>--force-*</literal>
ja-JP: <emphasis>CAUTION</emphasis> <literal>--force-*</literal> の効果的な使い方

en: <primary>broken dependency</primary>
ja-JP: <primary sortas="ハカイサレタイゾンセイ">破壊された依存性</primary>

en: If you are not careful, the use of an option <literal>--force-*</literal> can lead to a system where the APT family of commands will refuse to function. In effect, some of these options allow installation of a package when a dependency is not met, or when there is a conflict. The result is an inconsistent system from the point of view of dependencies, and the APT commands will refuse to execute any action except those that will bring the system back to a consistent state (this often consists of installing the missing dependency or removing a problematic package). This often results in a message like this one, obtained after installing a new version of <emphasis role="pkg">rdesktop</emphasis> while ignoring its dependency on a newer version of the <emphasis role="pkg">libc6</emphasis>:
ja-JP: 下手をすると <literal>--force-*</literal> 系オプションを使うことにより、そのシステム上で APT ファミリーのコマンドが動かなくなる場合があります。事実上、<literal>--force-*</literal> 系オプションを使えば、依存関係が満足されていなくても、衝突していても、パッケージをインストールできてしまいます。この結果、システムは依存関係の観点からすると整合性のない状況になります。APT コマンドはシステムを整合性のある状態に戻せるような操作 (依存関係を満足させるために必要なパッケージのインストール、問題のあるパッケージの削除などの操作) を除き、その実行を拒否しますから、APT コマンドが実行できなくなります。その場合、たとえば以下のようなメッセージが表示されることがあります。これは、<emphasis role="pkg">rdesktop</emphasis> の新しいバージョンが <emphasis role="pkg">libc6</emphasis> のシステムにインストールされているバージョンよりも新しいバージョンに依存しているにも関わらず、その依存関係を無視して <emphasis role="pkg">rdesktop</emphasis> をインストールした結果です。

en: <computeroutput># </computeroutput><userinput>apt full-upgrade
    </userinput><computeroutput>[...]
    You might want to run 'apt-get -f install' to correct these.
    The following packages have unmet dependencies:
      rdesktop: Depends: libc6 (&gt;= 2.5) but 2.3.6.ds1-13etch7 is installed
    E: Unmet dependencies. Try using -f.</computeroutput>
ja-JP: <computeroutput># </computeroutput><userinput>apt full-upgrade
    </userinput><computeroutput>[...]
    これらを直すためには 'apt-get -f install' を実行する必要があるかもしれません。
    以下のパッケージには満たせない依存関係があります:
      rdesktop: Depends: libc6 (&gt;= 2.5) しかし、2.3.6.ds1-13etch7 はインストールされています
    E: 未解決の依存関係があります。-f オプションを試してください。</computeroutput>

en: A courageous administrator who is certain of the correctness of their analysis may choose to ignore a dependency or conflict and use the corresponding <literal>--force-*</literal> option. In this case, if they want to be able to continue to use <command>apt</command> or <command>aptitude</command>, they must edit <filename>/var/lib/dpkg/status</filename> to delete/modify the dependency, or conflict, that they chose to override.
ja-JP: 自分の解析の正確さに自信を持っている勇気ある管理者なら、依存関係や衝突を無視して、対応する <literal>--force-*</literal> 系オプションを使うことを選ぶかもしれません。この場合に、管理者が <command>apt</command> や <command>aptitude</command> を使い続けたいと思うなら、管理者は無効にしたい依存関係や衝突を削除/変更するために <filename>/var/lib/dpkg/status</filename> を編集しなければいけません。

en: Removal and purge of the <emphasis role="pkg">debian-cd</emphasis> package
ja-JP: <emphasis role="pkg">debian-cd</emphasis> パッケージの削除と完全削除

en: Querying <command>dpkg</command>'s Database and Inspecting <filename>.deb</filename> Files
ja-JP: <command>dpkg</command> のデータベースへの問い合わせと <filename>.deb</filename> ファイルの調査

en: <primary>package</primary><secondary>status</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="ジョウタイ">状態</secondary>

en: <primary>package</primary><secondary>file list</secondary>
ja-JP: <primary>パッケージ</primary><secondary>ファイルリスト</secondary>

en: <primary>package</primary><secondary>content inspection</secondary>
ja-JP: <primary>パッケージ</primary><secondary sortas="ナイヨウチョウサ">内容調査</secondary>

en: <emphasis>BACK TO BASICS</emphasis> Option syntax
ja-JP: <emphasis>BACK TO BASICS</emphasis> オプションの構文

en: Most options are available in a “long” version (one or more relevant words, preceded by a double dash) and a “short” version (a single letter, often the initial of one word from the long version, and preceded by a single dash). This convention is so common that it is a POSIX standard.
ja-JP: 多くのオプションには「長い」もの (1 語以上の関連する単語を使い、二重ダッシュで始まるもの) と「短い」もの (1 文字で、長いオプションの頭文字の場合が多く、単独のダッシュで始まるもの) があります。これは POSIX 標準のプログラムでよく見られる慣例です。

en: Various queries with <command>dpkg</command>
ja-JP: <command>dpkg</command> にさまざまな情報を問い合わせる

en: <emphasis>GOING FURTHER</emphasis> Comparison of versions
ja-JP: <emphasis>GOING FURTHER</emphasis> バージョンの比較

en: <primary>version, comparison</primary>
ja-JP: <primary sortas="ヒカク">比較</primary><secondary>バージョン</secondary>

en: <primary>comparison of versions</primary>
ja-JP: <primary>バージョン</primary><secondary sortas="ヒカク">比較</secondary>

en: Since <command>dpkg</command> is the program for handling Debian packages, it also provides the reference implementation of the logic of comparing version numbers. This is why it has a <literal>--compare-versions</literal> option, usable by external programs (especially configuration scripts executed by <command>dpkg</command> itself). This option requires three parameters: a version number, a comparison operator, and a second version number. The different possible operators are <literal>lt</literal> (strictly less than), <literal>le</literal> (less than or equal to), <literal>eq</literal> (equal), <literal>ne</literal> (not equal), <literal>ge</literal> (greater than or equal to), and <literal>gt</literal> (strictly greater than). If the comparison is correct, <command>dpkg</command> returns 0 (success); if not, it gives a non-zero return value (indicating failure).
ja-JP: <command>dpkg</command> は Debian パッケージを取り扱うプログラムですから、バージョン番号の比較ロジックのリファレンス実装も提供しています。<command>dpkg</command> にはバージョンを比較するための <literal>--compare-versions</literal> オプションが用意されており、外部プログラム (特に <command>dpkg</command> 自身が呼び出す設定スクリプト) の中でバージョンを簡単に比較できるようにしています。<literal>--compare-versions</literal> オプションは 3 つの引数を取ります。具体的に言えば引数としてバージョン番号、比較演算子、2 番目のバージョン番号を取ります。比較演算子として使える演算子は <literal>lt</literal> (より小さい)、<literal>le</literal> (以下)、<literal>eq</literal> (等しい)、<literal>ne</literal> (等しくない)、<literal>ge</literal> (以上)、<literal>gt</literal> (より大きい) です。比較式が真ならば <command>dpkg</command> は 0 (成功) を返します。一方で偽ならば非ゼロ (失敗) を返します。

en: Note the unexpected failure of the last comparison: for <command>dpkg</command>, <literal>pre</literal>, usually denoting a pre-release, has no particular meaning, and this program compares the alphabetic characters in the same way as the numbers (a &lt; b &lt; c ...), in alphabetical order. This is why it considers “<literal>0pre3</literal>” to be greater than “<literal>0</literal>”. When we want a package's version number to indicate that it is a pre-release, we use the tilde character, “<literal>~</literal>”:
ja-JP: 最後の比較式は一見 0 (成功) を返すように思われますが、1 (失敗) を返しています。この点に注意しましょう。つまり、文字通りに解釈すれば <literal>pre</literal> は事前リリースを意味しますが、<command>dpkg</command> にとって <literal>pre</literal> は特別な意味を持つものではありません。<command>dpkg</command> はアルファベット文字を数字と同じ方法で (a &lt; b &lt; c ...)、アルファベット順に比較します。このため、「<literal>0pre3</literal>」は「<literal>0</literal>」より大きいというわけです。パッケージのバージョン番号に事前リリースであるという意味を持たせたい場合、チルダ文字「<literal>~</literal>」を使ってください。

en: <command>dpkg</command>'s Log File
ja-JP: <command>dpkg</command> のログファイル

en: <command>dpkg</command> keeps a log of all of its actions in <filename>/var/log/dpkg.log</filename>. This log is extremely verbose, since it details every one of the stages through which packages handled by <command>dpkg</command> go. In addition to offering a way to track dpkg's behavior, it helps, above all, to keep a history of the development of the system: one can find the exact moment when each package has been installed or updated, and this information can be extremely useful in understanding a recent change in behavior. Additionally, all versions being recorded, it is easy to cross-check the information with the <filename>changelog.Debian.gz</filename> for packages in question, or even with online bug reports.
ja-JP: <command>dpkg</command> は <filename>/var/log/dpkg.log</filename> に作業のすべてを記録します。<filename>/var/log/dpkg.log</filename> は極めて詳細です。なぜなら <filename>/var/log/dpkg.log</filename> には <command>dpkg</command> がパッケージに対して行った操作の各段階すべてが詳しく記録されているからです。dpkg の挙動を追跡する方法を提供することに加えて、<filename>/var/log/dpkg.log</filename> はシステムの変化の履歴を保存するのに役立ちます。すなわち、パッケージがインストールされたり更新された正確な日時を探すことが可能ですし、この情報は最近の挙動変化を理解するのに極めて役立ちます。加えて、すべてのバージョンが記録されていますから、注目しているパッケージの <filename>changelog.Debian.gz</filename> またはオンラインバグ報告と情報を簡単に照合できます。

en: Multi-Arch Support
ja-JP: マルチアーキテクチャサポート

en: <primary>Multi-Arch</primary>
ja-JP: <primary>マルチアーキテクチャ</primary>

en: <primary>architecture</primary><secondary>multi-arch support</secondary>
ja-JP: <primary>アーキテクチャ</primary><secondary>マルチアーキテクチャサポート</secondary>

en: All Debian packages have an <literal>Architecture</literal> field in their control information. This field can contain either “<literal>all</literal>” (for packages that are architecture independent) or the name of the architecture that it targets (like “amd64”, “armhf”, …). In the latter case, by default, <command>dpkg</command> will only accept to install the package if its architecture matches the host's architecture as returned by <command>dpkg --print-architecture</command>.
ja-JP: すべての Debian パッケージは control ファイルの中に <literal>Architecture</literal> フィールドを持っています。<literal>Architecture</literal> フィールドでは「<literal>all</literal>」(アーキテクチャに依存しないパッケージ) または対象のアーキテクチャの名前 (「amd64」、「armhf」など) のどちらか一方を指定します。対象アーキテクチャの名前が指定されていた場合、初期設定では <command>dpkg</command> は <command>dpkg --print-architecture</command> で返されるホストのアーキテクチャと一致するアーキテクチャ向けのパッケージのインストールだけを受け入れます。

en: This restriction ensures that users do not end up with binaries compiled for an incorrect architecture. Everything would be perfect except that (some) computers can run binaries for multiple architectures, either natively (an “amd64“ system can run “i386” binaries) or through emulators.
ja-JP: この制約は、ユーザが異なるアーキテクチャ向けにコンパイルされたバイナリを使う羽目にならないようにしています。コンピュータが複数のアーキテクチャのバイナリを実行できる場合、たとえば元から可能な場合 (「amd64」システムは「i386」バイナリを実行できます) やエミュレータを介すことで可能になる場合、を除けばこの制約は合理的と言えます。

en: Enabling Multi-Arch
ja-JP: マルチアーキテクチャの有効化

en: <command>dpkg</command>'s multi-arch support allows users to define “foreign architectures” that can be installed on the current system. This is simply done with <command>dpkg --add-architecture</command> like in the example below. There is a corresponding <command>dpkg --remove-architecture</command> to drop support of a foreign architecture, but it can only be used when no packages of this architecture remain.
ja-JP: <command>dpkg</command> のマルチアーキテクチャサポートのおかげで、ユーザは現在のシステムにインストールできる「外来アーキテクチャ」を定義できます。これを行うには、以下に示す通り <command>dpkg --add-architecture</command> を使ってください。関連して、<command>dpkg --remove-architecture</command> は外来アーキテクチャのサポートを取り消しますが、取り消したいアーキテクチャのパッケージが残っていた場合には失敗します。

en: <emphasis>NOTE</emphasis> APT's multi-arch support
ja-JP: <emphasis>NOTE</emphasis> APT のマルチアーキテクチャサポート

en: Foreign packages can then be installed with <command>apt install <replaceable>package</replaceable>:<replaceable>architecture</replaceable></command>.
ja-JP: 外来パッケージをインストールするには <command>apt install <replaceable>package</replaceable>:<replaceable>architecture</replaceable></command> を使ってください。

en: <emphasis>IN PRACTICE</emphasis> Using proprietary i386 binaries on amd64
ja-JP: <emphasis>IN PRACTICE</emphasis> amd64 上でプロプライエタリな i386 バイナリを使う

en: Multi-Arch Related Changes
ja-JP: マルチアーキテクチャ関連の変更

en: It is worth noting that <literal>Multi-Arch: same</literal> packages must have their names qualified with their architecture to be unambiguously identifiable. They also have the possibility to share files with other instances of the same package; <command>dpkg</command> ensures that all packages have bit-for-bit identical files when they are shared. Last but not least, all instances of a package must have the same version. They must thus be upgraded together.
ja-JP: <literal>Multi-Arch: same</literal> パッケージを取り扱う際には、パッケージの名前にアーキテクチャの限定詞を付けて対象を明確に識別しなければいけない点は注目に値します。<literal>Multi-Arch: same</literal> パッケージは対象アーキテクチャの異なる同じパッケージ間でファイルを共有しているかもしれません。さらに対象アーキテクチャの異なる同じパッケージ間でファイルが共有されている場合、<command>dpkg</command> は共有されているファイルがビット単位で一致することを確認します。最後に重要なことですが、パッケージは対象アーキテクチャごとにバージョンが違ってはいけません。対象アーキテクチャの異なるパッケージも必ず同時にアップグレードされなければいけません。

en: Multi-Arch support also brings some interesting challenges in the way dependencies are handled. Satisfying a dependency requires either a package marked “<literal>Multi-Arch: foreign</literal>” or a package whose architecture matches the one of the package declaring the dependency (in this dependency resolution process, architecture-independent packages are assumed to be of the same architecture than the host). A dependency can also be weakened to allow any architecture to fulfill it, with the <literal><replaceable>package</replaceable>:any</literal> syntax, but foreign packages can only satisfy such a dependency if they are marked “<literal>Multi-Arch: allowed</literal>”.
ja-JP: マルチアーキテクチャサポートによって、依存関係の取り扱い方法にいくつかの興味深い挑戦がなされました。あるパッケージの依存関係を満足させるためには、必要とされる側のパッケージは「<literal>Multi-Arch: foreign</literal>」と宣言されているか、依存パッケージ群の 1 つのパッケージとアーキテクチャが一致しているかのどちらか一方を満足させる必要があります (依存関係解決処理中、アーキテクチャに依存しないパッケージはホストと同じアーキテクチャと仮定されます)。<literal><replaceable>package</replaceable>:any</literal> 構文はどんなアーキテクチャでも依存関係を満足できることを意味しますが、外来パッケージを使って <literal><replaceable>package</replaceable>:any</literal> 構文で表記された依存関係を満足できるのは「<literal>Multi-Arch: allowed</literal>」と宣言されていた場合のみです。

en: Coexistence with Other Packaging Systems
ja-JP: 他のパッケージングシステムとの共存

en: Debian packages are not the only software packages used in the free software world. The main competitor is the RPM format of the Red Hat Linux distribution and its many derivatives. Red Hat is a very popular, commercial distribution. It is thus common for software provided by third parties to be offered as RPM packages rather than Debian.
ja-JP: フリーソフトウェア世界では Debian パッケージ以外のソフトウェアパッケージも使われています。Debian にとって最大の競争相手は Red Hat Linux ディストリビューションとその派生物が使う RPM フォーマットです。Red Hat は非常に人気のある商用ディストリビューションです。そのため一般に、サードパーティが提供するソフトウェアは Debian パッケージではなく RPM パッケージで用意されます。

en: In this case, you should know that the program <command>rpm</command>, which handles RPM packages, is available as a Debian package, so it is possible to use this package format on Debian. Care should be taken, however, to limit these manipulations to extract the information from a package or to verify its integrity. It is, in truth, unreasonable to use <command>rpm</command> to install an RPM on a Debian system; RPM uses its own database, separate from those of native software (such as <command>dpkg</command>). This is why it is not possible to ensure a stable coexistence of two packaging systems.
ja-JP: Debian パッケージが提供されなかったとしても、Debian には RPM パッケージを取り扱うプログラム <command>rpm</command> がパッケージとして用意されており、Debian では RPM パッケージフォーマットを取り扱うことができます。しかしながら、パッケージから情報を引き出したり、整合性を検証するための操作は制限されていることに注意してください。実のところ、RPM を Debian システムにインストールするために <command>rpm</command> を使うのは合理的ではありません。さらに RPM はネイティブソフトウェア (<command>dpkg</command> など) とは異なる自分自身のデータベースを使います。このため、2 つのパッケージングシステムを安定に共存させることを保証するのは不可能です。

en: On the other hand, the <emphasis role="pkg">alien</emphasis> utility can convert RPM packages into Debian packages, and vice versa.
ja-JP: 他方で、<emphasis role="pkg">alien</emphasis> ユーティリティを使えば以下に示す通り RPM パッケージを Debian パッケージに変換したりその逆を行うことが可能です。

en: <emphasis>COMMUNITY</emphasis> Encouraging the adoption of <filename>.deb</filename>
ja-JP: <emphasis>COMMUNITY</emphasis> <filename>.deb</filename> の採用を働きかける

en: You will find that this process is extremely simple. You must know, however, that the package generated does not have any dependency information, since the dependencies in the two packaging formats don't have systematic correspondence. The administrator must thus manually ensure that the converted package will function correctly, and this is why Debian packages thus generated should be avoided as much as possible. Fortunately, Debian has the largest collection of software packages of all distributions, and it is likely that whatever you seek is already in there.
ja-JP: 見ての通り <command>alien</command> を使った変換作業は極めて単純です。しかしながら、生成されたパッケージには依存関係の情報が含まれないことを知らなければいけません。なぜなら、2 つのパッケージフォーマットの依存関係の間に系統的な対応関係がないからです。管理者は変換されたパッケージが正しく動くことを手作業で保証しなければいけません。そのため、生成された Debian パッケージを使うのは可能な限り避けるべきです。幸いなことに、Debian が用意しているソフトウェアパッケージの数はすべてのディストリビューションの中で最も多く、依存関係の解決に苦労することはないでしょう。

en: Looking at the man page for the <command>alien</command> command, you will also note that this program handles other packaging formats, especially the one used by the Slackware distribution (it is made of a simple <filename>tar.gz</filename> archive).
ja-JP: <command>alien</command> コマンドの man ページを見ると、<command>alien</command> が他のパッケージフォーマット、特に (単純な <filename>tar.gz</filename> アーカイブで作られている) Slackware ディストリビューションで使われているフォーマット、を取り扱うことも可能なことに気が付くでしょう。

en: The stability of the software deployed using the <command>dpkg</command> tool contributes to Debian's fame. The APT suite of tools, described in the following chapter, preserves this advantage, while relieving the administrator from managing the status of packages, a necessary but difficult task.
ja-JP: <command>dpkg</command> ツールを使って配備されたソフトウェアの安定性は Debian の名声に寄与しています。次の章で説明する APT ツール集はこの長所を引き継いで、さらに、管理者が不可欠だが難しい作業であるパッケージの状態管理をしなくても済むようにしました。
