当我升级时,防止包’保持’出现
我在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首选项固定包版本
-
检查我的包的当前优先级策略,使用
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
-
在
/etc/apt/preferences.d/
创建新文件sudo vim /etc/apt/preferences.d/my_pin
-
添加你想要的包(joker
*
可以使用),具有更高的优先级(默认0
,最大1000
,甚至负值,如-1
以跳过版本)Package: virtualbox* Pin: version 4.3.6-dfsg-1 Pin-Priority: 500
-
再检查一遍:
$ 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
-
不需要使用hold,所以
sudo apt-mark unhold virtualbox
但是你可以把它sudo apt-mark unhold virtualbox
第二个锁。
现在,如果我检查apt-get update
,则没有提及有关virtualbox
(在保留的软件包列表中)。
- 参考: 如何使用APT首选项Pinnig
- 哈希符号
#
可用于对APT首选项文件中的行进行注释。