X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/fb2894d268d4821e0dd4f2b803ff2043b1ec3162..4fb6fdaf95de3db51ef386de7b494ed4c889bedc:/doc/apt_preferences.5.xml diff --git a/doc/apt_preferences.5.xml b/doc/apt_preferences.5.xml index ab0107d36..c927f327a 100644 --- a/doc/apt_preferences.5.xml +++ b/doc/apt_preferences.5.xml @@ -14,12 +14,13 @@ &apt-email; &apt-product; - 29 February 2004 + 16 February 2010 apt_preferences 5 + APT @@ -31,7 +32,8 @@ Description The APT preferences file /etc/apt/preferences -can be used to control which versions of packages will be selected +and the fragment files in the /etc/apt/preferences.d/ +folder can be used to control which versions of packages will be selected for installation. Several versions of a package may be available for installation when @@ -51,6 +53,24 @@ earliest in the &sources-list; file. The APT preferences file does not affect the choice of instance, only the choice of version. +Preferences are a strong power in the hands of a system administrator +but they can become also their biggest nightmare if used without care! +APT will not questioning the preferences so wrong settings will therefore +lead to uninstallable packages or wrong decisions while upgrading packages. +Even more problems will arise if multiply distribution releases are mixed +without a good understanding of the following paragraphs. +Packages included in a specific release aren't tested in and +therefore doesn't always work as expected in older or newer releases or +together with other packages from different releases. +You have been warned. + +Note that the files in the /etc/apt/preferences.d +directory are parsed in alphanumeric ascending order and need to obey the +following naming convention: The files have no or "pref" +as filename extension and which only contain alphanumeric, hyphen (-), +underscore (_) and period (.) characters - otherwise they will be silently +ignored. + APT's Default Priority Assignments If there is no preferences file or if there is no entry in the file @@ -60,6 +80,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 apt-get command line or in the APT configuration file /etc/apt/apt.conf. +Note that this has precedence over any general priority you set in the +/etc/apt/preferences file described later, but not +over specifically pinned packages. For example, @@ -172,8 +195,15 @@ Pin: origin "" Pin-Priority: 999 -A note of caution: the keyword used here is "origin". -This should not be confused with the Origin of a distribution as +A note of caution: the keyword used here is "origin" +which can be used to match a hostname. The following record will assign a high priority +to all versions available from the server identified by the hostname "ftp.de.debian.org" + +Package: * +Pin: origin "ftp.de.debian.org" +Pin-Priority: 999 + +This should not be confused with the Origin of a distribution as specified in a Release file. What follows the "Origin:" tag in a Release file is not an Internet address but an author or vendor name, such as "Debian" or "Ximian". @@ -184,7 +214,16 @@ belonging to any distribution whose Archive name is "unstable Package: * Pin: release a=unstable -Pin-Priority: 500 +Pin-Priority: 50 + + +The following record assigns a high priority to all package versions +belonging to any distribution whose Codename is "squeeze". + + +Package: * +Pin: release n=squeeze +Pin-Priority: 900 The following record assigns a high priority to all package versions @@ -324,10 +363,11 @@ file are relevant for setting APT priorities: -the Archive: line +the Archive: or Suite: line 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 Release file are in a stable archive. Specifying this value in the APT preferences file @@ -339,6 +379,22 @@ Pin: release a=stable + +the Codename: line +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 Release file belong to a version named +squeeze. Specifying this value in the APT preferences file +would require the line: + + +Pin: release n=squeeze + + + + the Version: line names the release version. For example, the @@ -422,7 +478,7 @@ one or more lines beginning with the word Explanation:. This provides a place for comments. The Pin-Priority: 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 Pin-Priority: release .... @@ -519,10 +575,74 @@ version. apt-get install package/unstable + + + + +Tracking the evolution of a codename release + +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 Debian distributions, +codenames and archives. +Note that with this APT preference APT will follow the migration of a release +from the archive testing to stable and +later oldstable. If you want to follow for example the progress +in testing notwithstanding the codename changes you should use +the example configurations above. + + +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 n=sid +Pin-Priority: 800 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + +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 squeeze. + +apt-get install package-name +apt-get upgrade +apt-get dist-upgrade + + + +The following command will cause APT to upgrade the specified +package to the latest version from the sid distribution. +Thereafter, apt-get upgrade will upgrade +the package to the most recent squeeze version if that is +more recent than the installed version, otherwise, to the most recent +sid version if that is more recent than the installed +version. + + +apt-get install package/sid + + + +Files + + &file-preferences; + + + See Also &apt-get; &apt-cache; &apt-conf; &sources-list; @@ -532,4 +652,3 @@ apt-get install package/unstable &manbugs; -