我正在运行 Ubuntu 14.04,并且它的软件包已经过时,需要更新。
有几个软件包我不想升级,比如 tomcat、php 等。但我不确定如何运行全面的 apt-get upgrade 来升级除这些软件包之外的所有软件包。我能找到的大多数文档和建议只解释了如何更新特定软件包,而不是反过来。。?
谢谢
答案1
您需要的是“软件包锁定”——本质上,告诉 apt,“我想保留这个软件包的这个版本”。对于简单的单软件包锁定,请将其添加到/etc/apt/preferences
(或在 中的新文件中/etc/apt/preferences.d
):
Package: tomcat8
Pin: version 8.0.14-1
Pin-Priority: 1001
指定您想要的包名称和您想要将其固定到的版本,并确保Pin-Priority
超过 1000。然后包基本上永远不会从其当前版本移动。
您可以做一些更棘手的事情,例如固定到某个版本(trusty
而不是trusty-updates
),使用 glob 模式选择大量软件包,并且只允许软件包更新(如果它们是安全更新)。请参阅apt_preferences
(5) 了解所有详细信息。
答案2
拿着包裹:
简而言之:
sudo apt-mark hold <package>
或者
echo <package> hold | sudo dpkg --set-selections
取消保留包裹:
简而言之:
sudo apt-mark unhold <package>
或者
echo <package> install | sudo dpkg --set-selections