问题描述
由于bug #693758,我想阻止apt-get upgrade
和更新管理器更新”libgtk2.0-0″包。
这怎么能实现?
最佳解决方法
Holding
有四种方式阻止软件包:使用dpkg,apt,aptitude或dselect。
dpkg
搁置一个包裹:
echo "<package-name> hold" | sudo dpkg --set-selections
取消保留:
echo "<package-name> install" | sudo dpkg --set-selections
显示你的软件包的状态:
dpkg --get-selections
显示单个包的状态:
dpkg --get-selections | grep "<package-name>"
apt
拿一包:
sudo apt-mark hold <package-name>
取消保留:
sudo apt-mark unhold <package-name>
dselect
使用dselect,进入[S]选择屏幕,在当前状态下找到想要保存的包裹,然后按=
或H
。这些更改将在退出[S]选择屏幕后立即生效。
以下方法受限于在aptitude或synaptic中锁定/保持软件包不会影响apt-get /apt。
aptitude
拿一包:
sudo aptitude hold <package-name>
取消保留:
sudo aptitude unhold <package-name>
使用新立得软件包管理器锁定
转到新立得包管理器(系统>管理>新立得包管理器)。
点击搜索按钮并输入包名称。
当您找到包裹时,选择它并进入包装菜单并选择锁定版本。
该软件包现在不会显示在更新管理器中,并且不会更新。
次佳解决方法
放置”foo”包:
echo "foo hold" | dpkg --set-selections
在你的情况下,我们将搁置葡萄酒:
sudo -i
echo "wine hold" | dpkg --set-selections
要取消暂停:
sudo -i
echo "wine install" | dpkg --set-selections
第三种解决方法
我在寻找同样的东西,经过大量研究后,我发现使用以下语法可以禁止某个特定版本,但允许进行下一次更新:
Package: compiz-plugins-main
Pin: version 1:0.9.7.0~bzr19-0ubuntu10.1
Pin-Priority: -1
这进入/etc /apt /preferences文件。
第四种方法
使用sudo apt-get install synaptic
安装synaptic
。
使用gksudo synaptic
运行并在搜索框中找到要锁定的程序包,即:gedit
从包装菜单中选择锁定版本:
就是这样,即使在升级期间,当前安装的版本仍将保持安装状态。
第五种方法
防止安装软件包称为”package holding”,它的操作非常简单:
echo package_name hold | dpkg --set-selections
…其中* package_name *是您想要阻止安装的软件包的名称。
注意:以上命令假定有root权限。换句话说,在运行它之前,您可能需要键入sudo su
。
第六种方法
我突触你可以冻结一个特定的包的版本我不是100%确定这是否会修改apt-get,但它肯定会停止更新管理器。
要冻结一个包在突触中选择它,然后打开包菜单并选择冻结版本。
希望这可以帮助
编辑:这个question 16668处理类似的情况
第七种方法
您想了解有关”holding”和”pinning”包到特定版本的所有内容:https://help.ubuntu.com/community/PinningHowto
第八种方法
总结是,在apt-get /aptitude级别保持不在dpkg中触发保持状态(尤其是bug 72806),并且update-manager从dpkg读取状态。
解决方法以root身份运行:echo "package hold" | dpkg --set-selections
第九种方法
因为有一段时间apt-get
被apt
取代,所以例如我想阻止Firefox升级到56以上的版本,因为很多add-ons,像“Tab Groups”,在新的Firefox 57(参见”WebExtensions Update”)中不再工作。
可以用一个命令保存多个包并使用通配符。
防止Firefox更新
sudo apt-mark hold firefox firefox-locale-*
如果你以后想保留它们,那将是命令:
sudo apt-mark unhold firefox firefox-locale-*