提升未满足的依赖关系

提升未满足的依赖关系

我听说在 Ubuntu 上安装库很容易,所以我切换到了 Ubuntu,我尝试安装 boost,因此我写道:

sudo apt-get install libboost-all-dev

我得到了这个:

Reading package lists... Done Building dependency tree        
Reading state information... Done Some packages could not be installed. This
may mean that you have requested an impossible situation or if you are
using the unstable distribution that some required packages have not
yet been created or been moved out of Incoming. The following
information may help to resolve the situation:

The following packages have unmet dependencies:  libboost-all-dev :
Depends: libboost-python-dev but it is not going to be installed E:
Unable to correct problems, you have held broken packages.

现在我看到了典型问题为此,但正如答案所暗示的那样:

APT 是 Debian 和其他基于它的 Linux 发行版(如 Ubuntu)的软件包管理系统。在大多数情况下,APT 易于安装、删除和更新软件包。在极少数情况下,通常当您混入第三方依赖项时,apt-get 可能会向您显示错误,告诉您无法完成软件包安装。

但我怀疑我的情况是否罕见。事实上,我尝试安装 boost 的真正原因是因为我知道这应该是一件轻而易举的事,我希望在安装 openscenegraph 之前能成功使用它,而我实际上需要它。我想试试基本的东西是否有效,但它让我失望了。请帮忙,而不是针对“一般解决方案”重复关闭我的问题,我试过了,但在某些时候我不知道回答者在说什么,即:

禁用/删除/清除 PPA:

PPA(个人软件包存档)是托管在 Launchpad 上的存储库。您可以使用 PPA 安装或升级官方 Ubuntu 存储库中没有的软件包。

未满足依赖关系的最常见原因之一是 PPA,尤其是在用于升级 Ubuntu 存储库中的现有软件包时。要解决此问题,您可以使用三项选项、禁用、清除(恢复为 Ubuntu 存储库中的原始软件包)或删除 PPA。

我的具体问题是这样的:

我今天已经安装了 Ubuntu 12.04 LTS。我安装了 codeblocks、g++、build-essentials,没有问题。

我试过了sudo apt-get install openscenegraph,它可能已经起作用了,尽管我无法在硬盘上找到头文件(也许我应该下载openscenegraph-dev(但它不存在))

因此我选择安装 boost 来查看这个包安装程序是否首先起作用,然后我得到了上面粘贴的内容(未满足的依赖项)。

为什么它不起作用以及我怎样才能让它起作用?

编辑:

apt-cache madison libboost-python-dev

返回:

libboost-python-dev |   1.48.0.2 | http://archive.ubuntu.com/ubuntu/precise/main amd64 Packages

答案1

sudo aptitude install libboost-all-dev

使用 aptitude 而不是 apt-get 可能会为您提供一些自动解决方案来删除冲突的包。

答案2

未满足依赖关系的问题之一就是当依赖应用程序有自己的依赖项而无法安装时。这就是这种情况。

问题libboost-python-dev在于libboost-python1.46-dev。但是没有尝试安装。

packages.ubuntu.com

因此,要安装libboost-python-dev,您也应该安装libboost-python1.46-dev

因此运行:

sudo apt-get install libboost-all-dev libboost-python-dev libboost-python1.46-dev

** 您可以安装openscenegraph-dev-开源项目经过 :

sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libopenscenegraph80 libopenthreads-dev libopenscenegraph-dev 

答案3

我自己也遇到了这个问题。我安装了“libboost1.48-dev”,这和你的情况类似,你安装了“libboost1.48-python-dev”。

  • 您要安装libboost1.48-all-dev,而不是libboost-all-dev。后者是 1.46 版本,与您已安装的 不兼容libboost1.48-python-dev

  • 或者,如果您想退回到 v1.46,您可以卸载libboost1.48-python-dev并安装。libboost-all-dev

相关内容