]> git.saurik.com Git - apt.git/blame - doc/apt_preferences.5.xml
merged from david
[apt.git] / doc / apt_preferences.5.xml
CommitLineData
24f6490f 1<?xml version="1.0" encoding="utf-8" standalone="no"?>
81cf16a2
DK
2<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
b2e465d6
AL
4
5<!ENTITY % aptent SYSTEM "apt.ent">
6%aptent;
7
0c1a7101
DK
8<!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent">
9%aptverbatiment;
10
b2e465d6
AL
11]>
12
13<refentry>
ec2853a7 14
5e80de29
AL
15 <refentryinfo>
16 &apt-author.team;
17 &apt-email;
18 &apt-product;
19 <!-- The last update date -->
dabb215c 20 <date>2012-06-09T00:00:00Z</date>
5e80de29
AL
21 </refentryinfo>
22
b2e465d6 23 <refmeta>
24f6490f
AL
24 <refentrytitle>apt_preferences</refentrytitle>
25 <manvolnum>5</manvolnum>
f0599b9c 26 <refmiscinfo class="manual">APT</refmiscinfo>
b2e465d6 27 </refmeta>
ec2853a7 28
b2e465d6
AL
29 <!-- Man page title -->
30 <refnamediv>
24f6490f
AL
31 <refname>apt_preferences</refname>
32 <refpurpose>Preference control file for APT</refpurpose>
b2e465d6 33 </refnamediv>
b2e465d6 34
24f6490f
AL
35<refsect1>
36<title>Description</title>
37<para>The APT preferences file <filename>/etc/apt/preferences</filename>
daa4aa52
DK
38and the fragment files in the <filename>/etc/apt/preferences.d/</filename>
39folder can be used to control which versions of packages will be selected
24f6490f 40for installation.</para>
ec2853a7 41
24f6490f 42<para>Several versions of a package may be available for installation when
ec2853a7 43the &sources-list; file contains references to more than one distribution
5b9d504e
AL
44(for example, <literal>stable</literal> and <literal>testing</literal>).
45APT assigns a priority to each version that is available.
46Subject to dependency constraints, <command>apt-get</command> selects the
408a8e0a 47version with the highest priority for installation.
44477002 48The APT preferences override the priorities that APT assigns to
5b9d504e 49package versions by default, thus giving the user control over which
24f6490f
AL
50one is selected for installation.</para>
51
52<para>Several instances of the same version of a package may be available when
408a8e0a
AL
53the &sources-list; file contains references to more than one source.
54In this case <command>apt-get</command> downloads the instance listed
5b9d504e 55earliest in the &sources-list; file.
44477002 56The APT preferences do not affect the choice of instance, only
24f6490f 57the choice of version.</para>
ec2853a7 58
d9dedf30
DK
59<para>Preferences are a strong power in the hands of a system administrator
60but they can become also their biggest nightmare if used without care!
44477002 61APT will not question the preferences, so wrong settings can
d9dedf30 62lead to uninstallable packages or wrong decisions while upgrading packages.
44477002 63Even more problems will arise if multiple distribution releases are mixed
d9dedf30 64without a good understanding of the following paragraphs.
44477002
JR
65Packages included in a specific release aren't tested in (and
66therefore don't always work as expected in) older or newer releases, or
37049546 67together with other packages from different releases.
d9dedf30
DK
68You have been warned.</para>
69
e29a6bb1
DK
70<para>Note that the files in the <filename>/etc/apt/preferences.d</filename>
71directory are parsed in alphanumeric ascending order and need to obey the
1fc8c922
MV
72following naming convention: The files have either no or "<literal>pref</literal>"
73as filename extension and only contain alphanumeric, hyphen (-),
7376837d 74underscore (_) and period (.) characters.
44477002
JR
75Otherwise APT will print a notice that it has ignored a file, unless that
76file matches a pattern in the <literal>Dir::Ignore-Files-Silently</literal>
0ca491a7 77configuration list - in which case it will be silently ignored.</para>
e29a6bb1 78
24f6490f 79<refsect2><title>APT's Default Priority Assignments</title>
ec2853a7 80
24f6490f 81<para>If there is no preferences file or if there is no entry in the file
408a8e0a
AL
82that applies to a particular version then the priority assigned to that
83version is the priority of the distribution to which that version
84belongs. It is possible to single out a distribution, "the target release",
85which receives a higher priority than other distributions do by default.
86The target release can be set on the <command>apt-get</command> command
87line or in the APT configuration file <filename>/etc/apt/apt.conf</filename>.
99fc3e08
LB
88Note that this has precedence over any general priority you set in the
89<filename>/etc/apt/preferences</filename> file described later, but not
90over specifically pinned packages.
408a8e0a 91For example,
24f6490f 92
408a8e0a
AL
93<programlisting>
94<command>apt-get install -t testing <replaceable>some-package</replaceable></command>
95</programlisting>
96<programlisting>
97APT::Default-Release "stable";
98</programlisting>
ec2853a7
AL
99</para>
100
24f6490f 101<para>If the target release has been specified then APT uses the following
408a8e0a 102algorithm to set the priorities of the versions of a package. Assign:
24f6490f 103
ec2853a7 104<variablelist>
10df254b
DK
105<varlistentry>
106<term>priority 1</term>
107<listitem><simpara>to the versions coming from archives which in their <filename>Release</filename>
fcaf14fe 108files are marked as "NotAutomatic: yes" but <emphasis>not</emphasis> as "ButAutomaticUpgrades: yes"
44477002 109like the Debian <literal>experimental</literal> archive.</simpara></listitem>
10df254b
DK
110</varlistentry>
111
ec2853a7
AL
112<varlistentry>
113<term>priority 100</term>
fcaf14fe
DK
114<listitem><simpara>to the version that is already installed (if any) and to the versions coming
115from archives which in their <filename>Release</filename> files are marked as "NotAutomatic: yes" and
44477002 116"ButAutomaticUpgrades: yes" like the Debian backports archive since <literal>squeeze-backports</literal>.
fcaf14fe 117</simpara></listitem>
ec2853a7 118</varlistentry>
24f6490f 119
ec2853a7
AL
120<varlistentry>
121<term>priority 500</term>
5b9d504e 122<listitem><simpara>to the versions that are not installed and do not belong to the target release.</simpara></listitem>
ec2853a7 123</varlistentry>
24f6490f 124
ec2853a7
AL
125<varlistentry>
126<term>priority 990</term>
5b9d504e 127<listitem><simpara>to the versions that are not installed and belong to the target release.</simpara></listitem>
ec2853a7
AL
128</varlistentry>
129</variablelist>
130</para>
131
24f6490f 132<para>If the target release has not been specified then APT simply assigns
5b9d504e 133priority 100 to all installed package versions and priority 500 to all
a0a1ce6d 134uninstalled package versions, except versions coming from archives which
10df254b 135in their <filename>Release</filename> files are marked as "NotAutomatic: yes" -
fcaf14fe
DK
136these versions get the priority 1 or priority 100 if it is additionally marked
137as "ButAutomaticUpgrades: yes".</para>
ec2853a7 138
24f6490f 139<para>APT then applies the following rules, listed in order of precedence,
5b9d504e 140to determine which version of a package to install.
ec2853a7 141<itemizedlist>
5b9d504e
AL
142<listitem><simpara>Never downgrade unless the priority of an available
143version exceeds 1000. ("Downgrading" is installing a less recent version
144of a package in place of a more recent version. Note that none of APT's
145default priorities exceeds 1000; such high priorities can only be set in
146the preferences file. Note also that downgrading a package
147can be risky.)</simpara></listitem>
148<listitem><simpara>Install the highest priority version.</simpara></listitem>
149<listitem><simpara>If two or more versions have the same priority,
150install the most recent one (that is, the one with the higher version
151number).</simpara></listitem>
152<listitem><simpara>If two or more versions have the same priority and
153version number but either the packages differ in some of their metadata or the
24f6490f 154<literal>--reinstall</literal> option is given, install the uninstalled one.</simpara></listitem>
ec2853a7
AL
155</itemizedlist>
156</para>
157
24f6490f 158<para>In a typical situation, the installed version of a package (priority 100)
5b9d504e
AL
159is not as recent as one of the versions available from the sources listed in
160the &sources-list; file (priority 500 or 990). Then the package will be upgraded
161when <command>apt-get install <replaceable>some-package</replaceable></command>
162or <command>apt-get upgrade</command> is executed.
ec2853a7
AL
163</para>
164
24f6490f 165<para>More rarely, the installed version of a package is <emphasis>more</emphasis> recent
5b9d504e
AL
166than any of the other available versions. The package will not be downgraded
167when <command>apt-get install <replaceable>some-package</replaceable></command>
24f6490f 168or <command>apt-get upgrade</command> is executed.</para>
ec2853a7 169
24f6490f 170<para>Sometimes the installed version of a package is more recent than the
ec2853a7 171version belonging to the target release, but not as recent as a version
5b9d504e
AL
172belonging to some other distribution. Such a package will indeed be upgraded
173when <command>apt-get install <replaceable>some-package</replaceable></command>
174or <command>apt-get upgrade</command> is executed,
24f6490f
AL
175because at least <emphasis>one</emphasis> of the available versions has a higher
176priority than the installed version.</para>
177</refsect2>
ec2853a7 178
24f6490f 179<refsect2><title>The Effect of APT Preferences</title>
ec2853a7 180
24f6490f 181<para>The APT preferences file allows the system administrator to control the
5b9d504e
AL
182assignment of priorities. The file consists of one or more multi-line records
183separated by blank lines. Records can have one of two forms, a specific form
184and a general form.
ec2853a7
AL
185<itemizedlist>
186<listitem>
1c62ab24 187<simpara>The specific form assigns a priority (a "Pin-Priority") to one or more
44477002 188specified packages with a specified version or version range. For example,
5b9d504e 189the following record assigns a high priority to all versions of
44477002 190the <filename>perl</filename> package whose version number begins with "<literal>&good-perl;</literal>".
1c62ab24 191Multiple packages can be separated by spaces.</simpara>
ec2853a7
AL
192
193<programlisting>
194Package: perl
44477002 195Pin: version &good-perl;*
ec2853a7
AL
196Pin-Priority: 1001
197</programlisting>
198</listitem>
199
24f6490f 200<listitem><simpara>The general form assigns a priority to all of the package versions in a
ec2853a7 201given distribution (that is, to all the versions of packages that are
24f6490f 202listed in a certain <filename>Release</filename> file) or to all of the package
5b9d504e 203versions coming from a particular Internet site, as identified by the
24f6490f 204site's fully qualified domain name.</simpara>
ec2853a7 205
24f6490f 206<simpara>This general-form entry in the APT preferences file applies only
5b9d504e 207to groups of packages. For example, the following record assigns a high
24f6490f 208priority to all package versions available from the local site.</simpara>
ec2853a7
AL
209
210<programlisting>
211Package: *
212Pin: origin ""
213Pin-Priority: 999
214</programlisting>
215
4fb6fdaf
DK
216<simpara>A note of caution: the keyword used here is "<literal>origin</literal>"
217which can be used to match a hostname. The following record will assign a high priority
218to all versions available from the server identified by the hostname "ftp.de.debian.org"</simpara>
219<programlisting>
220Package: *
221Pin: origin "ftp.de.debian.org"
222Pin-Priority: 999
223</programlisting>
224<simpara>This should <emphasis>not</emphasis> be confused with the Origin of a distribution as
24f6490f
AL
225specified in a <filename>Release</filename> file. What follows the "Origin:" tag
226in a <filename>Release</filename> file is not an Internet address
227but an author or vendor name, such as "Debian" or "Ximian".</simpara>
ec2853a7 228
24f6490f
AL
229<simpara>The following record assigns a low priority to all package versions
230belonging to any distribution whose Archive name is "<literal>unstable</literal>".</simpara>
ec2853a7
AL
231
232<programlisting>
233Package: *
234Pin: release a=unstable
704c39d6 235Pin-Priority: 50
ec2853a7
AL
236</programlisting>
237
efc487fb 238<simpara>The following record assigns a high priority to all package versions
e1dd65c9 239belonging to any distribution whose Codename is "<literal>&testing-codename;</literal>".</simpara>
efc487fb
DK
240
241<programlisting>
242Package: *
e1dd65c9 243Pin: release n=&testing-codename;
efc487fb
DK
244Pin-Priority: 900
245</programlisting>
246
24f6490f
AL
247<simpara>The following record assigns a high priority to all package versions
248belonging to any release whose Archive name is "<literal>stable</literal>"
44477002 249and whose release Version number is "<literal>&stable-version;</literal>".</simpara>
ec2853a7
AL
250
251<programlisting>
252Package: *
44477002 253Pin: release a=stable, v=&stable-version;
0493db1e 254Pin-Priority: 500
ec2853a7
AL
255</programlisting>
256</listitem>
257</itemizedlist>
258</para>
259
24f6490f 260</refsect2>
ec2853a7 261
44477002 262<refsect2><title>Regular expressions and &glob; syntax</title>
1a4c9766 263<para>
44477002
JR
264APT also supports pinning by &glob; expressions, and regular
265expressions surrounded by slashes. For example, the following
1a4c9766 266example assigns the priority 500 to all packages from
44477002 267experimental where the name starts with gnome (as a &glob;-like
1fc8c922 268expression) or contains the word kde (as a POSIX extended regular
1a4c9766
JAK
269expression surrounded by slashes).
270</para>
271
272<programlisting>
273Package: gnome* /kde/
274Pin: release n=experimental
275Pin-Priority: 500
276</programlisting>
277
278<para>
279The rule for those expressions is that they can occur anywhere
1fc8c922 280where a string can occur. Thus, the following pin assigns the
44477002 281priority 990 to all packages from a release starting with &ubuntu-codename;.
1a4c9766
JAK
282</para>
283
284<programlisting>
285Package: *
44477002 286Pin: release n=&ubuntu-codename;*
1a4c9766
JAK
287Pin-Priority: 990
288</programlisting>
289
2b9b27c3 290<para>
1a4c9766
JAK
291If a regular expression occurs in a <literal>Package</literal> field,
292the behavior is the same as if this regular expression were replaced
293with a list of all package names it matches. It is undecided whether
44477002 294this will change in the future; thus you should always list wild-card
1a4c9766
JAK
295pins first, so later specific pins override it.
296
297The pattern "<literal>*</literal>" in a Package field is not considered
44477002 298a &glob; expression in itself.
2b9b27c3 299</para>
1a4c9766
JAK
300</refsect2>
301
302
303
304
305
24f6490f
AL
306<refsect2>
307<title>How APT Interprets Priorities</title>
ec2853a7 308
5b9d504e
AL
309<para>
310Priorities (P) assigned in the APT preferences file must be positive
ec2853a7
AL
311or negative integers. They are interpreted as follows (roughly speaking):
312
313<variablelist>
5b9d504e
AL
314<varlistentry>
315<term>P &gt; 1000</term>
316<listitem><simpara>causes a version to be installed even if this
317constitutes a downgrade of the package</simpara></listitem>
ec2853a7 318</varlistentry>
5b9d504e
AL
319<varlistentry>
320<term>990 &lt; P &lt;=1000</term>
321<listitem><simpara>causes a version to be installed
ec2853a7 322even if it does not come from the target release,
5b9d504e 323unless the installed version is more recent</simpara></listitem>
ec2853a7 324</varlistentry>
5b9d504e
AL
325<varlistentry>
326<term>500 &lt; P &lt;=990</term>
327<listitem><simpara>causes a version to be installed
328unless there is a version available belonging to the target release
329or the installed version is more recent</simpara></listitem>
ec2853a7 330</varlistentry>
5b9d504e
AL
331<varlistentry>
332<term>100 &lt; P &lt;=500</term>
333<listitem><simpara>causes a version to be installed
334unless there is a version available belonging to some other
335distribution or the installed version is more recent</simpara></listitem>
24f6490f 336</varlistentry>
5b9d504e 337<varlistentry>
56298634 338<term>0 &lt; P &lt;=100</term>
5b9d504e
AL
339<listitem><simpara>causes a version to be installed
340only if there is no installed version of the package</simpara></listitem>
ec2853a7 341</varlistentry>
5b9d504e
AL
342<varlistentry>
343<term>P &lt; 0</term>
344<listitem><simpara>prevents the version from being installed</simpara></listitem>
ec2853a7
AL
345</varlistentry>
346</variablelist>
347</para>
348
24f6490f 349<para>If any specific-form records match an available package version then the
5b9d504e
AL
350first such record determines the priority of the package version.
351Failing that,
352if any general-form records match an available package version then the
24f6490f 353first such record determines the priority of the package version.</para>
ec2853a7 354
24f6490f
AL
355<para>For example, suppose the APT preferences file contains the three
356records presented earlier:</para>
ec2853a7
AL
357
358<programlisting>
359Package: perl
44477002 360Pin: version &good-perl;*
b2e465d6 361Pin-Priority: 1001
ec2853a7 362
b2e465d6 363Package: *
ec2853a7
AL
364Pin: origin ""
365Pin-Priority: 999
366
367Package: *
368Pin: release unstable
369Pin-Priority: 50
370</programlisting>
371
24f6490f 372<para>Then:
ec2853a7 373<itemizedlist>
24f6490f 374<listitem><simpara>The most recent available version of the <literal>perl</literal>
ec2853a7 375package will be installed, so long as that version's version number begins
44477002
JR
376with "<literal>&good-perl;</literal>". If <emphasis>any</emphasis> &good-perl;* version of <literal>perl</literal> is
377available and the installed version is &bad-perl;*, then <literal>perl</literal> will be
ec2853a7 378downgraded.</simpara></listitem>
24f6490f 379<listitem><simpara>A version of any package other than <literal>perl</literal>
5b9d504e
AL
380that is available from the local system has priority over other versions,
381even versions belonging to the target release.
ec2853a7 382</simpara></listitem>
5b9d504e
AL
383<listitem><simpara>A version of a package whose origin is not the local
384system but some other site listed in &sources-list; and which belongs to
24f6490f 385an <literal>unstable</literal> distribution is only installed if it is selected
5b9d504e 386for installation and no version of the package is already installed.
ec2853a7
AL
387</simpara></listitem>
388</itemizedlist>
389</para>
24f6490f 390</refsect2>
ec2853a7 391
24f6490f
AL
392<refsect2>
393<title>Determination of Package Version and Distribution Properties</title>
ec2853a7 394
24f6490f 395<para>The locations listed in the &sources-list; file should provide
ec2853a7 396<filename>Packages</filename> and <filename>Release</filename> files
24f6490f 397to describe the packages available at that location. </para>
ec2853a7 398
24f6490f 399<para>The <filename>Packages</filename> file is normally found in the directory
ec2853a7
AL
400<filename>.../dists/<replaceable>dist-name</replaceable>/<replaceable>component</replaceable>/<replaceable>arch</replaceable></filename>:
401for example, <filename>.../dists/stable/main/binary-i386/Packages</filename>.
402It consists of a series of multi-line records, one for each package available
403in that directory. Only two lines in each record are relevant for setting
404APT priorities:
405<variablelist>
406<varlistentry>
24f6490f 407<term>the <literal>Package:</literal> line</term>
ec2853a7
AL
408<listitem><simpara>gives the package name</simpara></listitem>
409</varlistentry>
410<varlistentry>
24f6490f 411<term>the <literal>Version:</literal> line</term>
ec2853a7
AL
412<listitem><simpara>gives the version number for the named package</simpara></listitem>
413</varlistentry>
414</variablelist>
415</para>
416
24f6490f 417<para>The <filename>Release</filename> file is normally found in the directory
ec2853a7
AL
418<filename>.../dists/<replaceable>dist-name</replaceable></filename>:
419for example, <filename>.../dists/stable/Release</filename>,
e1dd65c9 420or <filename>.../dists/&stable-codename;/Release</filename>.
24f6490f 421It consists of a single multi-line record which applies to <emphasis>all</emphasis> of
5b9d504e 422the packages in the directory tree below its parent. Unlike the
24f6490f 423<filename>Packages</filename> file, nearly all of the lines in a <filename>Release</filename>
ec2853a7
AL
424file are relevant for setting APT priorities:
425
426<variablelist>
427<varlistentry>
efc487fb 428<term>the <literal>Archive:</literal> or <literal>Suite:</literal> line</term>
5b9d504e 429<listitem><simpara>names the archive to which all the packages
ec2853a7 430in the directory tree belong. For example, the line
efc487fb
DK
431"Archive: stable" or
432"Suite: stable"
5b9d504e 433specifies that all of the packages in the directory
24f6490f
AL
434tree below the parent of the <filename>Release</filename> file are in a
435<literal>stable</literal> archive. Specifying this value in the APT preferences file
ec2853a7
AL
436would require the line:
437</simpara>
ec2853a7
AL
438<programlisting>
439Pin: release a=stable
440</programlisting>
441</listitem>
442</varlistentry>
443
efc487fb
DK
444<varlistentry>
445<term>the <literal>Codename:</literal> line</term>
446<listitem><simpara>names the codename to which all the packages
447in the directory tree belong. For example, the line
e1dd65c9 448"Codename: &testing-codename;"
efc487fb
DK
449specifies that all of the packages in the directory
450tree below the parent of the <filename>Release</filename> file belong to a version named
e1dd65c9 451<literal>&testing-codename;</literal>. Specifying this value in the APT preferences file
efc487fb
DK
452would require the line:
453</simpara>
454<programlisting>
e1dd65c9 455Pin: release n=&testing-codename;
efc487fb
DK
456</programlisting>
457</listitem>
458</varlistentry>
459
ec2853a7 460<varlistentry>
24f6490f 461<term>the <literal>Version:</literal> line</term>
ec2853a7 462<listitem><simpara>names the release version. For example, the
b176de3a 463packages in the tree might belong to Debian release
44477002 464version &stable-version;. Note that there is normally no version number for the
24f6490f 465<literal>testing</literal> and <literal>unstable</literal> distributions because they
5b9d504e
AL
466have not been released yet. Specifying this in the APT preferences
467file would require one of the following lines.
ec2853a7
AL
468</simpara>
469
470<programlisting>
44477002
JR
471Pin: release v=&stable-version;
472Pin: release a=stable, v=&stable-version;
473Pin: release &stable-version;
ec2853a7
AL
474</programlisting>
475
476</listitem>
477</varlistentry>
478
479<varlistentry>
24f6490f 480<term>the <literal>Component:</literal> line</term>
ec2853a7 481<listitem><simpara>names the licensing component associated with the
24f6490f 482packages in the directory tree of the <filename>Release</filename> file.
5b9d504e 483For example, the line "Component: main" specifies that
24f6490f 484all the packages in the directory tree are from the <literal>main</literal>
5b9d504e
AL
485component, which entails that they are licensed under terms listed
486in the Debian Free Software Guidelines. Specifying this component
487in the APT preferences file would require the line:
ec2853a7 488</simpara>
ec2853a7
AL
489<programlisting>
490Pin: release c=main
491</programlisting>
492</listitem>
493</varlistentry>
494
495<varlistentry>
24f6490f 496<term>the <literal>Origin:</literal> line</term>
5b9d504e 497<listitem><simpara>names the originator of the packages in the
24f6490f
AL
498directory tree of the <filename>Release</filename> file. Most commonly, this is
499<literal>Debian</literal>. Specifying this origin in the APT preferences file
ec2853a7
AL
500would require the line:
501</simpara>
ec2853a7
AL
502<programlisting>
503Pin: release o=Debian
504</programlisting>
505</listitem>
506</varlistentry>
507
508<varlistentry>
24f6490f 509<term>the <literal>Label:</literal> line</term>
5b9d504e 510<listitem><simpara>names the label of the packages in the directory tree
24f6490f
AL
511of the <filename>Release</filename> file. Most commonly, this is
512<literal>Debian</literal>. Specifying this label in the APT preferences file
ec2853a7
AL
513would require the line:
514</simpara>
ec2853a7
AL
515<programlisting>
516Pin: release l=Debian
517</programlisting>
518</listitem>
519</varlistentry>
520</variablelist>
521</para>
522
24f6490f 523<para>All of the <filename>Packages</filename> and <filename>Release</filename>
5b9d504e 524files retrieved from locations listed in the &sources-list; file are stored
ec2853a7 525in the directory <filename>/var/lib/apt/lists</filename>, or in the file named
24f6490f 526by the variable <literal>Dir::State::Lists</literal> in the <filename>apt.conf</filename> file.
ec2853a7
AL
527For example, the file
528<filename>debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release</filename>
529contains the <filename>Release</filename> file retrieved from the site
24f6490f
AL
530<literal>debian.lcs.mit.edu</literal> for <literal>binary-i386</literal> architecture
531files from the <literal>contrib</literal> component of the <literal>unstable</literal>
532distribution.</para>
533</refsect2>
ec2853a7 534
24f6490f
AL
535<refsect2>
536<title>Optional Lines in an APT Preferences Record</title>
ec2853a7 537
24f6490f
AL
538<para>Each record in the APT preferences file can optionally begin with
539one or more lines beginning with the word <literal>Explanation:</literal>.
540This provides a place for comments.</para>
24f6490f
AL
541</refsect2>
542</refsect1>
ec2853a7 543
24f6490f
AL
544<refsect1>
545<title>Examples</title>
546<refsect2>
547<title>Tracking Stable</title>
ec2853a7 548
24f6490f 549<para>The following APT preferences file will cause APT to assign a
ec2853a7 550priority higher than the default (500) to all package versions belonging
24f6490f
AL
551to a <literal>stable</literal> distribution and a prohibitively low priority to
552package versions belonging to other <literal>Debian</literal> distributions.
ec2853a7
AL
553
554<programlisting>
5b9d504e
AL
555Explanation: Uninstall or do not install any Debian-originated
556Explanation: package versions other than those in the stable distro
ec2853a7
AL
557Package: *
558Pin: release a=stable
559Pin-Priority: 900
560
ec2853a7
AL
561Package: *
562Pin: release o=Debian
563Pin-Priority: -10
564</programlisting>
565</para>
566
24f6490f 567<para>With a suitable &sources-list; file and the above preferences file,
ec2853a7 568any of the following commands will cause APT to upgrade to the
24f6490f 569latest <literal>stable</literal> version(s).
ec2853a7
AL
570
571<programlisting>
572apt-get install <replaceable>package-name</replaceable>
573apt-get upgrade
574apt-get dist-upgrade
575</programlisting>
576</para>
577
24f6490f
AL
578<para>The following command will cause APT to upgrade the specified
579package to the latest version from the <literal>testing</literal> distribution;
5b9d504e
AL
580the package will not be upgraded again unless this command is given
581again.
ec2853a7
AL
582
583<programlisting>
584apt-get install <replaceable>package</replaceable>/testing
585</programlisting>
24f6490f
AL
586</para>
587</refsect2>
ec2853a7 588
24f6490f
AL
589 <refsect2>
590 <title>Tracking Testing or Unstable</title>
ec2853a7 591
24f6490f
AL
592<para>The following APT preferences file will cause APT to assign
593a high priority to package versions from the <literal>testing</literal>
5b9d504e 594distribution, a lower priority to package versions from the
24f6490f
AL
595<literal>unstable</literal> distribution, and a prohibitively low priority
596to package versions from other <literal>Debian</literal> distributions.
ec2853a7
AL
597
598<programlisting>
599Package: *
600Pin: release a=testing
601Pin-Priority: 900
602
603Package: *
604Pin: release a=unstable
605Pin-Priority: 800
606
607Package: *
608Pin: release o=Debian
609Pin-Priority: -10
610</programlisting>
611</para>
612
24f6490f 613<para>With a suitable &sources-list; file and the above preferences file,
5b9d504e 614any of the following commands will cause APT to upgrade to the latest
24f6490f 615<literal>testing</literal> version(s).
ec2853a7
AL
616
617<programlisting>
618apt-get install <replaceable>package-name</replaceable>
619apt-get upgrade
620apt-get dist-upgrade
621</programlisting>
622</para>
623
624<para>The following command will cause APT to upgrade the specified
24f6490f 625package to the latest version from the <literal>unstable</literal> distribution.
5b9d504e 626Thereafter, <command>apt-get upgrade</command> will upgrade
24f6490f 627the package to the most recent <literal>testing</literal> version if that is
5b9d504e 628more recent than the installed version, otherwise, to the most recent
24f6490f 629<literal>unstable</literal> version if that is more recent than the installed
5b9d504e 630version.
ec2853a7
AL
631
632<programlisting>
633apt-get install <replaceable>package</replaceable>/unstable
634</programlisting>
635</para>
efc487fb
DK
636</refsect2>
637
638
639<refsect2>
640<title>Tracking the evolution of a codename release</title>
641
642<para>The following APT preferences file will cause APT to assign a
643priority higher than the default (500) to all package versions belonging
644to a specified codename of a distribution and a prohibitively low priority to
645package versions belonging to other <literal>Debian</literal> distributions,
646codenames and archives.
647Note that with this APT preference APT will follow the migration of a release
648from the archive <literal>testing</literal> to <literal>stable</literal> and
649later <literal>oldstable</literal>. If you want to follow for example the progress
650in <literal>testing</literal> notwithstanding the codename changes you should use
651the example configurations above.
652
653<programlisting>
654Explanation: Uninstall or do not install any Debian-originated package versions
e1dd65c9 655Explanation: other than those in the distribution codenamed with &testing-codename; or sid
efc487fb 656Package: *
e1dd65c9 657Pin: release n=&testing-codename;
efc487fb
DK
658Pin-Priority: 900
659
660Explanation: Debian unstable is always codenamed with sid
661Package: *
4a2bb9e6 662Pin: release n=sid
efc487fb
DK
663Pin-Priority: 800
664
665Package: *
666Pin: release o=Debian
667Pin-Priority: -10
668</programlisting>
669</para>
670
671<para>With a suitable &sources-list; file and the above preferences file,
672any of the following commands will cause APT to upgrade to the
e1dd65c9 673latest version(s) in the release codenamed with <literal>&testing-codename;</literal>.
efc487fb
DK
674
675<programlisting>
676apt-get install <replaceable>package-name</replaceable>
677apt-get upgrade
678apt-get dist-upgrade
679</programlisting>
680</para>
681
682<para>The following command will cause APT to upgrade the specified
683package to the latest version from the <literal>sid</literal> distribution.
684Thereafter, <command>apt-get upgrade</command> will upgrade
e1dd65c9 685the package to the most recent <literal>&testing-codename;</literal> version if that is
efc487fb
DK
686more recent than the installed version, otherwise, to the most recent
687<literal>sid</literal> version if that is more recent than the installed
688version.
ec2853a7 689
efc487fb
DK
690<programlisting>
691apt-get install <replaceable>package</replaceable>/sid
692</programlisting>
693</para>
24f6490f
AL
694</refsect2>
695</refsect1>
ec2853a7 696
daa4aa52
DK
697<refsect1>
698<title>Files</title>
699 <variablelist>
700 &file-preferences;
701 </variablelist>
702</refsect1>
703
24f6490f
AL
704<refsect1>
705<title>See Also</title>
5e80de29 706<para>&apt-get; &apt-cache; &apt-conf; &sources-list;
5b9d504e 707</para>
24f6490f 708</refsect1>
b2e465d6
AL
709
710 &manbugs;
ec2853a7 711
b2e465d6 712</refentry>