Your message dated Sun, 1 Apr 2018 11:19:42 +0100
with message-id <[email protected]>
has caused the report #892423,
regarding man -Tutf8 /usr/share/man/ja/man5/apt_preferences.5.gz (and several
others) enter infinite loop
to be marked as having been forwarded to the upstream software
author(s) [email protected]
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
892423: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=892423
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Hi,
The attached input file, when processed as follows:
LC_ALL=ja_JP.UTF-8 groff -mtty-char -mandoc -Tutf8 <apt_preferences-reduced.5
... causes groff to enter an infinite loop printing newlines. Any of
(1) removing LC_ALL=ja_JP.UTF-8, (2) not having the ja_JP.UTF-8 locale
present, (3) removing ".mso ja.tmac", or (4) removing ".nh" makes this
symptom go away, so I think it must have something to do with the CJK
line-breaking rules, but I really don't know those well enough to debug
this much further.
I've reproduced this with groff 1.22.4.rc2.
The input file (apt_preferences-reduced.5) is a reduced version of the
original as processed by man-db; I've attached the original
(apt_preferences.5) for reference.
Thanks,
--
Colin Watson [[email protected]]
--- Begin Message ---
Package: man-db
Version: 2.8.2-1
Severity: normal
Running:
man -Tutf8 /usr/share/man/ja/man5/apt_preferences.5.gz
starts outputting the manpage, but then at some point switches over to
outputting an (so far as I can tell) infinite loop of newlines:
sources.list(5) ファイルに列挙された場所から取得した Packages ファイル
や Release ファイルはすべて、/var/lib/apt/lists ディレクトリ
や、apt.conf ファイルの Dir::State::Lists 変数で指定した場所に取得され
ます。例え
Attaching the requested debug output is... difficult, but attached are
the first 100,000 lines:
man --debug -Tutf8 /usr/share/man/ja/man5/apt_preferences.5.gz |& head -n
100000 | gzip -v9 > /tmp/man-debug.txt.gz
I've also attached the apt_preferences page, just in case you have a
different version of apt; but note that other pages do this too (e.g.,
Japanese dos2unix page).
-- System Information:
Debian Release: buster/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500,
'testing'), (200, 'unstable'), (150, 'stable'), (100, 'experimental'), (1,
'experimental-debug')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.14.0-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en_GB (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages man-db depends on:
ii bsdmainutils 11.1.2
ii debconf [debconf-2.0] 1.5.66
ii dpkg 1.19.0.5
ii groff-base 1.22.3-10
ii libc6 2.27-1
ii libgdbm5 1.14.1-4
ii libpipeline1 1.5.0-1
ii libseccomp2 2.3.1-2.1
ii zlib1g 1:1.2.8.dfsg-5
man-db recommends no packages.
Versions of packages man-db suggests:
pn apparmor <none>
ii chromium [www-browser] 62.0.3202.89-1
ii elinks [www-browser] 0.12~pre6-13
ii firefox [www-browser] 58.0.1-1+b1
ii google-chrome-stable [www-browser] 65.0.3325.146-1
ii groff 1.22.3-10
ii konqueror [www-browser] 4:17.08.3-2
ii less 487-0.1
ii links2 [www-browser] 2.14-5
ii lynx [www-browser] 2.8.9dev16-3
ii w3m [www-browser] 0.5.3-36
-- debconf information:
man-db/auto-update: true
* man-db/install-setuid: false
man-debug.txt.gz
Description: application/gzip
apt_preferences.5.gz
Description: application/gzip
--- End Message ---
.mso ja.tmac
.TH "APT_PREFERENCES" "5" "15\ \&8 \[u6708]\ \&2015" "APT 1.6~beta1" "APT"
.nh
.SH "\[u540D]\[u524D]"
apt_preferences \- APT
\[u7528]\[u9078]\[u629E]\[u5236]\[u5FA1]\[u30D5]\[u30A1]\[u30A4]\[u30EB]
.SH "\[u8AAC]\[u660E]"
.PP
\fBsources.list\fR(5)
\[u30D5]\[u30A1]\[u30A4]\[u30EB]\[u306B]\[u5217]\[u6319]\[u3055]\[u308C]\[u305F]\[u5834]\[u6240]\[u304B]\[u3089]\[u53D6]\[u5F97]\[u3057]\[u305F]
Packages
\[u30D5]\[u30A1]\[u30A4]\[u30EB]\[u3084]
Release
\[u30D5]\[u30A1]\[u30A4]\[u30EB]\[u306F]\[u3059]\[u3079]\[u3066]\[u3001]/var/lib/apt/lists
\[u30C7]\[u30A3]\[u30EC]\[u30AF]\[u30C8]\[u30EA]\[u3084]\[u3001]apt\&.conf
\[u30D5]\[u30A1]\[u30A4]\[u30EB]\[u306E]
Dir::State::Lists
\[u5909]\[u6570]\[u3067]\[u6307]\[u5B9A]\[u3057]\[u305F]\[u5834]\[u6240]\[u306B]\[u53D6]\[u5F97]\[u3055]\[u308C]\[u307E]\[u3059]\[u3002]\[u4F8B]\[u3048]\[u3070]\[u3001]debian\&.lcs\&.mit\&.edu_debian_dists_unstable_contrib_binary\-i386_Release
'\" t
.\" Title: apt_preferences
.\" Author: [FAMILY Given]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 15\ \&8 月\ \&2015
.\" Manual: APT
.\" Source: APT 1.6~beta1
.\" Language: Japanese
.\"
.TH "APT_PREFERENCES" "5" "15\ \&8 月\ \&2015" "APT 1.6~beta1" "APT"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "名前"
apt_preferences \- APT 用選択制御ファイル
.SH "説明"
.PP
APT プリファレンスファイル
/etc/apt/preferences
と
/etc/apt/preferences\&.d/
フォルダにある断片ファイルは、インストールするパッケージのバージョンを制御するのに使用します。
.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
プリファレンスファイルはバージョンの選択にのみ影響し、インスタンスの選択には影響しません。
.PP
プリファレンスファイルは、システム管理者の強い力ですが、注意して使わないと大きな悪夢にもなります! APT
はプリファレンスについて問い合わせることはしません。そのため、設定を誤ったことにより、インストールできないパッケージに誘導されたり、パッケージのアップグレード中に誤った判断をしたりという事がありえます。以降の段落の内容をよく理解しないで、複数のディストリビューションリリースを混ぜてしまうと、より多くの問題が発生する事になります。特定のリリースに含まれるパッケージは、古い/新しいリリースや、異なるリリースから持ってきた他のパッケージとでは、テストされていません
(し、予想通りに常に動作するとは限りません)。以上、警告しました。
.PP
/etc/apt/preferences\&.d
ディレクトリにあるファイルは、英数字の昇順で解析され、以下の命名規約に従う必要があることに注意してください。ファイル名の拡張子はないか、"pref"
となっており、英数字、ハイフン (\-)、アンダースコア (_)、ピリオド (\&.)
でできています。そうでなければ、Dir::Ignore\-Files\-Silently
設定リストのパターンに一致するもの以外に対して、ファイルを無視するという注意を APT が出力します。一致する場合は黙って無視します。
.SS "APT のデフォルト優先度の割り当て"
.PP
プリファレンスファイルがなかったり、プリファレンスファイルに特定のパッケージを割り当てるエントリがない場合、そのバージョンの優先度は、そのバージョンが属しているディストリビューションの優先度となります。デフォルトで他のディストリビューションより高い優先度を持つ、特定のディストリビューションを「ターゲットリリース」としておけます。ターゲットリリースは、\fBapt\-get\fR
のコマンドラインや、APT 設定ファイル
/etc/apt/apt\&.conf
で設定できます。後述する
/etc/apt/preferences
ファイルで設定した一般優先度よりもこれは優先されますが、pin 止めしたパッケージには及ばないことに注意してください。例えば以下のようになります。
.sp
.if n \{\
.RS 4
.\}
.nf
\fBapt\-get install \-t testing \fR\fB\fIsome\-package\fR\fR
.fi
.if n \{\
.RE
.\}
.sp
.sp
.if n \{\
.RS 4
.\}
.nf
APT::Default\-Release "stable";
.fi
.if n \{\
.RE
.\}
.PP
ターゲットリリースが指定されると、APT は以下のアルゴリズムで、パッケージのバージョンの優先度を設定します。以下のように割り当てます。
.PP
優先度 1
.RS 4
Debian の
experimental
アーカイブのように、Release
ファイルに "NotAutomatic: yes" とマークされ、"ButAutomaticUpgrades: yes"
とマークされて\fIいない\fRアーカイブ由来のバージョン。
.RE
.PP
優先度 100
.RS 4
(もしあれば) 既にインストール済みのバージョンや、squeeze\-backports
以降である Debian のバックポートアーカイブのような、Release
ファイルに "NotAutomatic: yes" かつ "ButAutomaticUpgrades: yes" とマークされているアーカイブ由来のバージョン。
.RE
.PP
優先度 500
.RS 4
ターゲットリリースに属していないバージョン。
.RE
.PP
優先度 990
.RS 4
ターゲットリリースに属するバージョン。
.RE
説明がバージョンとマッチし、優先順位が最も高いものがバージョンに割り当てられます。
.PP
ターゲットリリースが指定されていなければ、APT は単純にインストールしているパッケージのバージョンには優先度 100
を、インストールしていないパッケージのバージョンには優先度 500 を割り当てます。ただし、Release
ファイルに "NotAutomatic: yes" とマークされたアーカイブ由来のバージョンは違います。こういったバージョンでは優先度 1 を割り当て、さらに
"ButAutomaticUpgrades: yes" とマークされている場合には、優先度 100 を割り当てます。
.PP
APT は、インストールするパッケージのバージョンを決定するために、以下のルールを上から順番に適用します。
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
有効なバージョンの優先度が 1000
を越えない場合、決してダウングレードしません。(「ダウングレード」は、現在のパッケージのバージョンよりも、小さいバージョンのものをインストールします。APT
のデフォルト優先度が 1000
を越えないことに注意してください。そのような優先度は、プリファレンスファイルでのみ設定できます。また、パッケージのダウングレードは危険であることにも注意してください)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
最も高い優先度のバージョンをインストールします。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
同じ優先度のバージョンが複数存在する場合、最も新しいもの (最もバージョン番号が高いもの) をインストールします。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
優先度・バージョン番号が同じものが複数存在し、そのパッケージのメタデータが異なるか
\-\-reinstall
オプションが与えられている場合、インストールされていないものをインストールします。
.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
プリファレンスファイルを使うと、システム管理者が優先度を割り当てられるようになります。ファイルは、空白行で区切られた、複数行からなるレコードで構成されています。レコードは特定形式か、汎用形式のどちらかの形式をとります。
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
特定形式は、優先度 ("Pin\-Priority")
を、指定したバージョンやバージョン範囲の、指定したパッケージについて割り当てます。例えば以下のレコードは、バージョン番号が "5\&.20" で始まる
perl
パッケージを、高い優先度に設定します。空白で区切り、複数のパッケージを指定できます。
.sp
.if n \{\
.RS 4
.\}
.nf
Package: perl
Pin: version 5\&.20*
Pin\-Priority: 1001
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
汎用形式は、与えられたディストリビューションにある、すべてのパッケージ (Release
ファイルに列挙したパッケージ) の優先度や、FQDNで指定した、特定のインターネットサイトから取得するパッケージの優先度を割り当てます。
.sp
APT
プリファレンスファイルに書かれている汎用形式のエントリは、パッケージのグループについてのみ適用されます。例えば以下のレコードは、ローカルサイトにある全パッケージについて、高い優先度を割り当てます。
.sp
.if n \{\
.RS 4
.\}
.nf
Package: *
Pin: origin ""
Pin\-Priority: 999
.fi
.if n \{\
.RE
.\}
.sp
注意: ここで使われるキーワードは、ホスト名にマッチするのに使われる "origin" です。以下のレコードは、ホスト名が
"ftp\&.de\&.debian\&.org" で識別されるサーバ由来のすべてのバージョンに、高い優先度を割り当てます。
.sp
.if n \{\
.RS 4
.\}
.nf
Package: *
Pin: origin "ftp\&.de\&.debian\&.org"
Pin\-Priority: 999
.fi
.if n \{\
.RE
.\}
.sp
Release
ファイルに指定されたような、ディストリビューションの Origin と
\fI混同しない\fRようにしてください。Release
ファイルにある "Origin:" タグは、インターネットアドレスではなく、"Debian" や "Ximian" といった作者やベンダ名です。
.sp
以下のレコードは、アーカイブ名が "unstable" となっているディストリビューションに属するパッケージを、すべて低い優先度に割り当てます。
.sp
.if n \{\
.RS 4
.\}
.nf
Package: *
Pin: release a=unstable
Pin\-Priority: 50
.fi
.if n \{\
.RE
.\}
.sp
以下のレコードは、コード名が "buster" となっているディストリビューションに属するパッケージのバージョンを、高い優先度に割り当てます。
.sp
.if n \{\
.RS 4
.\}
.nf
Package: *
Pin: release n=buster
Pin\-Priority: 900
.fi
.if n \{\
.RE
.\}
.sp
以下のレコードは、アーカイブ名が "stable" で、リリースバージョン番号が "9"
となっているリリースに属するパッケージを、すべて高い優先度に割り当てます。
.sp
.if n \{\
.RS 4
.\}
.nf
Package: *
Pin: release a=stable, v=9
Pin\-Priority: 500
.fi
.if n \{\
.RE
.\}
.RE
.sp
コンマ演算子の効果は "and" 論理に似ています: ピンが一致するようにすべての条件がピンが一致しなければなりません。一つの例外があります:
条件のいずれかの型では (例えば、二つの "a" 条件)、ただ最後の条件のみがチェックされます。
.SS "正規表現と glob(7) 構文"
.PP
APT は
\fBglob\fR(7)
表現と、スラッシュで囲んだ正規表現による pin もサポートしています。例えば以下の例は、gnome で始まる (\fBglob\fR(7)
風表現) か kde を含む (スラッシュで囲んだ POSIX の拡張正規表現) 名前の、experimental
由来のすべてのパッケージに、優先度500を割り当てます。
.sp
.if n \{\
.RS 4
.\}
.nf
Package: gnome* /kde/
Pin: release a=experimental
Pin\-Priority: 500
.fi
.if n \{\
.RE
.\}
.PP
この表現の規則は、文字が現れうる場所なら、どこでも発生しうるという事です。したがって、以下の pin は、xenial
で始まるリリース由来の、すべてのパッケージに、優先度 990 を割り当てます。
.sp
.if n \{\
.RS 4
.\}
.nf
Package: *
Pin: release n=xenial*
Pin\-Priority: 990
.fi
.if n \{\
.RE
.\}
.PP
Package
フィールドも正規表現が現れる場合、正規表現を、マッチするすべてのパッケージ名のリストに置き換えたものとして、動作します。これは将来変更されるかどうか、まだ決定していません。そのため、まずはじめにワイルドカード
pin を、常に記述するようにしてください。その後に続く pin で上書きされます。Package フィールドの "*"
パターンは、\fBglob\fR(7)
表現自体とは見なされません。
.SS "APT が優先度に割り込む方法"
.PP
APT プリファレンスファイルで割り当てた優先度 (P) は、正負の整数でなくてはなりません。これは (おおざっぱにいうと) 以下のように解釈されます。
.PP
P >= 1000
.RS 4
パッケージがダウングレードしても、このバージョンのパッケージをインストール
.RE
.PP
990 <= P < 1000
.RS 4
インストールされているバージョンの方が新しいのでなければ、ターゲットリリースに含まれなくても、このバージョンのパッケージをインストール
.RE
.PP
500 <= P < 990
.RS 4
ターゲットリリースに属するバージョンがあったり、インストールされているバージョンの方が新しいのでなければ、このバージョンのパッケージをインストール
.RE
.PP
100 <= P < 500
.RS 4
他のディストリビューションに属するバージョンがあったり、インストールされているバージョンの方が新しいのでなければ、このバージョンのパッケージをインストール
.RE
.PP
0 < P < 100
.RS 4
このパッケージがインストールされていない場合、このバージョンのパッケージをインストール
.RE
.PP
P < 0
.RS 4
このバージョンのインストール禁止
.RE
.PP
P = 0
.RS 4
は動作が未定義です、使用しないでください。
.RE
.PP
利用可能なパッケージバージョンに一致する最初の特定形式のレコードが、パッケージバージョンの優先度を決定します。それに失敗すると、パッケージバージョンの優先度は、バージョンに一致する汎用形式のレコードで定義されたすべての優先度の最大値として定義されます。
.PP
例えば、APT プリファレンスファイルの上の方に、以下のレコードが書かれていると仮定してください。
.sp
.if n \{\
.RS 4
.\}
.nf
Package: perl
Pin: version 5\&.20*
Pin\-Priority: 1001
Package: *
Pin: origin ""
Pin\-Priority: 999
Package: *
Pin: release unstable
Pin\-Priority: 50
.fi
.if n \{\
.RE
.\}
.PP
すると、以下のように動作します。
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
バージョン番号が "5\&.20" で始まっていれば、perl
の最新の利用可能パッケージがインストールされます。バージョン 5\&.20* が利用可能で、バージョン 5\&.24* がインストールされている場合、perl
はダウングレードされます。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
ローカルシステムで有効な、perl
以外のどんなパッケージでも、他のバージョンより (たとえターゲットリリースに属していても) 優先度が高くなります。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
ローカルシステムにはなくても
\fBsources.list\fR(5)
に列挙されたサイトにあるバージョンで、unstable
ディストリビューションに属しているパッケージは、インストールするよう選択され、既にインストールされているバージョンがない場合にのみインストールされます。
.RE
.sp
.SS "パッケージのバージョンとディストリビューションプロパティの決定"
.PP
\fBsources.list\fR(5)
ファイルに列挙した場所では、その場所で利用できるパッケージを記述した、Packages
ファイルや
Release
ファイルを提供します。
.PP
Packages
ファイルは通常
\&.\&.\&./dists/\fIdist\-name\fR/\fIcomponent\fR/\fIarch\fR
ディレクトリにあります。例えば、\&.\&.\&./dists/stable/main/binary\-i386/Packages
です。これは、ディレクトリにある利用可能パッケージごとに、複数行のレコードからできています。APT 優先度の設定は、レコードごとに以下の 2 行だけです。
.PP
Package: 行
.RS 4
パッケージ名
.RE
.PP
Version: 行
.RS 4
その名前のパッケージのバージョン番号
.RE
.PP
Release
ファイルは、通常
\&.\&.\&./dists/\fIdist\-name\fR
ディレクトリにあります。例えば、\&.\&.\&./dists/stable/Release
や
\&.\&.\&./dists/stretch/Release
です。これは、このディレクトリ以下にある\fI全\fRパッケージに適用する、複数行のレコード 1 つから成っています。Packages
ファイルと違い
Release
ファイルは、以下のようにほとんどの行が APT 優先度の設定に関連します。
.PP
Archive: 行や Suite: 行
.RS 4
このディレクトリツリーに属する全パッケージのアーカイブ名です。例えば、"Archive: stable" や "Suite: stable"
という行は、Release
ファイルの親ディレクトリツリー以下にある全パッケージが、stable
アーカイブだと指定します。APT プリファレンスファイルでこの値を指定するには、以下の行が必要になります。
.sp
.if n \{\
.RS 4
.\}
.nf
Pin: release a=stable
.fi
.if n \{\
.RE
.\}
.RE
.PP
Codename: 行
.RS 4
このディレクトリツリーに属する全パッケージのコード名です。たとえば、"Codename: buster" という行は、Release
ファイルの親ディレクトリツリー以下にある全パッケージが、buster
と名前のついたバージョンであると指定します。APT プリファレンスファイルでこの値を指定するには、以下の行が必要になります。
.sp
.if n \{\
.RS 4
.\}
.nf
Pin: release n=buster
.fi
.if n \{\
.RE
.\}
.RE
.PP
Version: 行
.RS 4
リリースバージョン名です。例えば、このツリーのパッケージが、Debian リリースバージョン 9 に属するとします。通常
testing
ディストリビューションや
unstable
ディストリビューションには、まだリリースされていないので、バージョン番号が付きません。APT
プリファレンスファイルでこれを指定するには、以下の行のいずれかが必要になります。
.sp
.if n \{\
.RS 4
.\}
.nf
Pin: release v=9
Pin: release a=stable, v=9
Pin: release 9
.fi
.if n \{\
.RE
.\}
.RE
.PP
Component: 行
.RS 4
Release
ファイルの、ディレクトリツリーにあるパッケージのライセンスコンポーネント名です。例えば、"Component: main"
という行は、このディレクトリ以下の全ファイルが、main
コンポーネント (Debian フリーソフトウェアガイドラインの元でライセンスされている) であることを表します。APT
プリファレンスファイルでこのコンポーネントを指定するには、以下の行が必要になります。
.sp
.if n \{\
.RS 4
.\}
.nf
Pin: release c=main
.fi
.if n \{\
.RE
.\}
.RE
.PP
Origin: 行
.RS 4
Release
ファイルのディレクトリツリーにあるパッケージの提供者名です。ほとんど共通で
Debian
です。APT プリファレンスファイルでこの提供者を指定するには、以下の行が必要になります。
.sp
.if n \{\
.RS 4
.\}
.nf
Pin: release o=Debian
.fi
.if n \{\
.RE
.\}
.RE
.PP
Label: 行
.RS 4
Release
ファイルのディレクトリツリーにあるパッケージのラベル名です。ほとんど共通で
Debian
です。APT プリファレンスファイルでこのラベルを指定するには、以下の行が必要になります。
.sp
.if n \{\
.RS 4
.\}
.nf
Pin: release l=Debian
.fi
.if n \{\
.RE
.\}
.RE
.PP
\fBsources.list\fR(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
ファイルを含んでいます。
.SS "APT プリファレンスレコードのオプション行"
.PP
APT プリファレンスファイルのレコードごとに、任意で
Explanation:
で始まる行を持てます。これは、コメント用の場所を確保します。
.SH "サンプル"
.SS "安定版の追跡"
.PP
以下の APT プリファレンスファイルは、stable
ディストリビューションに属する全てのパッケージのバージョンに、デフォルト (500) より高い優先度を割り当て、他の
Debian
ディストリビューションのパッケージのバージョンには、低くてインストールできないような優先度を割り当てます。
.sp
.if n \{\
.RS 4
.\}
.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
.if n \{\
.RE
.\}
.PP
適切な
\fBsources.list\fR(5)
ファイルと上記のプリファレンスファイルにより、以下のコマンドのいずれかで最新の
stable
バージョンにアップグレードできます。
.sp
.if n \{\
.RS 4
.\}
.nf
apt\-get install \fIpackage\-name\fR
apt\-get upgrade
apt\-get dist\-upgrade
.fi
.if n \{\
.RE
.\}
.PP
以下のコマンドで、指定したパッケージを
testing
ディストリビューションの最新バージョンにアップグレードします。このパッケージは、再度このコマンドを発行しないとアップグレードされません。
.sp
.if n \{\
.RS 4
.\}
.nf
apt\-get install \fIpackage\fR/testing
.fi
.if n \{\
.RE
.\}
.sp
.SS "テスト版や不安定版の追跡"
.PP
以下の APT プリファレンスファイルは、testing
ディストリビューションのパッケージのバージョンに高い優先度を割り当て、unstable
ディストリビューションのパッケージのバージョンには低い優先度を割り当てます。また他の
Debian
ディストリビューションのパッケージのバージョンには、低くてインストールできないような優先度を割り当てます。
.sp
.if n \{\
.RS 4
.\}
.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
.if n \{\
.RE
.\}
.PP
適切な
\fBsources.list\fR(5)
ファイルと上記のプリファレンスファイルにより、以下のコマンドのいずれかで最新の
testing
バージョンにアップグレードできます。
.sp
.if n \{\
.RS 4
.\}
.nf
apt\-get install \fIpackage\-name\fR
apt\-get upgrade
apt\-get dist\-upgrade
.fi
.if n \{\
.RE
.\}
.PP
以下のコマンドで、指定したパッケージを
unstable
ディストリビューションの最新バージョンにアップグレードします。それ以降、\fBapt\-get upgrade\fR
は
testing
バージョンのパッケージが更新されていれば
testing
の最新版に、unstable
バージョンのパッケージが更新されていれば
unstable
の最新版にアップグレードします。
.sp
.if n \{\
.RS 4
.\}
.nf
apt\-get install \fIpackage\fR/unstable
.fi
.if n \{\
.RE
.\}
.sp
.SS "コード名リリースの進化の追跡"
.PP
以下の APT プリファレンスファイルは、指定したコード名のディストリビューションに属する全てのパッケージのバージョンに、デフォルト (500)
より高い優先度を割り当て、他の
Debian
ディストリビューション、コード名、アーカイブのパッケージのバージョンには、低くてインストールできないような優先度を割り当てます。この APT
プリファレンスファイルにより、APT は
testing
アーカイブから、stable
や最新の
oldstable
へ移行できます。コード名の変更に関係なく
testing
を追跡したい場合は、上記の設定例を使用するべきです。
.sp
.if n \{\
.RS 4
.\}
.nf
Explanation: Uninstall or do not install any Debian\-originated package versions
Explanation: other than those in the distribution codenamed with buster or sid
Package: *
Pin: release n=buster
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
.fi
.if n \{\
.RE
.\}
.PP
適切な
\fBsources.list\fR(5)
ファイルと上記のプリファレンスファイルにより、以下のコマンドのいずれかで、リリースコード名が
buster
である最新バージョンにアップグレードできます。
.sp
.if n \{\
.RS 4
.\}
.nf
apt\-get install \fIpackage\-name\fR
apt\-get upgrade
apt\-get dist\-upgrade
.fi
.if n \{\
.RE
.\}
.PP
以下のコマンドで、指定したパッケージを
sid
ディストリビューションの最新バージョンにアップグレードします。それ以降、\fBapt\-get upgrade\fR
は
buster
バージョンのパッケージが更新されていれば
buster
の最新版に、sid
バージョンのパッケージが更新されていれば
sidの最新版にアップグレードします。
.sp
.if n \{\
.RS 4
.\}
.nf
apt\-get install \fIpackage\fR/sid
.fi
.if n \{\
.RE
.\}
.sp
.SH "ファイル"
.PP
/etc/apt/preferences
.RS 4
バージョンプリファレンスファイル。 ここに "pin"の設定を行います。 つまり、別々の取得元や異なるディストリビューションのバージョンの、
どこからパッケージを取得するかを設定します。 設定項目:
Dir::Etc::Preferences
.RE
.PP
/etc/apt/preferences\&.d/
.RS 4
バージョンプリファレンスファイル断片。 設定項目:
Dir::Etc::PreferencesParts
.RE
.SH "関連項目"
.PP
\fBapt-get\fR(8)
\fBapt-cache\fR(8)
\fBapt.conf\fR(5)
\fBsources.list\fR(5)
.SH "バグ"
.PP
\m[blue]\fBAPT バグページ\fR\m[]\&\s-2\u[1]\d\s+2
をご覧ください。 APT のバグを報告する場合は、
/usr/share/doc/debian/bug\-reporting\&.txt
や
\fBreportbug\fR(1)
コマンドをご覧ください。
.SH "翻訳"
.PP
倉澤 望
<nabetaro@debian\&.or\&.jp>
(2003\-2006,2009\-2012), Takuma Yamada
<tyamada@takumayamada\&.com>
(2016), Debian JP Documentation ML
<debian\-doc@debian\&.or\&.jp>
.PP
この翻訳文書には未訳部分が含まれている可能性があることに 注意してください。 翻訳がオリジナルに追従できていない場合、
内容を失わないようにこのようにしています。
.SH "著者"
.PP
\fB[FAMILY Given]\fR
.RS 4
.RE
.SH "注記"
.IP " 1." 4
APT バグページ
.RS 4
\%http://bugs.debian.org/src:apt
.RE
--- End Message ---