我花了一整天的时间,试图从XenServer 7.0的源代码(https://github.com/sflow/host-sflow/releases)中使用该站点的XenServer DDK制作主机sFlow 2.0.6-1:http://xenserver.org/overview-xenserver-open-source-virtualization/download.html
首先,我必须对hsflowd-xen.spec文件进行两处更改:
将第3行改为:“版本:2.0.6”(仍然是2.0.1)
将第20行更改为:“%setup-n hsflowd-2.0.6-1”(添加了名称,因为默认名称错误)。
现在我的问题是我没有xenstore.h文件。经过长时间的搜索,我发现它在libxen dev(或libxen devel)包中,但我在任何地方都找不到它的依赖项。
我认为最可能的四个解决方案是:
一。(懒惰者)获取已经为XenServer 7.0构建的主机sFlow的iso文件(官方站点在6.5停止构建)
设置一个包含libxen dev及其依赖项的正确的yum存储库。因为/etc/yum.repos.d/中的文件有一个错误的URL,我甚至无法连接到CentOS的官方存储库。
这是/etc/centos版本的内容:“XenServer DDK 7.0.0-125770c(xenenterprise)”
以某种方式设法使用“xenstore.a”而不是“xenstore.h”。我更改了src/Linux/mod_xen.c中的代码,使其包含“xenstore.a”而不是“xenstore.h”,但在构建时,它会用旧代码创建一个新文件,并忽略我的更改。我可能更改了错误的文件,因为整个代码有不同的副本。我甚至不确定它是否能工作,即使我设法包括“xenstore.a”。
从源头上制造xenstore。我没有尝试,因为我只找到了旧的来源,我想我也会错过依赖。
PS:我是CentOS的n00b,一般是Makefiles,所以解决方案可能很明显,我只是不知道。
最佳答案
感谢lagange,我用一个XenServer 7版本更新了主机sflow项目。我还添加了一个Docker配方,这样您就可以用“/Docker_build_on xenserver”替换所有这些步骤。请就https://github.com/sflow/host-sflow提出问题。