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