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