[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Packaging Manual 第8章
早瀬です。
Packaging Manual の第8章の作業が完了しました。
誤訳などありましたら、連絡下さい。
# 連休明けくらいまでには、全作業が終るよう頑張ります。
--
早瀬 茂規 (shayase@xxxxxxxxxxxxxxx)
<!-- ORIG
<chapt id="relationships"><heading>Declaring relationships between
packages
ORIG -->
<chapt id="relationships"><heading>パッケージ間の関連性の宣言
</heading>
<p>
<!-- ORIG
Packages can declare in their control file that they have
certain relationships to other packages - for example, that
they may not be installed at the same time as certain other
packages, and/or that they depend on the presence of others,
or that they should overwrite files in certain other packages
if present.
ORIG -->
パッケージは、コントロールファイル中に他のパッケージとの
関連性について宣言することができます。例えば、あるパッケージと
同時にインストールすることが許されていないパッケージや、また、
あるパッケージがきちんとインストールされていなければ
インストールできないパッケージ、またはあるパッケージが
インストールされているとき、そのファイルを上書きする
パッケージなどがあります。
</p>
<p>
<!-- ORIG
This is done using the <tt>Depends</tt>, <tt>Recommends</tt>,
<tt>Suggests</tt>, <tt>Conflicts</tt>, <tt>Provides</tt> and
<tt>Replaces</tt> control file fields.
ORIG -->
この宣言には、コントロールファイルの <tt>Depends</tt> と
<tt>Recommends</tt>、<tt>Suggests</tt>、<tt>Conflicts</tt>、
<tt>Provides</tt>、<tt>Replaces</tt> フィールドを使用します。
</p>
<!-- ORIG
<sect id="depsyntax"><heading>Syntax of relationship fields
ORIG -->
<sect id="depsyntax"><heading>関係性フィールドの書式
</heading>
<p>
<!-- ORIG
These fields all have a uniform syntax. They are a list of
package names separated by commas.
ORIG -->
これらのフィールドはすべて同一書式です。このフィールドは、
コンマで区切ったパッケージ名のリストです。
</p>
<p>
<!-- ORIG
In <tt>Depends</tt>, <tt>Recommends</tt>, <tt>Suggests</tt>
and <tt>Pre-Depends</tt> (the fields which declare
dependencies of the package in which they occur on other
packages) these package names may also be lists of
alternative package names, separated by vertical bar symbols
<tt>|</tt> (pipe symbols).
ORIG -->
<tt>Depends</tt> や <tt>Recommends</tt>、<tt>Suggests</tt>、
<tt>Pre-Depends</tt>
(他のパッケージに依存関係がある場合に宣言するフィールド)
の各フィールド内のパッケージ名には、代替パッケージ名の
リストを書くこともできます。代替パッケージ名は、
<tt>|</tt> (パイプシンボル) で区切って書きます。
</p>
<p>
<!-- ORIG
All the fields except <tt>Provides</tt> may restrict their
applicability to particular versions of each named package.
This is done in parentheses after each individual package
name; the parentheses should contain a relation from the
list below followed by a version number, in the format
described in <ref id="versions">.
ORIG -->
<tt>Provides</tt> 以外のすべてのフィールドでは、
パッケージ名ごとにそのバージョンを指定することができます。
この場合、パッケージ名の後に括弧を続け、その中に
バージョン番号を記述します。 括弧内には、
<ref id="versions"> の書式に従ったバージョン番号との関係を
記します。
</p>
<p>
<!-- ORIG
The relations allowed are <tt><<</tt>, <tt><=</tt>,
<tt>=</tt>, <tt>>=</tt> and <tt>>></tt> for
strictly earlier, earlier or equal, exactly equal, later or
equal and strictly later, respectively. The forms
<tt><</tt> and <tt>></tt> were used to mean
earlier/later or equal, rather than strictly earlier/later,
so they should not appear in new packages (though
<prgn>dpkg</prgn> still supports them).
ORIG -->
バージョン番号の関係を示すために使用する記号は、
<tt><<</tt> と <tt><=</tt>、<tt>=</tt>、
<tt>>=</tt>、<tt>>></tt> です。それぞれ、
順番に「全く小さい」「小さいか等しい」「全く同じ」
「等しいか大きい」「全く大きい」を意味しています。
記号 <tt><</tt> と <tt>></tt> は「小さいか等しい」
「等しいか大きい」という意味をもちます。「全く小さい」
または「全く大きい」という意味ではありません。
新しいパッケージでは、<tt><</tt>、<tt>></tt> は
使用しません。(いちおう<prgn>dpkg</prgn>はまだこの書式を
サポートしていますけど)。
</p>
<p>
<!-- ORIG
Whitespace may appear at any point in the version
specification, and must appear where it's necessary to
disambiguate; it is not otherwise significant. For
consistency and in case of future changes to
<prgn>dpkg</prgn> it is recommended that a single space be
used after a version relationship and before a version
number; it is usual also to put a single space after each
comma, on either side of each vertical bar, and before each
open parenthesis.
ORIG -->
空白は、バージョン設定のどの部分に入れてもかまいません。
そして、必要ならば空白を挿入して、あいまいさを
取りのぞかなければいけません。その他の意味はありません。
空白を一ついれることを推奨します。そして通常は、コンマのあとに
空白を一つ入れ、パイプシンボル「|」の両側にも空白を入れます。
また、開括弧の前にも空白を一つ入れます。
</p>
<p>
<!-- ORIG
For example:
ORIG -->
例を以下に示します。
<example>
Package: metamail
Version: 2.7-3
Depends: libc5 (>= 5.2.18-4), mime-support, csh | tcsh
</example>
</p>
</sect>
<!-- ORIG
<sect><heading>Dependencies - <tt>Depends</tt>, <tt>Recommends</tt>,
<tt>Suggests</tt>, <tt>Pre-Depends</tt>
ORIG -->
<sect><heading>依存関係 - <tt>Depends</tt>, <tt>Recommends</tt>,
<tt>Suggests</tt>, <tt>Pre-Depends</tt>
</heading>
<p>
<!-- ORIG
These four fields are used to declare a dependency by one
package on another. They appear in the depending package's
control file.
ORIG -->
これらの四つのフィールドはあるパッケージと他のパッケージとの
依存関係を宣言するために使用します。これらのフィールドは、
他に依存しているパッケージのコントロールファイルの中にあります。
</p>
<p>
<!-- ORIG
All but <tt>Pre-Depends</tt> (discussed below) take effect
<em>only</em> when a package is to be configured. They do
not prevent a package being on the system in an unconfigured
state while its dependencies are unsatisfied, and it is
possible to replace a package whose dependencies are
satisfied and which is properly installed with a different
version whose dependencies are not and cannot be satisfied;
when this is done the depending package will be left
unconfigured (since attempts to configure it will give
errors) and will not function properly.
ORIG -->
<tt>Pre-Depends</tt> (これについては以下で議論します) 以外の
すべての宣言は、パッケージを設定する時<em>だけ</em>作用します。
そのため、依存関係を満たさないパッケージがシステム中に
未設定 (unconfigured) な状態でインストールされることを
防ぐことはできません。このパッケージは、依存関係がきちんと
満足されており正しくインストールされているパッケージを
依存関係を満たしていないか、満たせないような別のバージョンの
パッケージで置き換えることさえできます。この場合は
そのパッケージは未設定のまま (configure しようとすると
エラーが返ってきまず) で、当然、きちんと動作しないでしょう。
</p>
<p>
<!-- ORIG
For this reason packages in an installation run are usually
all unpacked first and all configured later; this gives
later versions of packages with dependencies on later
versions of other packages the opportunity to have their
dependencies satisfied.
ORIG -->
この理由から、最初のインストール時には、すべてのパッケージが
まず展開されて、その後、すべてのパッケージを
設定 (configure) します。こうすることによって、現存の
システムに存在しない、新しいバージョンのパッケージに依存関係を
宣言している新しいパッケージが依存関係を満足できることに
なります。
</p>
<p>
<!-- ORIG
Thus <tt>Depends</tt> allows package maintainers to impose
an order in which packages should be configured.
ORIG -->
このように、<tt>Depends</tt> フィールドによって、パッケージの
メンテナはパッケージの設定順序を指定できます。
<taglist>
<tag><tt>Depends</tt></tag>
<item>
<!-- ORIG
<p>This declares an absolute dependency.
ORIG -->
<p>これは、必ず依存しているパッケージを宣言します。
</p>
<p>
<!-- ORIG
<prgn>dpkg</prgn> will not configure packages whose
dependencies aren't satisfied. If it is asked to make
an installation which would cause an installed
package's dependencies to become unsatisfied it will
complain
<footnote>
<p>
Current versions (1.2.4) of <prgn>dpkg</prgn> have
a bug in this area which will cause some of these
problems to be ignored.
</p>
</footnote>, unless <tt>−auto-deconfigure</tt> is
specified, in which case those packages will be
deconfigured before the installation proceeds.
ORIG -->
<prgn>dpkg</prgn> は、その依存関係が満足されない限り、
パッケージを設定しようとしません。もし、強制的に
依存関係を無視してインストールしようとすると、
<tt>--auto-deconfigure</tt> オプションが
指定されていないかぎり、<prgn>dpkg</prgn> は文句を
いいます
<footnote>
<p>
現行バージョン(1.2.4)の <prgn>dpkg</prgn> には、
この領域中のバグがあり、依存関係の問題のうちの
いくらかを無視してしまいます。
</p>
</footnote>。このオプションが指定されていると、
パッケージのインストールが行われる前に、設定が
解除されます。
</p>
<p>
<!-- ORIG
<prgn>dselect</prgn> makes it hard for the user to
select packages for installation, removal or upgrade
in a way that would mean that packages'
<prgn>Depends</prgn> fields would be unsatisfied. The
user can override this if they wish, for example if
they know that <prgn>dselect</prgn> has an out-of-date
view of the real package relationships.
ORIG -->
<prgn>dselect</prgn> はパッケージの
<prgn>Depends</prgn> フィールドが依存関係を
満足しないようなパッケージの導入や削除、更新が
できにくいようにしてありますが、望めば強制的に
実施することができます。これは例えば
<prgn>dselect</prgn> が実際のパッケージ間関係を
反映しておらず、古い情報しか持っていない場合に
使用します。
</p>
<p>
<!-- ORIG
The <tt>Depends</tt> field should be used if the
depended-on package is required for the depending
package to provide a significant amount of
functionality.</p>
ORIG -->
<tt>Depends</tt> フィールドは、そのパッケージが
他のあるパッケージに重要な機能の多くを
依存している場合に使わなければいけません。
</item>
<tag><tt>Recommends</tt></tag>
<item>
<!-- ORIG
<p>This declares a strong, but not absolute, dependency.
ORIG -->
<p>強い依存関係だけれども、絶対というほどではない
依存関係の場合に宣言します。
</p>
<p>
<!-- ORIG
<tt>Recommends</tt> is ignored by <prgn>dpkg</prgn>,
so that users using the command-line (who are presumed
to know what they're doing) will not be impeded.
ORIG -->
<prgn>dpkg</prgn> は、<tt>Recommends</tt> フィールドを
無視します。コマンドラインを使うユーザ
(自分が何をしているかを知っているユーザ)
はエラーなどに邪魔されることはありません。
</p>
<p>
<!-- ORIG
It is treated by <prgn>dselect</prgn> exactly as
<tt>Depends</tt> is; this makes it hard for the user
to select things so as to leave <tt>Recommends</tt>
fields unsatisfied, but they are able to do so by
being persistent.
ORIG -->
一方、<prgn>dselect</prgn> がこのフィールドを扱うときは、
<tt>Depends</tt> と同様の扱いをします。
<tt>Recommends</tt> フィールドの関係を満足せずに、
パッケージを選択することは難しくなっています。
けれども、ユーザがもし望むのであればそうすることも
できるようになっています。
</p>
<p>
<!-- ORIG
The <tt>Recommends</tt> field should list packages
that would be found together with this one in all but
unusual installations.</p>
ORIG -->
この <tt>Recommends</tt> フィールドには、特別な場合で
ないかぎり一緒に使用されるパッケージが書かれます。
</item>
<tag><tt>Suggests</tt></tag>
<item>
<p>
<!-- ORIG
This is used to declare that one package may be more
useful with one or more others. Using this field
tells the packaging system and the user that the
listed packages are related to this one and can
perhaps enhance its usefulness, but that installing
this one without them is perfectly reasonable.
ORIG -->
そのパッケージをより便利に使うための一つまたは
それ以上の他のパッケージを宣言します。ここに
宣言されているパッケージも一緒にインストールすると、
おそらく、より便利になるでしょう。けれども、それらが
ない場合でも全く問題なくインストールできます。
</p>
<p>
<!-- ORIG
<prgn>dselect</prgn> will offer suggsted packages to
the system administrator when they select the
suggesting package, but the default is not to install
the suggested package.</p>
ORIG -->
<prgn>dselect</prgn> を使用してパッケージを選択すると、
管理者に <tt>Suggests</tt> されたパッケージを
インストールするように提案してきます。けれども、
デフォルトではインストールしません。</p>
</item>
<tag><tt>Pre-Depends</tt></tag>
<item>
<!-- ORIG
<p>This field is like <tt>Depends</tt>, except that it also forces
<prgn>dpkg</prgn> to complete installation of the
packages named before even starting the installation
of the package which declares the predependency.
ORIG -->
<p>このフィールドは <tt>Depends</tt> と似ていますが、
この場合は、目的のパッケージのインストール前に、
先行依存 (predependency) パッケージの完全インストールを、
<tt>dpkg</tt> に強制します。
</p>
<p>
<!-- ORIG
<prgn>dselect</prgn> checks for predependencies when
it is doing an installation run, and will attempt to
find the packages which are required to be installed
first and do so in the right order.
ORIG -->
<prgn>dselect</prgn> は、一連のインストール作業の
実行中に、その先行依存性をチェックします。そして最初に
インストールしなければいけないパッケージから正しい
順番でインストール作業を行おうとします。
</p>
<p>
<!-- ORIG
However, this process is slow (because it requires
repeated invocations of <prgn>dpkg</prgn>) and
troublesome (because it requires guessing where to
find the appropriate files).
ORIG -->
けれども、この作業は遅く (<prgn>dpkg</prgn> の複数回の
実行が必要なのです)、またトラブルを起しやすいです
(適切なファイルがどこにあるか推測しなければならないので)。
</p>
<p>
<!-- ORIG
For these reasons, and because this field imposes
restrictions on the order in which packages may be
unpacked (which can be difficult for installations
from multipart media, for example),
<tt>Pre-Depends</tt> should be used sparingly,
preferably only by packages whose premature upgrade or
installation would hamper the ability of the system to
continue with any upgrade that might be in progress.
ORIG -->
これらの理由から、また、このフィールドが、パッケージの
展開順序に制約を設ける (例えば、
マルチパートメディアからのインストールが難しくなります)
ので、<tt>Pre-Depends</tt> は、そのパッケージの不完全な
更新やインストールが、システムで進行中の更新作業を
続ける妨げとなる場合のみに使用されなければいけません。
</p>
<p>
<!-- ORIG
When the package declaring it is being configured, a
<tt>Pre-Dependency</tt> will be considered satisfied
only if the depending package has been correctly
configured, just as if an ordinary <tt>Depends</tt>
had been used.
ORIG -->
<tt>Pre-Dependency</tt> を宣言したパッケージが設定中の
時、依存するパッケージが正常に設定済である場合にのみ
<tt>Pre-Dependency</tt> を満たしたとみなします。
これは、通常の <tt>Depends</tt> と同様です。
</p>
<p>
<!-- ORIG
However, when a package declaring a predependency is
being unpacked the predependency can be satisfied even
if the depended-on package(s) are only unpacked or
half-configured, provided that they have been
configured correctly at some point in the past (and
not removed or partially removed since). In this case
both the previously-configured and currently unpacked
or half-configured versions must satisfy any version
clause in the <tt>Pre-Depends</tt> field.
ORIG -->
ただし、ある時点できちんと設定され、以後削除されて
いない場合には、<tt>Pre-Dependency</tt> を宣言した
パッケージが展開中や展開直後、中途半端な設定済の
状態でさえ、先行依存性 (<tt>Pre-Dependency</tt>) は
満足できます。この場合は、以前に設定されていた
パッケージのバージョンと、現在展開された、または
ある程度設定されたバージョンとの両方が、
<tt>Pre-Depends</tt> フィールドのバージョン部分を
満足しなければいけません。
</p>
</item>
</taglist>
</p>
<p>
<!-- ORIG
When selecting which level of dependency to use you should
consider how important the depended-on package is to the
functionality of the one declaring the dependency. Some
packages are composed of components of varying degrees of
importance. Such a package should list using
<tt>Depends</tt> the package(s) which are required by the
more important components. The other components'
requirements may be mentioned as Suggestions or
Recommendations, as appropriate to the components' relative
importance.
ORIG -->
依存関係のレベルを選択するにあたって、そのパッケージの機能に
おいて依存パッケージの機能がどの程度重要なのかを考えなければ
いけません。あるパッケージが、重要度のことなるいくつかの
部品から構成されているとします。そのとき、その部品のなかでも
重要度の高いものが必要とするようなパッケージを
<tt>Depends</tt> として並べ挙げるべきです。そのほかの部分が
必要とするパッケージは、その部品の相対的な重要性にしたがって
Suggests なり、Recommends として参照されることになります。
</p>
<!-- ORIG
<sect1><heading>Dependencies on shared libraries
ORIG -->
<sect1><heading>共有ライブラリへの依存関係
</heading>
<p>
<!-- ORIG
The dependency fields listed above are used by packages
which need shared libraries to declare dependencies on the
appropriate packages.
ORIG -->
上述の Depends フィールドは、共有ライブラリを必要とする
パッケージが、ある適切なパッケージへの依存関係を宣言する際に
使用します。
</p>
<p>
<!-- ORIG
These dependencies are usually determined automatically
using <prgn>dpkg-shlibdeps</prgn> and inserted in the
package control file using the control file substitution
variables mechanism; see <ref id="srcsubstvars"> and
<ref id="sourcetools">.
ORIG -->
これらの依存関係は、通常は、<prgn>dpkg-shlibdeps</prgn>
によって自動的に決定され、パッケージのコントロールファイルに
挿入されます。これは、コントロールファイルへの変数代入機構に
よっています。<ref id="srcsubstvars"> および
<ref id="sourcetools"> をごらんください。
</p>
</sect1>
<!-- ORIG
<sect1><heading>Deconfiguration due to removal during bulk
installations
ORIG -->
<sect1><heading>大量インストール時のパッケージ削除による設定の解除
</heading>
<p>
<!-- ORIG
If <prgn>dpkg</prgn> would like to remove a package due to a
conflict, as described above, but this would violate a
dependency of some other package on the system,
<prgn>dpkg</prgn> will usually not remove the conflicting
package and halt with an error.
ORIG -->
<prgn>dpkg</prgn> が、上述のような競合関係のためにある
パッケージを削除しようとしたとき、システム中の他の
あるパッケージとの依存関係を満足できなくなることがありえます。
この場合、<prgn>dpkg</prgn> は、その競合パッケージを
削除しようとせず、エラーを出力して終了します。
</p>
<p>
<!-- ORIG
However, if the <tt>−auto-deconfigure</tt> (<tt>-B</tt>)
option is used <prgn>dpkg</prgn> will automatically
`deconfigure' the package with the problematic dependency,
so that the conflicting package can be removed and the
package we're trying to install can be installed. If
<prgn>dpkg</prgn> is being asked to install packages (rather
than just unpacking them) it will try to reconfigure the
package when it has unpacked all its arguments, in the hope
that one of the other packages it is installing will satisfy
the problematic dependency.
ORIG -->
けれども、<tt>--auto-deconfigure</tt> (<tt>-B</tt>) という
オプションが使用されていると、<prgn>dpkg</prgn> は、
依存関係に問題のあるパッケージの設定を自動的に解除します。
この場合は、競合関係のあるパッケージは削除可能になり、
インストールしようとしているパッケージはインストール可能に
なります。この時、<prgn>dpkg</prgn> は、依存関係の問題を、
他のあるパッケージが解決してくれることを期待して、
インストール時に、展開後、再設定を行おうとします。
</p>
<p>
<!-- ORIG
<prgn>dselect</prgn> supplies this argument to
<prgn>dpkg</prgn> when it invokes it, so that bulk
installations proceed smoothly.
ORIG -->
<prgn>dselect</prgn> は、大量のインストール作業を円滑に
進めるため、<prgn>dpkg</prgn> をこのオプション付きで
起動します。
</p>
</sect1>
<!-- ORIG
<sect id="conflicts"><heading>Alternative packages -
<tt>Conflicts</tt> and <tt>Replaces</tt>
ORIG -->
<sect id="conflicts"><heading>代替パッケージ -
<tt>Conflicts</tt> と <tt>Replaces</tt>
</heading>
<p>
<!-- ORIG
When one package declares a conflict with another
<prgn>dpkg</prgn> will refuse to allow them to be installed
on the system at the same time.
ORIG -->
あるパッケージが他のパッケージとの競合関係を宣言している場合、
<prgn>dpkg</prgn>は、それら二つのパッケージを同時に
インストールすることはできません。
</p>
<p>
<!-- ORIG
If one package is to be installed, the other must be removed first -
if the package being installed is marked as replacing (<ref
id="replaces">) the one on the system, or the one on the system is
marked as deselected, or both packages are marked
<tt>Essential</tt>, then <prgn>dpkg</prgn> will
automatically remove the package which is causing the
conflict, otherwise it will halt the installation of the new
package with an error.
ORIG -->
一つのパッケージがインストールされていると、他方のパッケージは
まず最初に削除しなければいけません。また、そのインストール中の
パッケージが置き換えられるように指示されているとき
(<ref id="replaces">) や、システムにインストールされている
パッケージが選択解除されるように指示されているとき、両方の
パッケージに、<tt>Essential</tt> という宣言がされているときは、
<prgn>dpkg</prgn> は、競合関係の原因となっているパッケージを
自動的に削除します。そうでない時は、エラーを出力し、
新規パッケージのインストールを中止します。
</p>
<p>
<!-- ORIG
<prgn>dselect</prgn> makes it hard to select conflicting
packages, though the user can override this if they wish.
If they do not override it then <prgn>dselect</prgn> will
select one of the packages for removal, and the user must
make sure it is the right one. In the future
<prgn>dselect</prgn> will look for the presence of a
<tt>Replaces</tt> field to help decide which package should
be installed and which removed.
ORIG -->
競合パッケージをユーザが選択することは難しくなっていますが、
<prgn>dselect</prgn> を使用するときは、もし望むのであれば
上書きすることができます。けれども、ユーザが上書きをしなかった
場合は、<prgn>dselect</prgn> が自動的に削除するパッケージを
選びます。ユーザはそれが正しいものかどうかを確認しなければ
いけません。将来的には、<prgn>dselect</prgn> が、
<tt>Replaces</tt> フィールドが存在しているのかどうかを
見つけるようになる予定です。これによって、どれを
インストールしてどれを削除するのかの判断がより容易に
なるでしょう。
</p>
<p>
<!-- ORIG
A package will not cause a conflict merely because its
configuration files are still installed; it must be at least
half-installed.
ORIG -->
あるパッケージは単に構成ファイルがまだインストールされて
いないという理由で、競合関係をひきおこすことはありません。
この場合は最低でも half-installed の状態でなければいけません。
</p>
<p>
<!-- ORIG
A special exception is made for packages which declare a
conflict with their own package name, or with a virtual
package which they provide (see below): this does not
prevent their installation, and allows a package to conflict
with others providing a replacement for it. You use this
feature when you want the package in question to be the only
package providing something.
ORIG -->
インストール中のパッケージ自身の名前やそれ自身が提供する
仮想パッケージ (以下を参照してください) との競合関係が
宣言されている場合は特殊な例外です。:この場合、そういう
パッケージのインストールが妨げられることはありません。
また、このパッケージを置換する他のパッケージと競合することも
できます。あるパッケージだけが、ある仮想パッケージを
提供するように指定したいときに、この機能を使用します。
</p>
<p>
<!-- ORIG
A <tt>Conflicts</tt> entry should almost never have an
`earlier than' version clause. This would prevent
<prgn>dpkg</prgn> from upgrading or installing the package
which declared such a conflict until the upgrade or removal
of the conflicted-with package had been completed. This
aspect of installation ordering is not handled by
<prgn>dselect</prgn>, so that the use <tt>Conflicts</tt> in
this way is likely to cause problems for `bulk run' upgrades
and installations.
ORIG -->
<tt>Conflicts</tt> フィールドは、バージョン番号の指定に、
「より古い」という指定を含んではいけません。このフィールドが
あると、<prgn>dpkg</prgn> は、その競合関係を宣言している
パッケージが削除されるか更新されるまでそのパッケージの
インストールまたは更新を中止します。このインストール順序は、
<prgn>dselect</prgn> コマンドでは扱われません。従って、
インストール順序の規定に、このフィールドを使用すると、
<prgn>dselect</prgn> によって、大量のインストール作業を
行うときには、問題がおきるかもしれません。
</p>
</sect>
<!-- ORIG
<sect id="virtual"><heading>Virtual packages - <tt>Provides</tt>
ORIG -->
<sect id="virtual"><heading>仮想パッケージ - <tt>Provides</tt>
</heading>
<p>
<!-- ORIG
As well as the names of actual (`concrete') packages, the
package relationship fields <tt>Depends</tt>,
<tt>Recommends</tt>, <tt>Suggests</tt> and
<tt>Conflicts</tt> may mention virtual packages.
ORIG -->
実際に存在するパッケージと同様、パッケージの関連性を記述する
フィールド、<tt>Depends</tt> と、<tt>Recommends</tt>、
<tt>Suggests</tt>、<tt>Conflicts</tt> には、仮想パッケージ名を
記述することができます。
</p>
<p>
<!-- ORIG
A virtual package is one which appears in the
<tt>Provides</tt> control file field of another package.
The effect is as if the package(s) which provide a
particular virtual package name had been listed by name
everywhere the virtual package name appears.
ORIG -->
この仮想パッケージ名は、あるパッケージのコントロールファイルの、
<tt>Provides</tt> フィールドに書かれるものです。これによって、
そのパッケージが仮想パッケージが書かれているところすべてに
リストされることになります。
</p>
<p>
<!-- ORIG
If there are both a real and a virtual package of the same
name then the dependency may be satisfied (or the conflict
caused) by either the real package or any of the virtual
packages which provide it. This is so that, for example,
supposing we have
ORIG -->
同じ名前の実際のパッケージと仮想パッケージが存在していた場合、
依存関係は、そのパッケージによって、満足されたりされなかったり
します。例えば、
<example>
Package: vm
Depends: emacs
</example>
<!-- ORIG
and someone else releases an xemacs package they can say
ORIG -->
こういうパッケージがあった場合で、他の xemacs の
リリースパッケージが、
<example>
Package: xemacs
Provides: emacs
<!-- ORIG
</example> and all will work in the interim (until a purely
virtual package name is decided on and the <tt>emacs</tt>
and <tt>vm</tt> packages are changed to use it).
ORIG -->
</example>こういう宣言をしていた場合、すべて正常に動作します
(ただし、仮想パッケージ名が上書きされたり、<tt>emacs</tt> と
<tt>vm</tt> パッケージが変更された場合を除きます)。
</p>
<p>
<!-- ORIG
If a dependency or a conflict has a version number attached
then only real packages will be considered to see whether
the relationship is satisfied (or the prohibition violated,
for a conflict) - it is assumed that a real package which
provides virtual package is not of the `right' version. So,
a <tt>Provides</tt> field may not contain version numbers,
and the version number of the concrete package which
provides a particular virtual package will not be looked at
when considering a dependency on or conflict with the
virtual package name.
ORIG -->
依存、競合関係にバージョン番号が付けられている場合は、
そのチェックのためには実際のパッケージだけが考慮されます。
- 仮想パッケージを提供するある実在のパッケージの
バージョン番号は、「正しい」バージョン番号ではないと
みなされます。従って、<tt>Provides</tt> フィールドには、
バージョン番号を含んではいけません、そして仮想パッケージとの
競合または依存関係を決定するときに、その仮想パッケージを
提供する実際パッケージのバージョン番号を参照してはいけません。
</p>
<p>
<!-- ORIG
It is likely that the ability will be added in a future
release of <prgn>dpkg</prgn> to specify a version number for
each virtual package it provides. This feature is not yet
present, however, and is expected to be used only
infrequently.
ORIG -->
将来的に、<prgn>dpkg</prgn> には、提供される仮想パッケージの
バージョン番号を特定する機能が付加される予定です。しかし、
この機能は今はまだ実装されていませんし、またそれはめったに
使われないことと思います。
</p>
<p>
<!-- ORIG
If you want to specify which of a set of real packages should be the
default to satisfy a particular dependency on a virtual package, you
should list the real package as an alternative before the virtual.
ORIG -->
ある実際のパッケージのセットが、ある仮想パッケージに関する
特定の依存関係を満足しなければいけないときは、仮想パッケージの
前に、実際のパッケージ名をフィールドに並べてください。
</p>
</sect>
<!-- ORIG
<sect id="replaces"><heading><tt>Replaces</tt> - overwriting
files and replacing packages
ORIG -->
<sect id="replaces"><heading><tt>Replaces</tt> -
ファイルの上書きと置換
</heading>
<p>
<!-- ORIG
The <tt>Replaces</tt> control file field has two purposes,
which come into play in different situations.
ORIG -->
コントロールファイルの <tt>Replaces</tt> フィールドは、
違う状況下で作用する二つの目的を持っています。
</p>
<p>
<!-- ORIG
Virtual packages (<ref id="virtual">) are not considered
when looking at a <tt>Replaces</tt> field - the packages
declared as being replaced must be mentioned by their real
names.
ORIG -->
仮想パッケージは (<ref id="virtual">) は、<tt>Replaces</tt>
フィールドを参照するときは、考慮されません。このフィールドに
置換されるパッケージを宣言するときは、実際のパッケージ名を
使用してください。
</p>
<!-- ORIG
<sect1><heading>Overwriting files in other packages
ORIG -->
<sect1><heading>他のパッケージ中の一部ファイルの上書き
</heading>
<p>
<!-- ORIG
Firstly, as mentioned before, it is usually an error for a
package to contains files which are on the system in
another package, though currently the
<tt>−force-overwrite</tt> flag is enabled by default,
downgrading the error to a warning,
ORIG -->
最初に、以前言及したように、通常、システム中の他の
パッケージに含まれているファイルをインストールしようとする
パッケージが含んでいると、それはエラーになります。しかし、
現在のところ、dpkg のオプション、<tt>--force-overwrite</tt>
はデフォルトでオンになっており、このエラーはウォーニングに
格下げされています。
</p>
<p>
<!-- ORIG
If the overwriting package declares that it replaces the
one containing the file being overwritten then
<prgn>dpkg</prgn> will proceed, and replace the file from
the old package with that from the new. The file will no
longer be listed as `owned' by the old package.
ORIG -->
ここで、インストールパッケージが、システム中のあるファイルを
置換すると宣言していた場合、<prgn>dpkg</prgn> はそれの処理を
実行します。そして、古いパッケージ中のファイルを新しい
ファイルと置き換えます。そのファイルは古いパッケージの
所有リストからは削除されます。
</p>
<p>
<!-- ORIG
If a package is completely replaced in this way, so that
<prgn>dpkg</prgn> does not know of any files it still
contains, it is considered to have disappeared. It will
be marked as not wanted on the system (selected for
removal) and not installed. Any conffiles details noted
in the package will be ignored, as they will have been
taken over by the replacing package(s). The package's
<prgn>postrm</prgn> script will be run to allow the
package to do any final cleanup required. See <ref
id="mscriptsinstact">.
ORIG -->
このようにして、パッケージが完全に置き換えられてしまった
ときは、<prgn>dpkg</prgn> は、どのファイルがまだ
含まれているのか、もはや情報を持っていません。したがって、
この場合は、古いパッケージは削除されたと考えられます。
システムは、「削除」および「インストールされていない」との
マークを古いパッケージに付けます。一方、そのパッケージの
構成情報を記した設定ファイルは削除されません。これは、
新しいパッケージによって上書きされている可能性が
あるからです。最終的な大掃除が必要であれば、
そのパッケージの <prgn>postrm</prgn> スクリプトを必要に
応じて実行することになるでしょう。
<ref id="mscriptsinstact"> をごらんください。
</p>
<p>
<!-- ORIG
In the future <prgn>dpkg</prgn> will discard files which
overwrite those from another package which declares that
it replaces the one being installed (so that you can
install an older version of a package without problems).
ORIG -->
将来の <prgn>dpkg</prgn> のバージョンにおいては、
置き換えインストールが発生した時は、最初にシステム中に
あったファイルは削除されるようになる予定です
(これによって、古いバージョンのパッケージを問題なく
上書きインストールできるようになります)。
</p>
<p>
<!-- ORIG
This usage of <tt>Replaces</tt> only takes effect when
both packages are at least partially on the system at
once, so that it can only happen if they do not conflict
or if the conflict has been overridden.</p>
ORIG -->
<tt>Replaces</tt> フィールドがこのような使われるときは、
二つのパッケージが一時的にせよシステム中に同時に
存在するときです。つまり、この場合は、これらのパッケージは
競合関係にないか、または、その競合関係がすでに上書きされて
解消されたていることになります。</p>
</sect1>
<!-- ORIG
<sect1><heading>Replacing whole packages, forcing their
removal
ORIG -->
<sect1><heading>パッケージ全体の削除を伴う置換
</heading>
<p>
<!-- ORIG
Secondly, <tt>Replaces</tt> allows <prgn>dpkg</prgn> and
<prgn>dselect</prgn> to resolve which package should be
removed when there is a conflict - see <ref id="conflicts">. This
usage only takes effect when the two packages <em>do</em>
conflict, so that the two effects do not interfere with
each other.
ORIG -->
もう一つは、<tt>Replaces</tt> がパッケージ間の競合関係を
解決するために、<prgn>dpkg</prgn> および <prgn>dpkg</prgn>
にどのパッケージを削除するのか指示する場合です。
<ref id="conflicts"> をご覧ください。この場合は、二つの
パッケージが<em>競合している</em>ときです。したがって、
前節の場合とこの場合との間にはお互いに干渉することは
ありません。
</p>
</sect1>
</sect>
<!-- ORIG
<sect><heading>Defaults for satisfying dependencies - ordering
ORIG -->
<sect><heading>依存関係満足のデフォルト - 順序
</heading>
<p>
<!-- ORIG
Ordering is significant in dependency fields.
ORIG -->
依存関係を記述するフィールドにおいて、その順序は重要です。
</p>
<p>
<!-- ORIG
Usually dselect will suggest to the user that they select
the package with the most `fundamental' class (eg, it will
prefer Base packages to Optional ones), or the one that they
`most wanted' to select in some sense.
ORIG -->
複数のパッケージが記述されていた場合、ふつうは、dselect が、
ユーザにもっとも基本的クラスのパッケージ (つまり、
ベースパッケージのほうが、オプションよりも優先されます)
や、ある意味で dselect がインストールすることをもっとも望む
パッケージを選択するように提案してきます。
</p>
<p>
<!-- ORIG
In the absence of other information <prgn>dselect</prgn>
will offer a default selection of the first named package in
a list of alternatives.
ORIG -->
その他の情報が欠けていた場合、<prgn>dselect</prgn> は、
代替リストのなかの一番最初のパッケージをデフォルトで
選択します。
</p>
<p>
<!-- ORIG
However, there is no way to specify the `order' of several
packages which all provide the same thing, when that thing
is listed as a dependency.
ORIG -->
けれども、同じ仮想パッケージを提供するいくつかのパッケージが、
依存関係として記述されているとき、それらのパッケージの
インストール順を規定することはできません。
</p>
<p>
<!-- ORIG
Therefore a dependency on a virtual package should contain a
concrete package name as the first alternative, so that this
is the default.
ORIG -->
ですから、仮想パッケージに対して依存関係を記述するときは、
実際のパッケージ名を代替リストの最初におくようにします。
この場合、そのパッケージがデフォルトで選択されるようになります。
</p>
<p>
<!-- ORIG
For example, consider the set of packages:
ORIG -->
例えば、次のような場合を考えます。
<example>
Package: glibcdoc
Recommends: info-browser
Package: info
Provides: info-browser
Package: emacs
Provides: info-browser
</example>
</p>
<p>
<!-- ORIG
If <prgn>emacs</prgn> and <prgn>info</prgn> both have the
same priority then <prgn>dselect</prgn>'s choice is
essentially random. Better would be
ORIG -->
<prgn>emacs</prgn> と <prgn>info</prgn> とが同一の優先順位を
持っていたとしたら、<prgn>dselect</prgn> の選択は、ランダムと
なります。一方、
<example>
Package: glibcdoc
Recommends: info | info-browser
</example>
<!-- ORIG
so that <prgn>dselect</prgn> defaults to selecting the
lightweight standalone info browser.
ORIG -->
このような記述になっていた場合、<prgn>dselect</prgn> は、
軽くて単独で動作する info-browser である info をデフォルトで
選択します。
</p>
</sect>
</chapt>