我如何告诉更新管理器不要更新软件包?

我如何告诉更新管理器不要更新软件包?

我使用的是 10.04,并安装了 Virtualbox 3.2.10(不是 ose,而是 Oracle 的 .deb 文件)。它依赖于 libqt4-opengl,而后者又依赖于 qt 版本 4.6,但更新管理器希望更新到 qt 4.7 并删除 Virtualbox。

我该如何阻止它这样做以便我可以获得其余的更新?

答案1

回答这个问题-这是你的shell的命令:

echo "libqt4-opengl hold" | dpkg --set-selections

并将其恢复为可更新状态:

echo "libqt4-opengl install" | dpkg --set-selections

代替libqt4-opengl如果我猜错了,请使用您的包裹名称。

答案2

为什么你不将它与基于 Debian 的 Linux 发行版一起安装,这样会更好、更安全,请按照符合你的 ubuntu 发行版的步骤进行操作:

http://www.virtualbox.org/wiki/Linux_Downloads

答案3

您可以使用 aptitude 来保存特定的软件包版本,操作如下:

aptitude install <package>=<version>

这将使该版本的软件包处于暂停状态。要恢复,只需执行

aptitude unhold <package>

答案4

更新管理器倾向于自行处理并让您了解最新的软件包。我还没有弄清楚如何让更新管理器将软件包保留在原处,因此我使用 apt-get 将软件包“固定”到特定版本。注意 - 所有软件包管理系统都倾向于以不同的方式执行此操作,因此您必须选择一个软件包管理器并坚持使用它。

首先,安装您想要的软件包版本。

接下来,使用 apt-cache policy 查看您正在使用的版本:

$$ apt-cache policy xterm
xterm:
  Installed: 241-1ubuntu1
  Candidate: 241-1ubuntu1
  Version table:
 *** 241-1ubuntu1 0
        500 http://us.archive.ubuntu.com jaunty/main Packages
        100 /var/lib/dpkg/status

最后,编辑 /etc/apt/policies 并为你的软件包添加一个条目:

Package: xterm
Pin: version 241*
Priority: 1001

现在你可以运行:

$sudo apt-get update
$sudo apt-get upgrade

并且您的软件包将保留当前版本。如果您想要覆盖此操作,请使用 dist-upgrade:

$sudo apt-get dist-upgrade

相关内容