我想更喜欢安装在nginx从挤压backports在主线稳定。 我已经启用了backports存储库。 我有这个偏好文件:
# /etc/apt/preferences.d/nginx Package: nginx nginx-common Pin: release a=squeeze-backports Pin-Priority: 999
设定目标具体如预期般运作:
# aptitude install -t squeeze-backports nginx The following NEW packages will be installed: libgd2-noxpm{a} libgeoip1{a} libjpeg62{a} libpcre3{a} libxml2{a} libxslt1.1{a} nginx nginx-common{a} nginx-full{a} The following packages are RECOMMENDED but will NOT be installed: geoip-database xml-core 0 packages upgraded, 9 newly installed, 0 to remove and 39 not upgraded. Need to get 828 kB/2,235 kB of archives. After unpacking 4,985 kB will be used. Do you want to continue? [Y/n/?]
但是sans的目标不是:
# aptitude install nginx The following NEW packages will be installed: libgeoip1{a} libpcre3{a} nginx The following packages are RECOMMENDED but will NOT be installed: geoip-database 0 packages upgraded, 3 newly installed, 0 to remove and 25 not upgraded. Need to get 339 kB/694 kB of archives. After unpacking 1,667 kB will be used. Do you want to continue? [Y/n/?]
apt_preferences (5)详细说明了决定安装哪个软件包版本的algorithm:
如果已经指定目标版本,则APT使用以下algorithm来设置软件包版本的优先级。 分配:
优先级1 ::到来自归档文件的版本在其发布文件中被标记为“NotAutomatic:yes”,而不是像“Debian实验档案”那样的“ButAutomaticUpgrades:yes”。
优先级100 ::到已经安装的版本(如果有的话)以及来自归档文件的版本被标记为“NotAutomatic:yes”和“ButAutomaticUpgrades:yes”,像debian backports归档文件,因为挤压backports 。
优先级500 ::到未安装且不属于目标版本的版本。
优先级990 ::到未安装且属于目标版本的版本。
如果尚未指定目标版本,那么APT只会将优先级100分配给所有已安装的软件包版本,将优先级500分配给所有已卸载的软件包版本,但版本归档文件中的版本标记为“NotAutomatic:yes”如果另外标记为“ButAutomaticUpgrades:yes”,则优先级1或优先级100。
然后,APT应用以下优先顺序列出的规则来确定要安装哪个版本的软件包。
除非可用版本的优先级超过1000,否则不要降级。(“降级”是指安装最近版本的软件包,而不是更新的版本。请注意,APT的默认优先级不超过1000;只能设置此优先级请注意,降级软件包可能是有风险的。)
安装最高优先级的版本。
等你可以在这里阅读完整的东西。 据我所知,优先级999是当前最高的优先级,并且来自挤压端口的nginx 应该是有利的。 这显然不是。 也许魔鬼是在细节 – 我不确定是否nginx包标记为NotAutomatic或ButAutomaticUpgrades或如何确定 – 但在手册页后面的例子会build议我做了正确的事情。 然而
# apt-cache policy nginx nginx: Installed: (none) Candidate: 1.1.8-2~bpo60+1 Package pin: 1.1.8-2~bpo60+1 Version table: 1.1.8-2~bpo60+1 999 100 http://backports.debian.org/debian-backports/ squeeze-backports/main i386 Packages 0.7.67-3+squeeze1 999 500 http://debian.osuosl.org/debian/ squeeze/main i386 Packages
优先100我希望的包。 是什么赋予了?
是否有可能被这个bug咬了?
在一个混合的sid /testing系统上,不pipe放在/ etc / apt / preferences还是放在/etc/apt/preferences.d/pinning中,相同的文本的行为都是不同的。
apt-get尊重位于任一位置的文件,而apt-cache策略也显示预期的行为。 独立才能的行为就是这样。
我在版本0.4.11.11-1 + b2上看到了相同的行为,并试图升级到0.6.1.3-3,看它是否在sid中被修复,但是这种不良行为依然存在。
根据最新的更新,这是fixed in aptitude 0.6.3-3.2