当我升级时,防止包’保持’出现

我在3个软件包上做了sudo apt-mark hold nameofthepackage ,但是现在当我使用sudo apt-get upgrade时,我有一个恼人的评论:

 Following packages have been holded : package1 package2 package3 0 upgraded, 0 installed, 0 to remove and 3 non-updated. 

(我很抱歉终端的输出不正确,我使用的是法语版,我不知道怎么用英语说这个。)

它是否存在“隐藏”这种方式? 即使我拿着包裹,我也希望通常0 non-updated 。 谢谢

使用Apt首选项固定包版本

  1. 检查我的包的当前优先级策略,使用virtualbox示例:

     $ apt-cache policy virtualbox virtualbox: Installed: 4.3.6-dfsg-1 Candidate: 4.3.6-dfsg-2 Version table: 4.3.6-dfsg-2 0 500 http://archive.ubuntu.com/ubuntu/ trusty/multiverse amd64 Packages *** 4.3.6-dfsg-1 0 100 /var/lib/dpkg/status 
  2. /etc/apt/preferences.d/创建新文件

     sudo vim /etc/apt/preferences.d/my_pin 
  3. 添加你想要的包(joker *可以使用),具有更高的优先级(默认0 ,最大1000 ,甚至负值,如-1以跳过版本)

     Package: virtualbox* Pin: version 4.3.6-dfsg-1 Pin-Priority: 500 
  4. 再检查一遍:

     $ apt-cache policy virtualbox virtualbox: Installed: 4.3.6-dfsg-1 Candidate: 4.3.6-dfsg-1 Package pin: 4.3.6-dfsg-1 Version table: 4.3.6-dfsg-2 500 500 http://archive.ubuntu.com/ubuntu/ trusty/multiverse amd64 Packages *** 4.3.6-dfsg-1 500 100 /var/lib/dpkg/status 
  5. 不需要使用hold,所以sudo apt-mark unhold virtualbox但是你可以把它sudo apt-mark unhold virtualbox第二个锁。

现在,如果我检查apt-get update ,则没有提及有关virtualbox (在保留的软件包列表中)。

  • 参考: 如何使用APT首选项Pinnig
  • 哈希符号#可用于对APT首选项文件中的行进行注释。