保持

保持

因为错误 #693758我想阻止apt-get upgrade更新管理器更新“libgtk2.0-0”包。

如何实现这一点?

答案1

保持

有不同的方法来阻止包裹:使用、、dpkg或Synaptic 。aptdselectaptitude

软件包

保留包裹:

echo "<package-name> hold" | sudo dpkg --set-selections

解除保留:

echo "<package-name> install" | sudo dpkg --set-selections

显示所有包裹的状态:

dpkg --get-selections

显示单个包的状态:

dpkg --get-selections <package-name>

显示所有保留的包裹:

dpkg --get-selections | grep "\<hold$"

易于

持有包裹:

sudo apt-mark hold <package-name>

解除保留:

sudo apt-mark unhold <package-name>

显示所有保留的包裹:

sudo apt-mark showhold

取消选择

使用 dselect 进入 [S]elect 屏幕,找到要保留其当前状态的软件包,然后按=H。退出 [S]elect 屏幕后,更改将立即生效。


以下方法的局限性在于,锁定/保留 aptitude 或 synaptic 中的包不会影响 apt-get/apt。

资质

持有包裹:

sudo aptitude hold <package-name>

解除保留:

sudo aptitude unhold <package-name>

使用 Synaptic 包管理器锁定

Synaptic 软件包管理器(系统 > 管理 > Synaptic 包管理器)。

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

找到包后,选择它并转到包裹菜单并选择锁定版本

突触菜单

该包现在将不会显示在更新管理器中,也不会被更新。

答案2

我一直在寻找同样的东西,经过大量研究后,我发现使用以下语法可以禁止一个特定版本但允许下一个更新:

Package: compiz-plugins-main
Pin: version 1:0.9.7.0~bzr19-0ubuntu10.1
Pin-Priority: -1

这会进入/etc/apt/preferences文件。

答案3

要暂停包“foo”:

echo "foo hold" | dpkg --set-selections

针对您的情况,我们将暂停供应葡萄酒:

sudo -i
echo "wine hold" | dpkg --set-selections

要取消保留:

sudo -i
echo "wine install" | dpkg --set-selections

答案4

阻止软件包安装被称为“软件包保留”,操作非常简单:

回声包裹名字保持 | dpkg --set-selections

...其中 *package_name* 是您想要阻止安装的包的名称。

笔记:上述命令假定 root 权限。换句话说,您可能需要sudo su在运行它之前输入。

相关内容