“无法找到任何包”-Ubuntu 上 Boost 的错误

“无法找到任何包”-Ubuntu 上 Boost 的错误

问题

我尝试使用以下命令安装 Boost 版本 1.55(我的程序需要此特定版本):

sudo apt-get install libboost1.55-all-dev

但它一直给我错误信息:

Reading package lists... Done
Building dependency tree Reading state
information... Done
E: Unable to locate package libboost1.55-all-dev
E: Couldn't find any package by glob 'libboost1.55-all-dev'
E: Couldn't find any package by regex 'libboost1.55-all-dev'

我尝试过

这个问题建议尝试:

sudo add-apt-repository universe
sudo apt-get update
sudo apt-get install libboost-all-dev

但是,我仍然收到同样的错误。


这个问题建议尝试:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager    
sudo apt-get update    
sudo apt-get install y-ppa-manager

但是,这只给了我以下错误,我找不到解决方法:

The following packages have unmet dependencies:
 y-ppa-manager : Depends: yad (>= 0.36.0) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

这个问题建议尝试使用 apt-file 来搜索安装所需的软件包,但是当我运行搜索命令时没有任何内容显示。


问题

该问题的可能原因及解决方案是什么?

答案1

问题的原因假设 Ubuntu 存储库是全面的并且保留了较旧的软件。

事实上,Ubuntu 是一个“快照”发行版。在发布过程中,只包含所有可用软件的最新稳定快照。旧版本不包含在内。

可能的解决方案

1)如果源可用,您可以根据当前依赖项重新编译。

2)Libboost1.55 在某些旧版本的 Ubuntu 中可用。

$ rmadison libboost1.55-dev
libboost1.55-dev | 1.55.0-1             | trusty/universe | amd64, arm64, armhf, i386, powerpc, ppc64el
libboost1.55-dev | 1.55.0+dfsg-3ubuntu2 | vivid           | amd64, arm64, armhf, i386, powerpc, ppc64el

你的最安全、最简单的解决方案是将 Ubuntu 14.04 安装到虚拟机中,以便安全地运行您的软件,而不会破坏您当前的系统。

有人可能会建议替代:降级 libboost(在 16.04 系统上安装 14.04 软件包)。但是,对于非高级用户来说,这可能很困难且危险。我有 12 年摆弄软件包和软件包管理器的经验,我不会这么做。

让系统恢复工作状态

卸载您在失败尝试期间安装的那些软件包。删除那些源。您的尝试引入了版本冲突(这就是“持有损坏的软件包”的意思)。您的软件包管理器已损坏。在修复它之前,您无法安装、卸载或更新您的系统(包括安全更新)。

相关内容