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