当前位置: 首页>>技术教程>>正文


如何防止更新特定的包?

, ,

问题描述

由于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>

使用新立得软件包管理器锁定

转到新立得包管理器(系统>管理>新立得包管理器)。

点击搜索按钮并输入包名称。

当您找到包裹时,选择它并进入包装菜单并选择锁定版本。

updates,package-management,ubuntu

该软件包现在不会显示在更新管理器中,并且不会更新。

次佳解决方法

放置”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

updates,package-management,ubuntu

从包装菜单中选择锁定版本:

updates,package-management,ubuntu

就是这样,即使在升级期间,当前安装的版本仍将保持安装状态。

第五种方法

防止安装软件包称为”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

第八种方法

查看错误#75332#158981#72806

总结是,在apt-get /aptitude级别保持不在dpkg中触发保持状态(尤其是bug 72806),并且update-manager从dpkg读取状态。

解决方法以root身份运行:echo "package hold" | dpkg --set-selections

第九种方法

因为有一段时间apt-getapt取代,所以例如我想阻止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-*

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/96.html,未经允许,请勿转载。