]> git.saurik.com Git - apt.git/blobdiff - doc/apt_preferences.5.xml
change debian related entities to a more explicit name
[apt.git] / doc / apt_preferences.5.xml
index 9d3fc18547233679b7d5eb09695e3d17e307ab06..cac9a96e185a1eed92cd7aa71bb545b44600101a 100644 (file)
@@ -1,16 +1,9 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-
-<!ENTITY % aptent SYSTEM "apt.ent">
-%aptent;
-
-<!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent">
-%aptverbatiment;
-
-<!ENTITY good-perl "5.10">
-<!ENTITY bad-perl "5.14">
-
+<!ENTITY % aptent SYSTEM "apt.ent"> %aptent;
+<!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent"> %aptverbatiment;
+<!ENTITY % aptvendor SYSTEM "apt-vendor.ent"> %aptvendor;
 ]>
 
 <refentry>
 ]>
 
 <refentry>
@@ -20,7 +13,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2010-02-16T00:00:00Z</date>
+   <date>2015-08-15T00:00:00Z</date>
  </refentryinfo>
 
  <refmeta>
  </refentryinfo>
 
  <refmeta>
@@ -77,7 +70,7 @@ as filename extension and only contain alphanumeric, hyphen (-),
 underscore (_) and period (.) characters.
 Otherwise APT will print a notice that it has ignored a file, unless that
 file matches a pattern in the <literal>Dir::Ignore-Files-Silently</literal>
 underscore (_) and period (.) characters.
 Otherwise APT will print a notice that it has ignored a file, unless that
 file matches a pattern in the <literal>Dir::Ignore-Files-Silently</literal>
-configuration list - in this case it will be silently ignored.</para>
+configuration list - in which case it will be silently ignored.</para>
 
 <refsect2><title>APT's Default Priority Assignments</title>
 
 
 <refsect2><title>APT's Default Priority Assignments</title>
 
@@ -122,14 +115,17 @@ from archives which in their <filename>Release</filename> files are marked as "N
 
 <varlistentry>
 <term>priority 500</term>
 
 <varlistentry>
 <term>priority 500</term>
-<listitem><simpara>to the versions that are not installed and do not belong to the target release.</simpara></listitem>
+<listitem><simpara>to the versions that do not belong to the target release.</simpara></listitem>
 </varlistentry>
 
 <varlistentry>
 <term>priority 990</term>
 </varlistentry>
 
 <varlistentry>
 <term>priority 990</term>
-<listitem><simpara>to the versions that are not installed and belong to the target release.</simpara></listitem>
+<listitem><simpara>to the versions that belong to the target release.</simpara></listitem>
 </varlistentry>
 </variablelist>
 </varlistentry>
 </variablelist>
+
+The highest of those priorities whose description matches the version is assigned to the
+version.
 </para>
 
 <para>If the target release has not been specified then APT simply assigns
 </para>
 
 <para>If the target release has not been specified then APT simply assigns
@@ -239,25 +235,30 @@ Pin-Priority: 50
 </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
-belonging to any distribution whose Codename is "<literal>&testing-codename;</literal>".</simpara>
+belonging to any distribution whose Codename is "<literal>&debian-testing-codename;</literal>".</simpara>
 
 <programlisting>
 Package: *
 
 <programlisting>
 Package: *
-Pin: release n=&testing-codename;
+Pin: release n=&debian-testing-codename;
 Pin-Priority: 900
 </programlisting>
 
 <simpara>The following record assigns a high priority to all package versions
 belonging to any release whose Archive name is "<literal>stable</literal>"
 Pin-Priority: 900
 </programlisting>
 
 <simpara>The following record assigns a high priority to all package versions
 belonging to any release whose Archive name is "<literal>stable</literal>"
-and whose release Version number is "<literal>&stable-version;</literal>".</simpara>
+and whose release Version number is "<literal>&debian-stable-version;</literal>".</simpara>
 
 <programlisting>
 Package: *
 
 <programlisting>
 Package: *
-Pin: release a=stable, v=&stable-version;
+Pin: release a=stable, v=&debian-stable-version;
 Pin-Priority: 500
 </programlisting>
 </listitem>
 </itemizedlist>
 Pin-Priority: 500
 </programlisting>
 </listitem>
 </itemizedlist>
+
+The effect of the comma operator is similar to an "and" in logic: All
+conditions must be satisfied for the pin to match. There is one exception:
+For any type of condition (such as two "a" conditions), only the last such
+condition is checked.
 </para>
 
 </refsect2>
 </para>
 
 </refsect2>
@@ -274,7 +275,7 @@ expression surrounded by slashes).
 
 <programlisting>
 Package: gnome* /kde/
 
 <programlisting>
 Package: gnome* /kde/
-Pin: release n=experimental
+Pin: release a=experimental
 Pin-Priority: 500
 </programlisting>
 
 Pin-Priority: 500
 </programlisting>
 
@@ -315,30 +316,30 @@ or negative integers.  They are interpreted as follows (roughly speaking):
 
 <variablelist>
 <varlistentry>
 
 <variablelist>
 <varlistentry>
-<term>P &gt; 1000</term>
+<term>P &gt;= 1000</term>
 <listitem><simpara>causes a version to be installed even if this
 constitutes a downgrade of the package</simpara></listitem>
 </varlistentry>
 <varlistentry>
 <listitem><simpara>causes a version to be installed even if this
 constitutes a downgrade of the package</simpara></listitem>
 </varlistentry>
 <varlistentry>
-<term>990 &lt; P &lt;=1000</term>
+<term>990 &lt;= P &lt; 1000</term>
 <listitem><simpara>causes a version to be installed
 even if it does not come from the target release,
 unless the installed version is more recent</simpara></listitem>
 </varlistentry>
 <varlistentry>
 <listitem><simpara>causes a version to be installed
 even if it does not come from the target release,
 unless the installed version is more recent</simpara></listitem>
 </varlistentry>
 <varlistentry>
-<term>500 &lt; P &lt;=990</term>
+<term>500 &lt;= P &lt; 990</term>
 <listitem><simpara>causes a version to be installed
 unless there is a version available belonging to the target release
 or the installed version is more recent</simpara></listitem>
 </varlistentry>
 <varlistentry>
 <listitem><simpara>causes a version to be installed
 unless there is a version available belonging to the target release
 or the installed version is more recent</simpara></listitem>
 </varlistentry>
 <varlistentry>
-<term>100 &lt; P &lt;=500</term>
+<term>100 &lt;= P &lt; 500</term>
 <listitem><simpara>causes a version to be installed
 unless there is a version available belonging to some other
 distribution or the installed version is more recent</simpara></listitem>
 </varlistentry>
 <varlistentry>
 <listitem><simpara>causes a version to be installed
 unless there is a version available belonging to some other
 distribution or the installed version is more recent</simpara></listitem>
 </varlistentry>
 <varlistentry>
-<term>0 &lt; P &lt;=100</term>
+<term>0 &lt; P &lt; 100</term>
 <listitem><simpara>causes a version to be installed
 only if there is no installed version of the package</simpara></listitem>
 </varlistentry>
 <listitem><simpara>causes a version to be installed
 only if there is no installed version of the package</simpara></listitem>
 </varlistentry>
@@ -346,14 +347,21 @@ only if there is no installed version of the package</simpara></listitem>
 <term>P &lt; 0</term>
 <listitem><simpara>prevents the version from being installed</simpara></listitem>
 </varlistentry>
 <term>P &lt; 0</term>
 <listitem><simpara>prevents the version from being installed</simpara></listitem>
 </varlistentry>
+<varlistentry>
+<term>P = 0</term>
+<listitem><simpara>has undefined behaviour, do not use it.</simpara></listitem>
+</varlistentry>
 </variablelist>
 </para>
 
 </variablelist>
 </para>
 
-<para>If any specific-form records match an available package version then the
-first such record determines the priority of the package version.  
-Failing that,
-if any general-form records match an available package version then the
-first such record determines the priority of the package version.</para>
+<para>
+The first specific-form record matching an available package version determines
+the priority of the package version.
+Failing that, the priority of the package is defined as the maximum of all
+priorities defined by generic-form records matching the version.
+Records defined using patterns in the Pin field other than "*" are treated like
+specific-form records.
+</para>
 
 <para>For example, suppose the APT preferences file contains the three
 records presented earlier:</para>
 
 <para>For example, suppose the APT preferences file contains the three
 records presented earlier:</para>
@@ -420,7 +428,7 @@ APT priorities:
 <para>The <filename>Release</filename> file is normally found in the directory
 <filename>.../dists/<replaceable>dist-name</replaceable></filename>:
 for example, <filename>.../dists/stable/Release</filename>,
 <para>The <filename>Release</filename> file is normally found in the directory
 <filename>.../dists/<replaceable>dist-name</replaceable></filename>:
 for example, <filename>.../dists/stable/Release</filename>,
-or <filename>.../dists/&stable-codename;/Release</filename>.
+or <filename>.../dists/&debian-stable-codename;/Release</filename>.
 It consists of a single multi-line record which applies to <emphasis>all</emphasis> of
 the packages in the directory tree below its parent.  Unlike the
 <filename>Packages</filename> file, nearly all of the lines in a <filename>Release</filename>
 It consists of a single multi-line record which applies to <emphasis>all</emphasis> of
 the packages in the directory tree below its parent.  Unlike the
 <filename>Packages</filename> file, nearly all of the lines in a <filename>Release</filename>
@@ -448,14 +456,14 @@ Pin: release a=stable
 <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
 <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: &testing-codename;"
+"Codename: &debian-testing-codename;"
 specifies that all of the packages in the directory
 tree below the parent of the <filename>Release</filename> file belong to a version named
 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>&testing-codename;</literal>.  Specifying this value in the APT preferences file
+<literal>&debian-testing-codename;</literal>.  Specifying this value in the APT preferences file
 would require the line:
 </simpara>
 <programlisting>
 would require the line:
 </simpara>
 <programlisting>
-Pin: release n=&testing-codename;
+Pin: release n=&debian-testing-codename;
 </programlisting>
 </listitem>
 </varlistentry>
 </programlisting>
 </listitem>
 </varlistentry>
@@ -464,16 +472,16 @@ Pin: release n=&testing-codename;
 <term>the <literal>Version:</literal> line</term>
 <listitem><simpara>names the release version.  For example, the
 packages in the tree might belong to Debian release
 <term>the <literal>Version:</literal> line</term>
 <listitem><simpara>names the release version.  For example, the
 packages in the tree might belong to Debian release
-version &stable-version;.  Note that there is normally no version number for the
+version &debian-stable-version;.  Note that there is normally no version number for the
 <literal>testing</literal> and <literal>unstable</literal> distributions because they
 have not been released yet.  Specifying this in the APT preferences
 file would require one of the following lines.
 </simpara>
 
 <programlisting>
 <literal>testing</literal> and <literal>unstable</literal> distributions because they
 have not been released yet.  Specifying this in the APT preferences
 file would require one of the following lines.
 </simpara>
 
 <programlisting>
-Pin: release v=&stable-version;
-Pin: release a=stable, v=&stable-version;
-Pin: release &stable-version;
+Pin: release v=&debian-stable-version;
+Pin: release a=stable, v=&debian-stable-version;
+Pin: release &debian-stable-version;
 </programlisting>
 
 </listitem>
 </programlisting>
 
 </listitem>
@@ -655,9 +663,9 @@ the example configurations above.
 
 <programlisting>
 Explanation: Uninstall or do not install any Debian-originated package versions
 
 <programlisting>
 Explanation: Uninstall or do not install any Debian-originated package versions
-Explanation: other than those in the distribution codenamed with &testing-codename; or sid
+Explanation: other than those in the distribution codenamed with &debian-testing-codename; or sid
 Package: *
 Package: *
-Pin: release n=&testing-codename;
+Pin: release n=&debian-testing-codename;
 Pin-Priority: 900
 
 Explanation: Debian unstable is always codenamed with sid
 Pin-Priority: 900
 
 Explanation: Debian unstable is always codenamed with sid
@@ -673,7 +681,7 @@ Pin-Priority: -10
 
 <para>With a suitable &sources-list; file and the above preferences file,
 any of the following commands will cause APT to upgrade to the
 
 <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>&testing-codename;</literal>.
+latest version(s) in the release codenamed with <literal>&debian-testing-codename;</literal>.
 
 <programlisting>
 apt-get install <replaceable>package-name</replaceable>
 
 <programlisting>
 apt-get install <replaceable>package-name</replaceable>
@@ -685,7 +693,7 @@ apt-get dist-upgrade
 <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
 <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>&testing-codename;</literal> version if that is
+the package to the most recent <literal>&debian-testing-codename;</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.
 more recent than the installed version, otherwise, to the most recent
 <literal>sid</literal> version if that is more recent than the installed
 version.