Provided by: apt_2.4.12_amd64 bug

名前

       apt_preferences - APT 用選択制御ファイル

説明

       APT プリファレンスファイル /etc/apt/preferences と /etc/apt/preferences.d/ フォルダにある
       断片ファイルは、インストールするパッケージのバージョンを制御するのに使用します。

       sources.list(5) ファイルに複数のディストリビューション (stable と testing など) が指定され
       ていて、パッケージに対し複数のバージョンがインストールできることがあります。このとき APT
       は、利用できるバージョンごとに優先度を割り当てます。依存関係規則を条件として、apt-get
       は、最も高い優先度を持つバージョンをインストールするよう選択します。APT プリファレンスファ
       イルは、APT がデフォルトで割り当てた、パッケージのバージョンの優先度を上書きします。その結
       果インストールするものの選択を、ユーザが選択できるようになります。

       sources.list(5) ファイルに複数の参照が書かれている場合、パッケージの同じバージョンのインス
       タンスが複数利用できる可能性があります。この場合、apt-getsources.list(5) ファイルの初
       めの方に指定されているところからダウンロードします。APT プリファレンスファイルはバージョン
       の選択にのみ影響し、インスタンスの選択には影響しません。

       プリファレンスファイルは、システム管理者の強い力ですが、注意して使わないと大きな悪夢にもな
       ります! APT はプリファレンスについて問い合わせることはしません。そのため、設定を誤ったこと
       により、インストールできないパッケージに誘導されたり、パッケージのアップグレード中に誤った
       判断をしたりという事がありえます。以降の段落の内容をよく理解しないで、複数のディストリ
       ビューションリリースを混ぜてしまうと、より多くの問題が発生する事になります。特定のリリース
       に含まれるパッケージは、古い/新しいリリースや、異なるリリースから持ってきた他のパッケージ
       とでは、テストされていません (し、予想通りに常に動作するとは限りません)。以上、警告しまし
       た。

       /etc/apt/preferences.d ディレクトリにあるファイルは、英数字の昇順で解析され、以下の命名規
       約に従う必要があることに注意してください。ファイル名の拡張子はないか、"pref" となってお
       り、英数字、ハイフン (-)、アンダースコア (_)、ピリオド (.) でできています。そうでなけれ
       ば、Dir::Ignore-Files-Silently 設定リストのパターンに一致するもの以外に対して、ファイルを
       無視するという注意を APT が出力します。一致する場合は黙って無視します。

   APT のデフォルト優先度の割り当て
       プリファレンスファイルがなかったり、プリファレンスファイルに特定のパッケージを割り当てるエ
       ントリがない場合、そのバージョンの優先度は、そのバージョンが属しているディストリビューショ
       ンの優先度となります。デフォルトで他のディストリビューションより高い優先度を持つ、特定の
       ディストリビューションを「ターゲットリリース」としておけます。ターゲットリリース
       は、apt-get のコマンドラインや、APT 設定ファイル /etc/apt/apt.conf で設定できます。後述す
       る /etc/apt/preferences ファイルで設定した一般優先度よりもこれは優先されますが、pin 止めし
       たパッケージには及ばないことに注意してください。例えば以下のようになります。

           apt-get install -t testing some-package

           APT::Default-Release "stable";

       ターゲットリリースが指定されると、APT は以下のアルゴリズムで、パッケージのバージョンの優先
       度を設定します。以下のように割り当てます。

       優先度 1
           to the versions coming from archives which in their Release files are marked as
           "NotAutomatic: yes" but not as "ButAutomaticUpgrades: yes" like the Debian
           experimental archive, as well as versions that are not phased on this systems.

       優先度 100
           (もしあれば) 既にインストール済みのバージョンや、squeeze-backports 以降である Debian
           のバックポートアーカイブのような、Release ファイルに "NotAutomatic: yes" かつ
           "ButAutomaticUpgrades: yes" とマークされているアーカイブ由来のバージョン。

       優先度 500
           ターゲットリリースに属していないバージョン。

       優先度 990
           ターゲットリリースに属するバージョン。
       説明がバージョンとマッチし、優先順位が最も高いものがバージョンに割り当てられます。

       ターゲットリリースが指定されていなければ、APT は単純にインストールしているパッケージのバー
       ジョンには優先度 100 を、インストールしていないパッケージのバージョンには優先度 500 を割り
       当てます。ただし、Release ファイルに "NotAutomatic: yes" とマークされたアーカイブ由来の
       バージョンは違います。こういったバージョンでは優先度 1 を割り当て、さらに
       "ButAutomaticUpgrades: yes" とマークされている場合には、優先度 100 を割り当てます。

       APT は、インストールするパッケージのバージョンを決定するために、以下のルールを上から順番に
       適用します。

       •   有効なバージョンの優先度が 1000 を越えない場合、決してダウングレードしません。(「ダウ
           ングレード」は、現在のパッケージのバージョンよりも、小さいバージョンのものをインストー
           ルします。APT のデフォルト優先度が 1000 を越えないことに注意してください。そのような優
           先度は、プリファレンスファイルでのみ設定できます。また、パッケージのダウングレードは危
           険であることにも注意してください)

       •   最も高い優先度のバージョンをインストールします。

       •   同じ優先度のバージョンが複数存在する場合、最も新しいもの (最もバージョン番号が高いも
           の) をインストールします。

       •   優先度・バージョン番号が同じものが複数存在し、そのパッケージのメタデータが異なるか
           --reinstall オプションが与えられている場合、インストールされていないものをインストール
           します。

       よくある状況として、あるインストールされているパッケージのバージョン (優先度 100)
       が、sources.list(5) ファイルのリストから得られるバージョン (優先度 500 か 990) よりも新し
       くないということがあります。この場合、apt-get install some-packageapt-get upgrade を実
       行するとパッケージが更新されます。

       まれに、インストールされているパッケージのバージョンが、他の有効なバージョンよりも新しい場
       合があります。この時 apt-get install some-packageapt-get upgrade を実行しても、ダウン
       グレードしません。

       時々、インストールしているパッケージのバージョンが、ターゲットリリースに属するバージョンよ
       りも新しく、他のディストリビューションよりも古い場合があります。そのようなパッケージに対し
       て apt-get install some-packageapt-get upgrade を実行すると、パッケージは更新されま
       す。この場合、インストールされているバージョンよりも、少なくともひとつは、高い優先度を持つ
       有効なパッケージがあるからです。

   Phased Updates
       APT understands a field called Phased-Update-Percentage which can be used to control the
       rollout of a new version. It is an integer between 0 and 100.

       A system's eligibility to a phased update is determined by seeding random number generator
       with the package source name, the version number, and /etc/machine-id, and then
       calculating an integer in the range [0, 100]. If this integer is larger than the
       Phased-Update-Percentage, the version is pinned to 1, and thus held back. Otherwise,
       normal policy rules apply.

       In case you have multiple systems that you want to receive the same set of updates, you
       can set APT::Machine-ID to a UUID such that they all phase the same, or set
       APT::Get::Never-Include-Phased-Updates or APT::Get::Always-Include-Phased-Updates to true
       such that APT will never/always consider phased updates.

   APT プリファレンスファイルの効果
       APT プリファレンスファイルを使うと、システム管理者が優先度を割り当てられるようになりま
       す。ファイルは、空白行で区切られた、複数行からなるレコードで構成されています。レコードは特
       定形式か、汎用形式のどちらかの形式をとります。

       •   特定形式は、優先度 ("Pin-Priority") を、指定したバージョンやバージョン範囲の、指定した
           パッケージについて割り当てます。例えば以下のレコードは、バージョン番号が "5.20" で始ま
           る perl パッケージを、高い優先度に設定します。空白で区切り、複数のパッケージを指定でき
           ます。

               Package: perl
               Pin: version 5.20*
               Pin-Priority: 1001

       •   汎用形式は、与えられたディストリビューションにある、すべてのパッケージ (Release ファイ
           ルに列挙したパッケージ) の優先度や、FQDNで指定した、特定のインターネットサイトから取得
           するパッケージの優先度を割り当てます。

           APT プリファレンスファイルに書かれている汎用形式のエントリは、パッケージのグループにつ
           いてのみ適用されます。例えば以下のレコードは、ローカルサイトにある全パッケージについ
           て、高い優先度を割り当てます。

               Package: *
               Pin: origin ""
               Pin-Priority: 999

           注意: ここで使われるキーワードは、ホスト名にマッチするのに使われる "origin" です。以下
           のレコードは、ホスト名が "ftp.de.debian.org" で識別されるサーバ由来のすべてのバージョ
           ンに、高い優先度を割り当てます。

               Package: *
               Pin: origin "ftp.de.debian.org"
               Pin-Priority: 999

           Release ファイルに指定されたような、ディストリビューションの Origin と 混同しないよう
           にしてください。Release ファイルにある "Origin:" タグは、インターネットアドレスではな
           く、"Debian" や "Ximian" といった作者やベンダ名です。

           以下のレコードは、アーカイブ名が "unstable" となっているディストリビューションに属する
           パッケージを、すべて低い優先度に割り当てます。

               Package: *
               Pin: release a=unstable
               Pin-Priority: 50

           以下のレコードは、コード名が "bookworm" となっているディストリビューションに属するパッ
           ケージのバージョンを、高い優先度に割り当てます。

               Package: *
               Pin: release n=bookworm
               Pin-Priority: 900

           以下のレコードは、アーカイブ名が "stable" で、リリースバージョン番号が "11" となってい
           るリリースに属するパッケージを、すべて高い優先度に割り当てます。

               Package: *
               Pin: release a=stable, v=11
               Pin-Priority: 500

       コンマ演算子の効果は "and" 論理に似ています: ピンが一致するようにすべての条件がピンが一致
       しなければなりません。一つの例外があります: 条件のいずれかの型では (例えば、二つの "a" 条
       件)、ただ最後の条件のみがチェックされます。

   Matching packages in the Package field
       The Package field specifies the package that a pinning priority is applied to. The field
       can either contain a binary package name, a source package name (prefixed with "src:"), a
       glob(7) expression or a regular expression (surrounded by slashes). Multiple package
       names, glob(7) expressions and regular expressions can be listed separated by whitespace
       in which case the record will match any of the matched packages.

       By default, only packages of the native architecture are matched. To match binary packages
       of any architecture, add the :any suffix to the package name. You can also limit matching
       to a specific architecture by appending the architecture name to the package name,
       separated by a colon character.

       For example, the following example uses a glob expression and a regular expression to
       assign the priority 500 to all packages from experimental where the name starts with gnome
       (as a glob(7)-like expression) or contains the word kde (as a POSIX extended regular
       expression surrounded by slashes).

           Package: gnome* /kde/
           Pin: release a=experimental
           Pin-Priority: 500

       この表現の規則は、文字が現れうる場所なら、どこでも発生しうるという事です。したがって、以下
       の pin は、hirsute で始まるリリース由来の、すべてのパッケージに、優先度 990 を割り当てま
       す。

           Package: *
           Pin: release n=hirsute*
           Pin-Priority: 990

       Package フィールドも正規表現が現れる場合、正規表現を、マッチするすべてのパッケージ名のリス
       トに置き換えたものとして、動作します。これは将来変更されるかどうか、まだ決定していませ
       ん。そのため、まずはじめにワイルドカード pin を、常に記述するようにしてください。その後に
       続く pin で上書きされます。Package フィールドの "*" パターンは、glob(7) 表現自体とは見なさ
       れません。

       To pin all binaries produced by the apt source package of this APT's version to 990, you
       can do:

           Package: src:apt
           Pin: version 2.4.12
           Pin-Priority: 990

       Source package pinning can be combined with regular expressions and glob patterns, and can
       also take a binary architecture.

       For example, let's pin all binaries for all architectures produced by any source package
       containing apt in its name to 990:

           Package: src:*apt*:any
           Pin: version *
           Pin-Priority: 990

       The :any suffix makes sure to select binary packages from any architecture. Without that
       suffix, apt implicitly assumes the :native suffix which would only select packages from
       the native architecture.

   APT が優先度に割り込む方法
       APT プリファレンスファイルで割り当てた優先度 (P) は、正負の整数でなくてはなりません。これ
       は (おおざっぱにいうと) 以下のように解釈されます。

       P >= 1000
           パッケージがダウングレードしても、このバージョンのパッケージをインストール

       990 <= P < 1000
           インストールされているバージョンの方が新しいのでなければ、ターゲットリリースに含まれな
           くても、このバージョンのパッケージをインストール

       500 <= P < 990
           ターゲットリリースに属するバージョンがあったり、インストールされているバージョンの方が
           新しいのでなければ、このバージョンのパッケージをインストール

       100 <= P < 500
           他のディストリビューションに属するバージョンがあったり、インストールされているバージョ
           ンの方が新しいのでなければ、このバージョンのパッケージをインストール

       0 < P < 100
           このパッケージがインストールされていない場合、このバージョンのパッケージをインストール

       P < 0
           このバージョンのインストール禁止

       P = 0
           は動作が未定義です、使用しないでください。

       利用可能なパッケージバージョンに一致する最初の特定形式のレコードが、パッケージバージョンの
       優先度を決定します。それに失敗すると、パッケージバージョンの優先度は、バージョンに一致する
       汎用形式のレコードで定義されたすべての優先度の最大値として定義されます。

       例えば、APT プリファレンスファイルの上の方に、以下のレコードが書かれていると仮定してくださ
       い。

           Package: perl
           Pin: version 5.20*
           Pin-Priority: 1001

           Package: *
           Pin: origin ""
           Pin-Priority: 999

           Package: *
           Pin: release unstable
           Pin-Priority: 50

       すると、以下のように動作します。

       •   バージョン番号が "5.20" で始まっていれば、perl の最新の利用可能パッケージがインストー
           ルされます。バージョン 5.20* が利用可能で、バージョン 5.24* がインストールされている場
           合、perl はダウングレードされます。

       •   ローカルシステムで有効な、perl 以外のどんなパッケージでも、他のバージョンより (たとえ
           ターゲットリリースに属していても) 優先度が高くなります。

       •   ローカルシステムにはなくても sources.list(5) に列挙されたサイトにあるバージョン
           で、unstable ディストリビューションに属しているパッケージは、インストールするよう選択
           され、既にインストールされているバージョンがない場合にのみインストールされます。

   パッケージのバージョンとディストリビューションプロパティの決定
       sources.list(5) ファイルに列挙した場所では、その場所で利用できるパッケージを記述し
       た、Packages ファイルや Release ファイルを提供します。

       Packages ファイルは通常 .../dists/dist-name/component/arch ディレクトリにあります。例え
       ば、.../dists/stable/main/binary-i386/Packages です。これは、ディレクトリにある利用可能
       パッケージごとに、複数行のレコードからできています。APT 優先度の設定は、レコードごとに以下
       の 2 行だけです。

       Package: 行
           パッケージ名

       Version: 行
           その名前のパッケージのバージョン番号

       Release ファイルは、通常 .../dists/dist-name ディレクトリにあります。例え
       ば、.../dists/stable/Release や .../dists/bullseye/Release です。これは、このディレクトリ
       以下にあるパッケージに適用する、複数行のレコード 1 つから成っています。Packages ファイル
       と違い Release ファイルは、以下のようにほとんどの行が APT 優先度の設定に関連します。

       Archive: 行や Suite: 行
           このディレクトリツリーに属する全パッケージのアーカイブ名です。例えば、"Archive:
           stable" や "Suite: stable" という行は、Release ファイルの親ディレクトリツリー以下にあ
           る全パッケージが、stable アーカイブだと指定します。APT プリファレンスファイルでこの値
           を指定するには、以下の行が必要になります。

               Pin: release a=stable

       Codename: 行
           このディレクトリツリーに属する全パッケージのコード名です。たとえば、"Codename:
           bookworm" という行は、Release ファイルの親ディレクトリツリー以下にある全パッケージ
           が、bookworm と名前のついたバージョンであると指定します。APT プリファレンスファイルで
           この値を指定するには、以下の行が必要になります。

               Pin: release n=bookworm

       Version: 行
           リリースバージョン名です。例えば、このツリーのパッケージが、Debian リリースバージョン
           11 に属するとします。通常 testing ディストリビューションや unstable ディストリビュー
           ションには、まだリリースされていないので、バージョン番号が付きません。APT プリファレン
           スファイルでこれを指定するには、以下の行のいずれかが必要になります。

               Pin: release v=11
               Pin: release a=stable, v=11
               Pin: release 11

       Component: 行
           Release ファイルの、ディレクトリツリーにあるパッケージのライセンスコンポーネント名で
           す。例えば、"Component: main" という行は、このディレクトリ以下の全ファイルが、main コ
           ンポーネント (Debian フリーソフトウェアガイドラインの元でライセンスされている) である
           ことを表します。APT プリファレンスファイルでこのコンポーネントを指定するには、以下の行
           が必要になります。

               Pin: release c=main

       Origin: 行
           Release ファイルのディレクトリツリーにあるパッケージの提供者名です。ほとんど共通で
           Debian です。APT プリファレンスファイルでこの提供者を指定するには、以下の行が必要にな
           ります。

               Pin: release o=Debian

       Label: 行
           Release ファイルのディレクトリツリーにあるパッケージのラベル名です。ほとんど共通で
           Debian です。APT プリファレンスファイルでこのラベルを指定するには、以下の行が必要にな
           ります。

               Pin: release l=Debian

       sources.list(5) ファイルに列挙された場所から取得した Packages ファイルや Release ファイル
       はすべて、/var/lib/apt/lists ディレクトリや、apt.conf ファイルの Dir::State::Lists 変数で
       指定した場所に取得されます。例え
       ば、debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release ファイル
       は、debian.lcs.mit.edu から取得した、unstable ディストリビューションで、contrib コンポーネ
       ントな、binary-i386 アーキテクチャ用の Release ファイルを含んでいます。

   APT プリファレンスレコードのオプション行
       APT プリファレンスファイルのレコードごとに、任意で Explanation: で始まる行を持てます。これ
       は、コメント用の場所を確保します。

サンプル

   安定版の追跡
       以下の APT プリファレンスファイルは、stable ディストリビューションに属する全てのパッケージ
       のバージョンに、デフォルト (500) より高い優先度を割り当て、他の Debian ディストリビュー
       ションのパッケージのバージョンには、低くてインストールできないような優先度を割り当てます。

           Explanation: Uninstall or do not install any Debian-originated
           Explanation: package versions other than those in the stable distro
           Package: *
           Pin: release a=stable
           Pin-Priority: 900

           Package: *
           Pin: release o=Debian
           Pin-Priority: -10

       適切な sources.list(5) ファイルと上記のプリファレンスファイルにより、以下のコマンドのいず
       れかで最新の stable バージョンにアップグレードできます。

           apt-get install package-name
           apt-get upgrade
           apt-get dist-upgrade

       以下のコマンドで、指定したパッケージを testing ディストリビューションの最新バージョンに
       アップグレードします。このパッケージは、再度このコマンドを発行しないとアップグレードされま
       せん。

           apt-get install package/testing

   テスト版や不安定版の追跡
       以下の APT プリファレンスファイルは、testing ディストリビューションのパッケージのバージョ
       ンに高い優先度を割り当て、unstable ディストリビューションのパッケージのバージョンには低い
       優先度を割り当てます。また他の Debian ディストリビューションのパッケージのバージョンに
       は、低くてインストールできないような優先度を割り当てます。

           Package: *
           Pin: release a=testing
           Pin-Priority: 900

           Package: *
           Pin: release a=unstable
           Pin-Priority: 800

           Package: *
           Pin: release o=Debian
           Pin-Priority: -10

       適切な sources.list(5) ファイルと上記のプリファレンスファイルにより、以下のコマンドのいず
       れかで最新の testing バージョンにアップグレードできます。

           apt-get install package-name
           apt-get upgrade
           apt-get dist-upgrade

       以下のコマンドで、指定したパッケージを unstable ディストリビューションの最新バージョンに
       アップグレードします。それ以降、apt-get upgrade は testing バージョンのパッケージが更新さ
       れていれば testing の最新版に、unstable バージョンのパッケージが更新されていれば unstable
       の最新版にアップグレードします。

           apt-get install package/unstable

   コード名リリースの進化の追跡
       以下の APT プリファレンスファイルは、指定したコード名のディストリビューションに属する全て
       のパッケージのバージョンに、デフォルト (500) より高い優先度を割り当て、他の Debian ディス
       トリビューション、コード名、アーカイブのパッケージのバージョンには、低くてインストールでき
       ないような優先度を割り当てます。この APT プリファレンスファイルにより、APT は testing アー
       カイブから、stable や最新の oldstable へ移行できます。コード名の変更に関係なく testing を
       追跡したい場合は、上記の設定例を使用するべきです。

           Explanation: Uninstall or do not install any Debian-originated package versions
           Explanation: other than those in the distribution codenamed with bookworm or sid
           Package: *
           Pin: release n=bookworm
           Pin-Priority: 900

           Explanation: Debian unstable is always codenamed with sid
           Package: *
           Pin: release n=sid
           Pin-Priority: 800

           Package: *
           Pin: release o=Debian
           Pin-Priority: -10

       適切な sources.list(5) ファイルと上記のプリファレンスファイルにより、以下のコマンドのいず
       れかで、リリースコード名が bookworm である最新バージョンにアップグレードできます。

           apt-get install package-name
           apt-get upgrade
           apt-get dist-upgrade

       以下のコマンドで、指定したパッケージを sid ディストリビューションの最新バージョンにアップ
       グレードします。それ以降、apt-get upgrade は bookworm バージョンのパッケージが更新されてい
       れば bookworm の最新版に、sid バージョンのパッケージが更新されていれば sidの最新版にアップ
       グレードします。

           apt-get install package/sid

ファイル

       /etc/apt/preferences
           バージョンプリファレンスファイル。 ここに "pin"の設定を行います。 つまり、別々の取得元
           や異なるディストリビューションのバージョンの、 どこからパッケージを取得するかを設定し
           ます。 設定項目: Dir::Etc::Preferences

       /etc/apt/preferences.d/
           バージョンプリファレンスファイル断片。 設定項目: Dir::Etc::PreferencesParts

関連項目

       apt-get(8) apt-cache(8) apt.conf(5) sources.list(5)

バグ

       APT バグページ[1] をご覧ください。 APT のバグを報告する場合は、
       /usr/share/doc/debian/bug-reporting.txt や reportbug(1) コマンドをご覧ください。

翻訳

       倉澤 望 <nabetaro@debian.or.jp> (2003-2006,2009-2012), Takuma Yamada
       <tyamada@takumayamada.com> (2016), Debian JP Documentation ML <debian-doc@debian.or.jp>

       この翻訳文書には未訳部分が含まれている可能性があることに 注意してください。 翻訳がオリジナ
       ルに追従できていない場合、 内容を失わないようにこのようにしています。

著者

       [FAMILY Given]

注記

        1. APT バグページ
           http://bugs.debian.org/src:apt