尝试为XenServer 7.0制作Host sFlow

时间:2016-12-01 00:28:24

标签: linux networking makefile centos xen

我花了一整天的时间尝试使用此站点的XenServer DDK从XenServer 7.0的源(https://github.com/sflow/host-sflow/releases)创建Host sFlow 2.0.6-1:http://xenserver.org/overview-xenserver-open-source-virtualization/download.html

首先,我必须对文件hsflowd-xen.spec进行2次更改: 将第3行更改为:"版本:2.0.6" (它仍然是2.0.1) 将第20行更改为:"%setup -n hsflowd-2.0.6-1" (添加了名称,因为默认名称是错误的。)

现在我的问题是我没有xenstore.h文件。经过长时间的搜索后,我发现它在包libxen-dev(或libxen-devel)中,但我无法在任何地方找到它。

我认为最有可能的四种解决方案是: 1.(懒惰的)获取已为XenServer 7.0构建的Host sFlow的iso文件(官方站点在6.5停止构建)

  1. 设置一个包含libxen-dev及其依赖项的正确yum存储库。我甚至无法连接到官方的CentOS存储库,因为/etc/yum.repos.d/中的文件有一个错误的URL。 这是/ etc / centos-release的内容:" XenServer DDK版本7.0.0-125770c(xenenterprise)"

  2. 以某种方式设法使用' xenstore.a'而不是' xenstore.h'。我更改了src / Linux / mod_xen.c中的代码以包含' xenstore.a'而不是' xenstore.h'但是当我构建它时,它会使用旧代码创建一个新文件并忽略我的更改。我可能更改了错误的文件,因为整个代码有不同的副本。即使我确实设法包含' xenstore.a'我甚至不确定它是否会起作用。

  3. 从源代码制作xenstore。我没有尝试过,因为我只找到了旧的来源,我觉得我也错过了依赖。

  4. PS:我一般都在CentOS和Makefiles上,因此解决方案可能很明显,我只是不知道。

2 个答案:

答案 0 :(得分:0)

我终于成功地建造了它。这就是我必须一步一步做的事情:

  1. 将XenServer DDK 7.0.0导入XenCenter。

  2. 按照以下步骤扩展xvda1:https://support.citrix.com/article/CTX125405

  3. 对hsflowd-xen.spec进行以下更改:
    第3行:版本:2.0.6
    第20行:%setup -n hsflowd-2.0.6-1
    在%描述之前添加这两行:
    %define debug_package%{nil}
    %define _unpackaged_files_terminate_build 0

  4. 更改文件/etc/yum.repos.d/CentOS-Base
    更改所有" $ releasever"到" 7"。
    更改所有出现的" $ basearch"到" x86_64"。
    更改"启用= 0"到"启用= 1"为每个存储库。
    取消注释每个存储库的baseurl行。

  5. 挂载开发包(在xenserver.org下载页面上提供binpkg.iso)并在/etc/yum.repos.d/中为其添加文件
    我看起来像:
    [binpkg]
    名= CitrixXenServer7
    启用= 1
    baseURL时=文件:/// MNT / binpkg /
    gpgcheck = 0

  6. 使用Yum安装以下两个软件包(依赖项应立即正确安装):
    Xen的库,devel.x86_64
    Xen的dom0中-库-devel.x86_64

  7. 制作文件并使用本教程安装它:https://raw.githubusercontent.com/sflow/host-sflow/v2.0.4/INSTALL.XenServer

答案 1 :(得分:0)

感谢lagange,我使用XenServer 7版本更新了host-sflow项目。我还添加了一个Docker配方,因此您只需使用" ./ docker_build_on xenserver"替换所有这些步骤。请在https://github.com/sflow/host-sflow上提出问题。