X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/5e594b30db8bfa9abfb683e6acdf2875a1708a04..fd2e438b24f4ce153ee35a691ae5bcb7eb28cc98:/doc/apt_preferences.5.xml diff --git a/doc/apt_preferences.5.xml b/doc/apt_preferences.5.xml index f56958fcc..cac9a96e1 100644 --- a/doc/apt_preferences.5.xml +++ b/doc/apt_preferences.5.xml @@ -1,13 +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" [ - -<!ENTITY % aptent SYSTEM "apt.ent"> -%aptent; - -<!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent"> -%aptverbatiment; - +<!ENTITY % aptent SYSTEM "apt.ent"> %aptent; +<!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent"> %aptverbatiment; +<!ENTITY % aptvendor SYSTEM "apt-vendor.ent"> %aptvendor; ]> <refentry> @@ -17,7 +13,7 @@ &apt-email; &apt-product; <!-- The last update date --> - <date>2012-06-09T00:00:00Z</date> + <date>2015-08-15T00:00:00Z</date> </refentryinfo> <refmeta> @@ -119,14 +115,17 @@ from archives which in their <filename>Release</filename> files are marked as "N <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> -<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> + +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 @@ -236,25 +235,30 @@ Pin-Priority: 50 </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: * -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>" -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: * -Pin: release a=stable, v=&stable-version; +Pin: release a=stable, v=&debian-stable-version; 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> @@ -271,7 +275,7 @@ expression surrounded by slashes). <programlisting> Package: gnome* /kde/ -Pin: release n=experimental +Pin: release a=experimental Pin-Priority: 500 </programlisting> @@ -343,14 +347,21 @@ only if there is no installed version of the package</simpara></listitem> <term>P < 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> -<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> @@ -417,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>, -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> @@ -445,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 -"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 -<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> -Pin: release n=&testing-codename; +Pin: release n=&debian-testing-codename; </programlisting> </listitem> </varlistentry> @@ -461,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 -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> -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> @@ -652,9 +663,9 @@ 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 &testing-codename; or sid +Explanation: other than those in the distribution codenamed with &debian-testing-codename; or sid Package: * -Pin: release n=&testing-codename; +Pin: release n=&debian-testing-codename; Pin-Priority: 900 Explanation: Debian unstable is always codenamed with sid @@ -670,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 -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> @@ -682,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 -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.