我花了一整天的时间尝试使用此站点的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停止构建)
设置一个包含libxen-dev及其依赖项的正确yum存储库。我甚至无法连接到官方的CentOS存储库,因为/etc/yum.repos.d/中的文件有一个错误的URL。 这是/ etc / centos-release的内容:" XenServer DDK版本7.0.0-125770c(xenenterprise)"
以某种方式设法使用' xenstore.a'而不是' xenstore.h'。我更改了src / Linux / mod_xen.c中的代码以包含' xenstore.a'而不是' xenstore.h'但是当我构建它时,它会使用旧代码创建一个新文件并忽略我的更改。我可能更改了错误的文件,因为整个代码有不同的副本。即使我确实设法包含' xenstore.a'我甚至不确定它是否会起作用。
从源代码制作xenstore。我没有尝试过,因为我只找到了旧的来源,我觉得我也错过了依赖。
答案 0 :(得分:0)
我终于成功地建造了它。这就是我必须一步一步做的事情:
将XenServer DDK 7.0.0导入XenCenter。
按照以下步骤扩展xvda1:https://support.citrix.com/article/CTX125405
对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
更改文件/etc/yum.repos.d/CentOS-Base
更改所有" $ releasever"到" 7"。
更改所有出现的" $ basearch"到" x86_64"。
更改"启用= 0"到"启用= 1"为每个存储库。
取消注释每个存储库的baseurl行。
挂载开发包(在xenserver.org下载页面上提供binpkg.iso)并在/etc/yum.repos.d/中为其添加文件
我看起来像:
[binpkg]
名= CitrixXenServer7
启用= 1
baseURL时=文件:/// MNT / binpkg /
gpgcheck = 0
使用Yum安装以下两个软件包(依赖项应立即正确安装):
Xen的库,devel.x86_64
Xen的dom0中-库-devel.x86_64
制作文件并使用本教程安装它: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上提出问题。