在Centos7中需要Boost-Libboost(ContexBroker)

4

我正在尝试在CentOS 7上安装ContextBroker:

sudo rpm -i contextBroker-0.14.1-1.X86_64.rpm

但我遇到了下一个错误:
error: Failed dependencies:

libboost_filesystem-mt.so.5()(64bit) is needed by contextBroker-0.14.1-1.x86_64

libboost_system-mt.so.5()(64bit) is needed by contextBroker-0.14.1-1.x86_64

libboost_thread.so.5()(64bit) is needed by contextBroker-0.14.1-1.x86_64

到目前为止,我认为解决方案很清楚,让我们安装:

sudo yum install boost boost-devel boost-doc 

但是它没有起作用,Centos7给了我相同的错误。
然后我想也许需要静态版本,因为错误与libboost有关而不是直接与boost有关(我不知道这是否是一个好的假设),但我尝试过了,它没有起作用,Centos7仍旧给了我相同的错误。
问题在于我能找到那些文件,但我不知道如何给rpm提供依赖关系。如果不可能,我尝试安装以下软件包:
sudo rpm -i boost-1.53.0-18.el7.x86_64.rpm

但是为了能够安装以下两个程序包,我必须使用yum安装boost-devel,因为当我尝试安装boost-devel.1.53.0-18.el7.x86_64.rpm时,我缺少了许多依赖项。

sudo rpm -i boost-static-1.53.0-18.el7.i686.rpm 
(编辑。扩展名.i686是32位的,因此不需要此软件包。)
sudo rpm -i boost-static-1.53.0-18.el7.x86_64.rpm

结果还是一样的..所以我有两个问题:
1.请问有人能告诉我缺少的boost rpm名称或者提供链接吗?这个rpm不允许我直接安装boost-devel。
2.在Centos7中安装所有boost rpm软件包的正确顺序是什么?
谢谢!
编辑:我发现系统中文件的扩展名为.so.1.53.0,并且rpm要求的依赖关系的扩展名为.so.5()(64bit)。难道这个rpm正在寻找特定版本的依赖关系吗?
2个回答

2

以下是我在CentOS 6.5 x64上所做的内容:

1. 获取RPM软件包。

 wget --no-check-certificate https://forge.fi-ware.org/frs/download.php/1502/contextBroker-0.15.0-1.x86_64.rpm

因为需要依赖项(在https://forge.fi-ware.org/plugins/mediawiki/wiki/fiware/index.php/Publish/Subscribe_Broker_-_Orion_Context_Broker_-_Installation_and_Administration_Guide#Requirements中列出),所以我们需要安装EPEL(请参见http://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F),只需运行以下命令:

yum install epel-release

然后安装每个依赖项:

yum install boost-filesystem
yum install boost-thread
yum install libmicrohttpd
yum install logrotate

那么
rpm -i contextBroker-0.15.0-1.x86_64.rpm

这对我有用。希望能帮到你。


谢谢您的回复,但它还是不起作用。我已经安装了所有这些软件包。然而,为了再给它一次机会,我卸载并重新安装了这些软件包...但结果仍然是一样的。 - chuseuiti
这个线程讨论的是Centos 7。我作为OP正在使用它,但这并不能解决依赖关系。 - lilezek

2

最终我已经成功解决了依赖问题。

ContextBroker依赖于Centos 6版本的旧版boost包,因此要在Centos7中安装ContextBroker,您必须从系统中删除最新版本的boost(对我来说,这个解决方案不是问题,因为在我的情况下,我使用虚拟机专门使用contextBroker,但这可能会成为其他使用相应版本Centos7 boost的软件包依赖项的真正问题):

sudo yum remove boost boost-devel boost-system boost-filesystem boost-thread

接下来需要下载和安装旧版本的软件包:

sudo rpm -Uvh boost-thread-1.41.0-25.el6.x86_64.rpm
sudo rpm -Uvh boost-system-1.41.0-25.el6.x86_64.rpm
sudo rpm -Uvh boost-filesystem-1.41.0-25.el6.x86_64.rpm

然后可以安装ContextBroker:

sudo rpm -i context-0.15.0-1.x86_64.rpm

我希望这能帮助新的contextBroker用户!

我在哪里可以获取那些rpm包?我已经尝试过rpm.pbone.net,但是他们FTP文件的链接都失效了。 - lilezek
在这里,您可以获取上下文代理 http://repositories.lab.fiware.org/repo/rpm/6/x86_64/,而在这里,您可以找到其他的 http://rhnproxy1.uvm.edu/pub/redhat/rhel6-x86_64/install/Packages/。 - chuseuiti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接