Provided by: apt_2.0.10_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
           Debian の experimental アーカイブのように、Release ファイルに "NotAutomatic: yes" と
           マークされ、"ButAutomaticUpgrades: yes" とマークされていないアーカイブ由来のバージョ
           ン。

       優先度 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 を実行すると、パッケージは更新されま
       す。この場合、インストールされているバージョンよりも、少なくともひとつは、高い優先度を持つ
       有効なパッケージがあるからです。

   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

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

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

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

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

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

   正規表現と glob(7) 構文
       APT は glob(7) 表現と、スラッシュで囲んだ正規表現による pin もサポートしています。例えば以
       下の例は、gnome で始まる (glob(7) 風表現) か kde を含む (スラッシュで囲んだ POSIX の拡張正
       規表現) 名前の、experimental 由来のすべてのパッケージに、優先度500を割り当てます。

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

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

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

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

   Pinning by source package
       APT supports pinning by source packages. To pin by a source package, prepend "src:" to the
       package name.

       For example, 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.0.10
           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

   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/buster/Release です。これは、このディレクトリ以
       下にあるパッケージに適用する、複数行のレコード 1 つから成っています。Packages ファイルと
       違い Release ファイルは、以下のようにほとんどの行が APT 優先度の設定に関連します。

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

               Pin: release a=stable

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

               Pin: release n=bullseye

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

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

       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 bullseye or sid
           Package: *
           Pin: release n=bullseye
           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) ファイルと上記のプリファレンスファイルにより、以下のコマンドのいず
       れかで、リリースコード名が bullseye である最新バージョンにアップグレードできます。

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

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