]> git.saurik.com Git - apt.git/blobdiff - doc/apt_preferences.5.xml
[ABI break] Allow pinning by codename (closes: #97564)
[apt.git] / doc / apt_preferences.5.xml
index 12b03196a80c0247c9e7fe0689dec00d519310df..ff63f1dd34f19ad7f5991c20a993e891bed49ddd 100644 (file)
@@ -14,7 +14,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>29 February 2004</date>
+   <date>04 May 2009</date>
  </refentryinfo>
 
  <refmeta>
  </refentryinfo>
 
  <refmeta>
@@ -60,6 +60,9 @@ belongs.  It is possible to single out a distribution, "the target release",
 which receives a higher priority than other distributions do by default.
 The target release can be set on the <command>apt-get</command> command
 line or in the APT configuration file <filename>/etc/apt/apt.conf</filename>.
 which receives a higher priority than other distributions do by default.
 The target release can be set on the <command>apt-get</command> command
 line or in the APT configuration file <filename>/etc/apt/apt.conf</filename>.
+Note that this has precedence over any general priority you set in the
+<filename>/etc/apt/preferences</filename> file described later, but not
+over specifically pinned packages.
 For example,
 
 <programlisting>
 For example,
 
 <programlisting>
@@ -143,10 +146,11 @@ separated by blank lines.  Records can have one of two forms, a specific form
 and a general form.
 <itemizedlist>
 <listitem>
 and a general form.
 <itemizedlist>
 <listitem>
-<simpara>The specific form assigns a priority (a "Pin-Priority") to a
-specified package and specified version or version range.  For example,
+<simpara>The specific form assigns a priority (a "Pin-Priority") to one or more
+specified packages and specified version or version range.  For example,
 the following record assigns a high priority to all versions of
 the following record assigns a high priority to all versions of
-the <filename>perl</filename> package whose version number begins with "<literal>5.8</literal>".</simpara>
+the <filename>perl</filename> package whose version number begins with "<literal>5.8</literal>".
+Multiple packages can be separated by spaces.</simpara>
 
 <programlisting>
 Package: perl
 
 <programlisting>
 Package: perl
@@ -183,7 +187,16 @@ belonging to any distribution whose Archive name is "<literal>unstable</literal>
 <programlisting>
 Package: *
 Pin: release a=unstable
 <programlisting>
 Package: *
 Pin: release a=unstable
-Pin-Priority: 500
+Pin-Priority: 50
+</programlisting>
+
+<simpara>The following record assigns a high priority to all package versions
+belonging to any distribution whose Codename is "<literal>squeeze</literal>".</simpara>
+
+<programlisting>
+Package: *
+Pin: release n=squeeze
+Pin-Priority: 900
 </programlisting>
 
 <simpara>The following record assigns a high priority to all package versions
 </programlisting>
 
 <simpara>The following record assigns a high priority to all package versions
@@ -323,10 +336,11 @@ file are relevant for setting APT priorities:
 
 <variablelist>
 <varlistentry>
 
 <variablelist>
 <varlistentry>
-<term>the <literal>Archive:</literal> line</term>
+<term>the <literal>Archive:</literal> or <literal>Suite:</literal> line</term>
 <listitem><simpara>names the archive to which all the packages
 in the directory tree belong.  For example, the line
 <listitem><simpara>names the archive to which all the packages
 in the directory tree belong.  For example, the line
-"Archive: stable"
+"Archive: stable" or
+"Suite: stable"
 specifies that all of the packages in the directory
 tree below the parent of the <filename>Release</filename> file are in a
 <literal>stable</literal> archive.  Specifying this value in the APT preferences file
 specifies that all of the packages in the directory
 tree below the parent of the <filename>Release</filename> file are in a
 <literal>stable</literal> archive.  Specifying this value in the APT preferences file
@@ -338,6 +352,22 @@ Pin: release a=stable
 </listitem>
 </varlistentry>
 
 </listitem>
 </varlistentry>
 
+<varlistentry>
+<term>the <literal>Codename:</literal> line</term>
+<listitem><simpara>names the codename to which all the packages
+in the directory tree belong.  For example, the line
+"Codename: squeeze"
+specifies that all of the packages in the directory
+tree below the parent of the <filename>Release</filename> file belong to a version named
+<literal>squeeze</literal>.  Specifying this value in the APT preferences file
+would require the line:
+</simpara>
+<programlisting>
+Pin: release n=squeeze
+</programlisting>
+</listitem>
+</varlistentry>
+
 <varlistentry>
 <term>the <literal>Version:</literal> line</term>
 <listitem><simpara>names the release version.  For example, the
 <varlistentry>
 <term>the <literal>Version:</literal> line</term>
 <listitem><simpara>names the release version.  For example, the
@@ -421,7 +451,7 @@ one or more lines beginning with the word <literal>Explanation:</literal>.
 This provides a place for comments.</para>
 
 <para>The <literal>Pin-Priority:</literal> line in each APT preferences record is
 This provides a place for comments.</para>
 
 <para>The <literal>Pin-Priority:</literal> line in each APT preferences record is
-optional.  If omitted, APT assigs a priority of 1 less than the last value
+optional.  If omitted, APT assigns a priority of 1 less than the last value
 specified on a line beginning with <literal>Pin-Priority: release ...</literal>.</para>
 </refsect2>
 </refsect1>
 specified on a line beginning with <literal>Pin-Priority: release ...</literal>.</para>
 </refsect2>
 </refsect1>
@@ -518,7 +548,64 @@ version.
 apt-get install <replaceable>package</replaceable>/unstable
 </programlisting>
 </para>
 apt-get install <replaceable>package</replaceable>/unstable
 </programlisting>
 </para>
+</refsect2>
+
+
+<refsect2>
+<title>Tracking the evolution of a codename release</title>
+
+<para>The following APT preferences file will cause APT to assign a
+priority higher than the default (500) to all package versions belonging
+to a specified codename of a distribution and a prohibitively low priority to
+package versions belonging to other <literal>Debian</literal> distributions,
+codenames and archives.
+Note that with this APT preference APT will follow the migration of a release
+from the archive <literal>testing</literal> to <literal>stable</literal> and
+later <literal>oldstable</literal>. If you want to follow for example the progress
+in <literal>testing</literal> notwithstanding the codename changes you should use
+the example configurations above.
+
+<programlisting>
+Explanation: Uninstall or do not install any Debian-originated package versions
+Explanation: other than those in the distribution codenamed with squeeze or sid
+Package: *
+Pin: release n=squeeze
+Pin-Priority: 900
+
+Explanation: Debian unstable is always codenamed with sid
+Package: *
+Pin: release a=sid
+Pin-Priority: 800
+
+Package: *
+Pin: release o=Debian
+Pin-Priority: -10
+</programlisting>
+</para>
 
 
+<para>With a suitable &sources-list; file and the above preferences file,
+any of the following commands will cause APT to upgrade to the
+latest version(s) in the release codenamed with <literal>squeeze</literal>.
+
+<programlisting>
+apt-get install <replaceable>package-name</replaceable>
+apt-get upgrade
+apt-get dist-upgrade
+</programlisting>
+</para>
+
+<para>The following command will cause APT to upgrade the specified
+package to the latest version from the <literal>sid</literal> distribution.
+Thereafter, <command>apt-get upgrade</command> will upgrade
+the package to the most recent <literal>squeeze</literal> version if that is
+more recent than the installed version, otherwise, to the most recent
+<literal>sid</literal> version if that is more recent than the installed
+version.
+
+<programlisting>
+apt-get install <replaceable>package</replaceable>/sid
+</programlisting>
+</para>
 </refsect2>
 </refsect1>
 
 </refsect2>
 </refsect1>
 
@@ -531,4 +618,3 @@ apt-get install <replaceable>package</replaceable>/unstable
  &manbugs;
 
 </refentry>
  &manbugs;
 
 </refentry>
-