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