为什么这个固定棒不会粘住?

Modified on: Tue, 06 Aug 2019 16:00:02 +0800

我更喜欢在主要线路稳定中使用挤压后移端的nginx安装。我已经启用了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)详细说明了决定安装哪个软件包版本的算法:

  

如果已指定目标版本,则APT使用以下内容
  算法设置包版本的优先级。分配:

  
  

优先级1 ::来自档案的版本,其版本文件中的版本标记为“NotAutomatic:yes”,但不像“debAutomaticUpgrades:yes”,如debian实验档案。

  
  

优先级100 ::已经安装的版本(如果有的话)和来自档案的版本,其版本文件中标记为“NotAutomatic:yes”和“ButAutomaticUpgrades:yes”,如debian backports archive挤-backports中。

  
  

优先级500 ::到未安装且不属于目标版本的版本。

  
  

priority 990 ::到未安装且属于目标版本的版本。

  
  

如果尚未指定目标版本,则APT只为所有已安装的软件包版本分配优先级100,为所有已卸载的软件包版本分配优先级500,但来自其版本文件中的归档版本标记为“NotAutomatic:yes”的版本除外 - 如果这些版本另外标记为“ButAutomaticUpgrades:yes”,则获得优先级1或优先级100。

  
  

APT然后应用以优先顺序列出的以下规则来确定要安装的软件包版本。

  
  

      
  • 除非可用版本的优先级超过1000,否则永远不要降级。(“降级”是安装较新版本的软件包代替更新版本。请注意,APT的默认优先级均不超过1000;高优先级只能在首选项文件中设置。另请注意,降级包可能存在风险。)

  •   
  • 安装优先级最高的版本。

  •   

等。您可以在这里阅读这里的全部内容。据我了解,优先级999是当前最高优先级,而来自squeeze-backports 的nginx应该受到青睐。显然不是。也许魔鬼在细节中 - 我不确定nginx包是否标记为NotAutomatic或ButAutomaticUpgrades或如何确定 - 但是联机帮助页后面的示例表明我已经做了正确的事情。然而

# 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。是什么给了什么?

作者:troutwine

最佳答案

是否有可能被此错误< / A>

  

在混合sid /测试系统上,相同的文本行为不同
  是否放在/ etc / apt / preferences中或
  /etc/apt/preferences.d/pinning。

  
  

apt-get尊重放置在任一位置的文件和apt-cache策略
  还显示了预期的行为。只有这样才能表现出才能​​。

  
  

我在版本0.4.11.11-1 + b2上看到了相同的行为,并尝试升级
  到0.6.1.3-3,看它是否在sid中修复,但是不当行为
  仍然存在。

根据最新的更新,这是在aptitude 0.6.3-3.2中修复的fixed in aptitude 0.6.3-3.2


相关问答

添加新评论