我使用的是 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 发行版的步骤进行操作:
答案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