web-dev-qa-db-ja.com

apt-getは代替依存関係のリストからどのように選択しますか?

Deb制御ファイルのDepends:セクションで、パッケージは|シンボルで区切られた代替依存関係を指定して、単一の依存関係を満たすことができることを理解しています。

私の質問は、apt-getは、代替が存在するときに、どのものをインストールするかをどのように決定するのですか?

apt_preferencesに似たものを使用して、この選択を手動で変更する方法はありますか?

たとえば、パッケージがJavaに依存しており、Dependsセクションにopenjdk-6-jre | Sun-Java6-jreがある場合、apt-getにopenjdk-6-jreを強制的にインストールする方法どちらのパッケージもインストールされていませんか?

4
mrantims

Debian Policy Manual、Chapter 7-パッケージ間の関係の宣言 で読むことができます

パッケージのDepends、Recommends、Suggests、Pre-Depends、Build-Depends、Build-Depends-Indepコントロールフィールドでは、他のパッケージへの依存関係を宣言します。リストされたパッケージ名には、垂直で区切られた代替パッケージ名のリストも含まれますバー(パイプ)シンボル|。このような場合、代替パッケージのいずれかがインストールされていれば、依存関係のその部分は満たされていると見なされます。

ドキュメント全体で選択肢のリストに関するその他の有用な情報を見つけることができないため、リスト内のパッケージが1つもない場合既にインストールされている場合は、リストの最初のものが選択されます。しかし、これは私の解釈にすぎないことに注意してください。

1
enzotib