我sudo apt-mark hold nameofthepackage
对 3 个软件包都这么做了,但是现在当我使用以下命令升级时,出现了一个令人讨厌的提示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
有没有办法“隐藏”这个?即使我拿着包裹,我也希望一切如常。谢谢
答案1
使用 Apt Preferences 固定软件包版本
检查我的包裹当前的优先级策略,例如
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
无需使用保持,因此
sudo apt-mark unhold virtualbox
您可以将其保留为第二锁。
现在,如果我检查apt-get update
,没有提到关于virtualbox
(在保留的包裹清单中)。
- 参考:如何使用 APT 首选项 Pinnig
- 井号
#
可用于注释 APT 首选项文件中的行。