.\" Title: apt_preferences
.\" Author: APT team
.\" Generator: DocBook XSL Stylesheets v1.71.0
.\" Date: 29 February 2004
.\" Manual:
.\" Source: Linux
.\"
.TH "APT_PREFERENCES" "5" "29 February 2004" "Linux" ""
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.SH "NAME"
apt_preferences \- APT 設定制御ファイル
.SH "説明"
.PP
APT 設定ファイル
\fI/etc/apt/preferences\fR
は、 インストールするパッケージのバージョン選択を制御するのに使用します。
.PP
\fBsources.list\fR(5)
ファイルに複数のディストリビューション (stable
と
testing
など) が指定されていて、 パッケージに対し複数のバージョンがインストールできることがあります。 このとき APT は、利用できるバージョンごとに優先度を割り当てます。 依存関係規則を条件として、\fBapt\-get\fR
は、 最も高い優先度を持つバージョンをインストールするよう選択します。 APT 設定ファイルは、APT がデフォルトで割り当てた、 パッケージのバージョンの優先度を上書きします。 その結果、インストールするものの選択を、ユーザが選択できるようになります。
.PP
\fBsources.list\fR(5)
ファイルに複数の参照が書かれている場合、 パッケージの同じバージョンのインスタンスが複数利用できる可能性があります。 この場合、\fBapt\-get\fR
は
\fBsources.list\fR(5)
ファイルの初めの方に指定されているところからダウンロードします。 APT 設定ファイルは、バージョンの選択にのみ影響し、 インスタンスの選択には影響しません。
.SS "APT のデフォルト優先度の割り当て"
.PP
設定ファイルがなかったり、 設定ファイルに、特定のパッケージを割り当てるエントリがない場合、 そのバージョンの優先度は、 そのバージョンが属しているディストリビューションの優先度となります。 デフォルトで他のディストリビューションより高い優先度を持つ、 特定のディストリビューションを「ターゲットリリース」としておくのは可能です。 ターゲットリリースは、\fBapt\-get\fR
のコマンドラインで設定したり、 APT 設定ファイル
\fI/etc/apt/apt.conf\fR
で設定したりできます。 例えば以下のようになります。
.sp
.RS 3n
.nf
\fBapt\-get install \-t testing \fR\fB\fIsome\-package\fR\fR
.fi
.RE
.sp
.sp
.RS 3n
.nf
APT::Default\-Release "stable";
.fi
.RE
.sp
.PP
ターゲットリリースが指定されると、APT は以下のアルゴリズムで、 パッケージのバージョンの優先度を設定します。このように割り当てます。
.PP
優先度 100
.RS 3n
(あるならば) 既にインストールされているバージョン。
.RE
.PP
優先度 500
.RS 3n
インストールされておらず、ターゲットリリースに含まれないバージョン。
.RE
.PP
優先度 990
.RS 3n
インストールされておらず、ターゲットリリースに含まれるバージョン。
.RE
.PP
ターゲットリリースが指定されていなければ、 APT は単純にインストールしているパッケージのバージョンには 100 を、 インストールしていないパッケージのバージョンには 500 を割り当てます。
.PP
APT は、インストールするパッケージのバージョンを決定するために、 以下のルールを上から順番に適用します。
.TP 3n
\(bu
有効なバージョンの優先度が 1000 を越えない場合、 決してダウングレードしません。 (「ダウングレード」は、現在のパッケージのバージョンよりも、 小さいバージョンのものをインストールします。 APT のデフォルト優先度が 1000 を越えないことに注意してください。 そのような優先度は設定ファイルでのみ設定できます。 また、パッケージのダウングレードは危険であることにも注意してください)
.TP 3n
\(bu
最も高い優先度のバージョンをインストールします。
.TP 3n
\(bu
同じ優先度のバージョンが複数存在する場合、 最も新しいもの (最もバージョン番号が高いもの) をインストールします。
.TP 3n
\(bu
優先度・バージョン番号が同じものが複数存在し、 そのパッケージのメタデータが異なるか
\-\-reinstall
オプションが与えられている場合、 インストールされていないものをインストールします。
.sp
.RE
.PP
よくある状況として、 あるインストールされているパッケージのバージョン (優先度 100) が、
\fBsources.list\fR(5)
ファイルのリストから得られるバージョン (優先度 500 か 990) よりも新しくないということがあります。この場合、
\fBapt\-get install \fR\fB\fIsome\-package\fR\fR
や
\fBapt\-get upgrade\fR
を実行するとパッケージが更新されます。
.PP
まれに、インストールされているパッケージのバージョンが、
\fI他の有効なバージョンよりも\fR新しい場合があります。 この時
\fBapt\-get install \fR\fB\fIsome\-package\fR\fR
や
\fBapt\-get upgrade\fR
を実行しても、 ダウングレードしません。
.PP
時々、インストールしているパッケージのバージョンが、 ターゲットリリースに属するバージョンよりも新しく、 他のディストリビューションよりも古い場合があります。 そのようなパッケージに対して
\fBapt\-get install \fR\fB\fIsome\-package\fR\fR
や
\fBapt\-get upgrade\fR
を実行すると、 パッケージは更新されます。 この場合、インストールされているバージョンよりも、 少なくとも\fIひとつ\fRは、 高い優先度を持つ有効なパッケージがあるからです。
.SS "APT 設定の効果"
.PP
APT 設定ファイルを使うと、 システム管理者が優先度を割り当てられるようになります。 ファイルは、空白行で区切られた、複数行からなるレコードで構成されています。 レコードは特定形式か、汎用形式のどちらかの形式をとります。
.TP 3n
\(bu
特定形式は、優先度 ("Pin\-Priority") を、 指定したパッケージの指定したバージョン (範囲) について割り当てます。 例えば以下のレコードは、 "5.8" で始まる
\fIperl\fR
パッケージを、 高い優先度に設定します。
.sp
.RS 3n
.nf
Package: perl
Pin: version 5.8*
Pin\-Priority: 1001
.fi
.RE
.TP 3n
\(bu
汎用形式は、与えられたディストリビューションにある、 すべてのパッケージ (\fIRelease\fR
ファイルに列挙したパッケージ) の優先度や、FQDNで指定した、 特定のインターネットサイトから取得するパッケージの優先度を割り当てます。
.sp
APT 設定ファイルに書かれている汎用形式のエントリは、 パッケージのグループについてのみ適用されます。 例えば以下のレコードは、ローカルサイトにある全パッケージについて、 高い優先度を割り当てます。
.sp
.RS 3n
.nf
Package: *
Pin: origin ""
Pin\-Priority: 999
.fi
.RE
.sp
注: ここで使用しているキーワードは "origin" です。
\fIRelease\fR
ファイルに指定されたような、 ディストリビューションの Origin と混同しないようにしてください。
\fIRelease\fR
ファイルにある "Origin:" タグは、 インターネットアドレスではなく、 "Debian" や "Ximian" といった作者やベンダ名です。
.sp
以下のレコードは、アーカイブ名が "unstable" となっているディストリビューションに属するパッケージを、 すべて低い優先度に割り当てます。
.sp
.RS 3n
.nf
Package: *
Pin: release a=unstable
Pin\-Priority: 50
.fi
.RE
.sp
以下のレコードは、アーカイブ名が "stable" で、 リリースバージョン番号が "3.0" となっているリリースに属するパッケージを、 すべて高い優先度に割り当てます。
.sp
.RS 3n
.nf
Package: *
Pin: release a=stable, v=3.0
Pin\-Priority: 500
.fi
.RE
.sp
.RE
.SS "APT が優先度に割り込む方法"
.PP
APT 設定ファイルで割り当てた優先度 (P) は、正負の整数でなくてはなりません。 これは (おおざっぱにいうと) 以下のように解釈されます。
.PP
P > 1000
.RS 3n
パッケージがダウングレードしても、このバージョンのパッケージをインストールします。
.RE
.PP
990 < P <=1000
.RS 3n
インストールされているバージョンの方が新しいことを除き、 ターゲットリリースに含まれなくても、 このバージョンのパッケージをインストールします。
.RE
.PP
500 < P <=990
.RS 3n
ターゲットリリースに属するバージョンがあったり、 インストールされているバージョンの方が新しいのでなければ、 このバージョンのパッケージをインストールします。
.RE
.PP
100 < P <=500
.RS 3n
他のディストリビューションに属するバージョンがあったり、 インストールされているバージョンの方が新しいのでなければ、 このバージョンのパッケージをインストールします。
.RE
.PP
0 < P <=100
.RS 3n
このパッケージがインストールされていない場合、 このバージョンのパッケージをインストールします。
.RE
.PP
P < 0
.RS 3n
このバージョンがインストールされないようにします。
.RE
.PP
特定形式のレコードが利用可能パッケージバージョンに一致した場合、 最初のレコードが、パッケージバージョンの優先度を決定します。 失敗して、汎用形式のレコードが利用可能パッケージバージョンに一致した場合、 最初のレコードが、パッケージバージョンの優先度を決定します。
.PP
例えば、APT 設定ファイルの上の方に、 以下のレコードが書かれていると仮定してください。
.sp
.RS 3n
.nf
Package: perl
Pin: version 5.8*
Pin\-Priority: 1001
Package: *
Pin: origin ""
Pin\-Priority: 999
Package: *
Pin: release unstable
Pin\-Priority: 50
.fi
.RE
.sp
.PP
すると、
.TP 3n
\(bu
バージョン番号が "5.8" で始まっていれば、
perl
の最新の利用可能パッケージがインストールされます。 バージョン 5.8* が利用可能で、バージョン 5.9* がインストールされている場合、
perl
はダウングレードされます。
.TP 3n
\(bu
ローカルシステムで有効な、
perl
以外のどんなパッケージでも、 他のバージョンより (たとえターゲットリリースに属していても) 優先度が高くなります。
.TP 3n
\(bu
ローカルシステムにはなくても
\fBsources.list\fR(5)
に列挙されたサイトにあるバージョンで、
unstable
ディストリビューションに属しているパッケージは、 インストールするよう選択され、 既にインストールされているバージョンがない場合にのみインストールされます。
.sp
.RE
.SS "パッケージのバージョンとディストリビューションプロパティの決定"
.PP
\fBsources.list\fR(5)
ファイルに列挙した場所では、 その場所で利用できるパッケージを記述した、
\fIPackages\fR
ファイルや
\fIRelease\fR
ファイルを提供します。
.PP
\fIPackages\fR
ファイルは通常
\fI.../dists/\fR\fI\fIdist\-name\fR\fR\fI/\fR\fI\fIcomponent\fR\fR\fI/\fR\fI\fIarch\fR\fR
ディレクトリにあります。 例えば、\fI.../dists/stable/main/binary\-i386/Packages\fR
です。 これは、ディレクトリにある利用可能パッケージごとに、 複数行のレコードからできています。 APT 優先度の設定は、レコードごとに以下の 2 行だけです。
.PP
Package: 行
.RS 3n
パッケージ名を与えます。
.RE
.PP
Version: 行
.RS 3n
その名前のパッケージのバージョン番号を与えます。
.RE
.PP
\fIRelease\fR
ファイルは、通常
\fI.../dists/\fR\fI\fIdist\-name\fR\fR
にあります。例えば、
\fI.../dists/stable/Release\fR,
\fI.../dists/woody/Release\fR
です。 これは、このディレクトリ以下にある\fI全\fRパッケージに適用する、 複数行のレコード 1 つから成っています。
\fIPackages\fR
と違い
\fIRelease\fR
ファイルは、 ほとんどの行が APT 優先度の設定に関連します。
.PP
Archive: 行
.RS 3n
このディレクトリツリーに属する全パッケージのアーカイブ名。 例えば、 "Archive: stable" という行は、\fIRelease\fR
ファイルの親ディレクトリツリー以下にある全パッケージが、
stable
アーカイブだと指定します。 APT 設定ファイルでこの値を指定するには、以下の行が必要になります。
.sp
.RS 3n
.nf
Pin: release a=stable
.fi
.RE
.RE
.PP
Version: 行
.RS 3n
リリースバージョン名。 例えば、このツリーのパッケージが、 GNU/Linux リリースバージョン 3.0 に属するとします。 通常
testing
ディストリビューションや
unstable
ディストリビューションには、 まだリリースされていないので、バージョン番号が付きません。 APT 設定ファイルでこれを指定するには、以下の行のいずれかが必要になります。
.sp
.RS 3n
.nf
Pin: release v=3.0
Pin: release a=stable, v=3.0
Pin: release 3.0
.fi
.RE
.RE
.PP
Component: 行
.RS 3n
\fIRelease\fR
ファイルの、 ディレクトリツリーにあるパッケージのライセンスコンポーネント名。 例えば、"Component: main" という行は、このディレクトリ以下の全ファイルが、
main
コンポーネント (Debian フリーソフトウェアガイドラインの元でライセンスされている) であることを表します。 APT 設定ファイルでこのコンポーネントを指定するには、以下の行が必要になります。
.sp
.RS 3n
.nf
Pin: release c=main
.fi
.RE
.RE
.PP
Origin: 行
.RS 3n
\fIRelease\fR
ファイルのディレクトリツリーにあるパッケージの提供者名。 ほとんど共通で、Debian
です。 APT 設定ファイルでこの提供者を指定するには、以下の行が必要になります。
.sp
.RS 3n
.nf
Pin: release o=Debian
.fi
.RE
.RE
.PP
Label: 行
.RS 3n
\fIRelease\fR
ファイルのディレクトリツリーにあるパッケージのラベル名。 ほとんど共通で
Debian
です。 APT 設定ファイルでこのラベルを指定するには、以下の行が必要になります。
.sp
.RS 3n
.nf
Pin: release l=Debian
.fi
.RE
.RE
.PP
\fBsources.list\fR(5)
ファイルに列挙された場所から取得した
\fIPackages\fR
ファイルや
\fIRelease\fR
ファイルはすべて、
\fI/var/lib/apt/lists\fR
ディレクトリや、
\fIapt.conf\fR
ファイルの
Dir::State::Lists
変数で指定した場所に取得されます。例えば、
\fIdebian.lcs.mit.edu_debian_dists_unstable_contrib_binary\-i386_Release\fR
ファイルは、
debian.lcs.mit.edu
から取得した、
unstable
ディストリビューションで、
contrib
コンポーネントな、
binary\-i386
アーキテクチャ用の
\fIRelease\fR
ファイルを含んでいます。
.SS "APT 設定レコードのオプション行"
.PP
APT 設定ファイルのレコードごとに、 任意で
Explanation:
で始まる行を持てます。 これは、コメント用の場所を確保します。
.PP
APT 設定レコードの
Pin\-Priority:
行は任意です。 省略すると、Pin\-Priority: release ...
で始まる行で指示した最後の値 (少なくとも1つ) を優先度に割り当てます。
.SH "サンプル"
.SS "安定版を追跡"
.PP
以下の APT 設定ファイルは、stable
ディストリビューションに属する全てのパッケージのバージョンに、 デフォルト (500) より高い優先度を割り当て、 他の
Debian
ディストリビューションのパッケージのバージョンには、 低くてインストールできないような優先度を割り当てます。
.sp
.RS 3n
.nf
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
.fi
.RE
.sp
.PP
適切な
\fBsources.list\fR(5)
ファイルと上記の設定ファイルにより、 以下のコマンドで最新の
stable
バージョンにアップグレードできます。
.sp
.RS 3n
.nf
apt\-get install \fIpackage\-name\fR
apt\-get upgrade
apt\-get dist\-upgrade
.fi
.RE
.sp
.PP
以下のコマンドで、指定したパッケージを
testing
ディストリビューションの最新バージョンにアップグレードします。 このパッケージは、再度このコマンドを発行しないとアップグレードされません。
.sp
.RS 3n
.nf
apt\-get install \fIpackage\fR/testing
.fi
.RE
.sp
.SS "テスト版や不安定版を追跡"
.PP
以下の APT 設定ファイルは、testing
ディストリビューションのパッケージのバージョンに高い優先度を割り当て、
unstable
ディストリビューションのパッケージのバージョンには低い優先度を割り当てます。 また他の
Debian
ディストリビューションのパッケージのバージョンには、 低くてインストールできないような優先度を割り当てます。
.sp
.RS 3n
.nf
Package: *
Pin: release a=testing
Pin\-Priority: 900
Package: *
Pin: release a=unstable
Pin\-Priority: 800
Package: *
Pin: release o=Debian
Pin\-Priority: \-10
.fi
.RE
.sp
.PP
適切な
\fBsources.list\fR(5)
ファイルと上記の設定ファイルにより、 以下のコマンドで最新の
testing
バージョンにアップグレードできます。
.sp
.RS 3n
.nf
apt\-get install \fIpackage\-name\fR
apt\-get upgrade
apt\-get dist\-upgrade
.fi
.RE
.sp
.PP
以下のコマンドで、指定したパッケージを
unstable
ディストリビューションの最新バージョンにアップグレードします。 それ以降、\fBapt\-get upgrade\fR
は
testing
バージョンのパッケージが更新されていれば
testing
の最新版に、
unstable
バージョンのパッケージが更新されていれば
unstableの最新版にアップグレードします。
.sp
.RS 3n
.nf
apt\-get install \fIpackage\fR/unstable
.fi
.RE
.sp
.SH "関連項目"
.PP
\fBapt\-get\fR(8)
\fBapt\-cache\fR(8)
\fBapt.conf\fR(5)
\fBsources.list\fR(5)
.SH "バグ"
.PP
[1]\&\fIAPT バグページ\fRを ご覧ください。 APT のバグを報告する場合は、
\fI/usr/share/doc/debian/bug\-reporting.txt\fR
や
\fBreportbug\fR(1)
コマンドをご覧ください。
.SH "訳者"
.PP
倉澤 望
(2003\-2006), Debian JP Documentation ML
.SH "AUTHOR"
.PP
\fBAPT team\fR
.sp -1n
.IP "" 3n
Author.
.SH "REFERENCES"
.TP 3
1.\ APT バグページ
\%http://bugs.debian.org/src:apt