CentOS 8 安装XenServer Tools xe-guest-utilities

一、环境准备

  1. golang环境 链接: yum 安装golang环境
  2. 安装编译软件
#安装make
yum -y install gcc automake autoconf libtool make
#安装g++
yum -y install gcc gcc-c++
  1. 下载 xe-guest-utilities 链接: xe-guest-utilities

二、编译文件

#打开xe-guest-utilities所在目录
[root@zshome]# cd xe-guest-utilities-master/
[root@zs xe-guest-utilities-master]# ls
analyze.py  guestmetric  Makefile  README.md          syslog  xe-daemon  xenstoreclient
build       LICENSE      mk        security-check.sh  system  xenstore

# 编译
[root@zs xe-guest-utilities-master]# make
fatal: 不是一个 git 仓库(或者任何父目录):.git
mkdir -p /home/xe-guest-utilities-master/build/obj
go build -v -o /home/xe-guest-utilities-master/build/obj/xenstore /home/xe-guest-utilities-master/build/gobuild/./xenstore/xenstore.go
golang.org/x/sys/unix
command-line-arguments
( mkdir -p /home/xe-guest-utilities-master/build/dist ; \
  install -d /home/xe-guest-utilities-master/build/stage/etc/init.d/ ; \
  install -m 755 /home/xe-guest-utilities-master/mk/xe-linux-distribution.init /home/xe-guest-utilities-master/build/stage/etc/init.d/xe-linux-distribution ; \
  install -d /home/xe-guest-utilities-master/build/stage/usr/sbin/ ; \
  install -m 755 /home/xe-guest-utilities-master/mk/xe-linux-distribution /home/xe-guest-utilities-master/build/stage/usr/sbin/xe-linux-distribution ; \
  install -m 755 /home/xe-guest-utilities-master/build/obj/xe-daemon /home/xe-guest-utilities-master/build/stage/usr/sbin/xe-daemon ; \
  install -d /home/xe-guest-utilities-master/build/stage/usr/bin/ ; \
  install -m 755 /home/xe-guest-utilities-master/build/obj/xenstore /home/xe-guest-utilities-master/build/stage/usr/bin/xenstore ; \
  ln -sf xenstore /home/xe-guest-utilities-master/build/stage/usr/bin/xenstore-read ; \
  ln -sf xenstore /home/xe-guest-utilities-master/build/stage/usr/bin/xenstore-write ; \
  ln -sf xenstore /home/xe-guest-utilities-master/build/stage/usr/bin/xenstore-exists ; \
  ln -sf xenstore /home/xe-guest-utilities-master/build/stage/usr/bin/xenstore-rm ; \
  ln -sf xenstore /home/xe-guest-utilities-master/build/stage/usr/bin/xenstore-list ; \
  ln -sf xenstore /home/xe-guest-utilities-master/build/stage/usr/bin/xenstore-ls ; \
  ln -sf xenstore /home/xe-guest-utilities-master/build/stage/usr/bin/xenstore-chmod ; \
  ln -sf xenstore /home/xe-guest-utilities-master/build/stage/usr/bin/xenstore-watch ; \
  install -d /home/xe-guest-utilities-master/build/stage/etc/udev/rules.d/ ; \
  install -m 644 /home/xe-guest-utilities-master/mk/xen-vcpu-hotplug.rules /home/xe-guest-utilities-master/build/stage/etc/udev/rules.d/z10_xen-vcpu-hotplug.rules ; \
  cd /home/xe-guest-utilities-master/build/stage ; \
  tar zcf /home/xe-guest-utilities-master/build/dist/xe-guest-utilities_6.6.80-0_x86_64.tgz * \
)

编译后文件存在当前文件夹build/dist中

[root@zs dist]# ls
xe-guest-utilities_6.6.80-0_x86_64.tgz

三、安装

解压文件

[root@zs dist]# tar zxvf xe-guest-utilities_6.6.80-0_x86_64.tgz 
etc/
etc/init.d/
etc/init.d/xe-linux-distribution
etc/udev/
etc/udev/rules.d/
etc/udev/rules.d/z10_xen-vcpu-hotplug.rules
usr/
usr/sbin/
usr/sbin/xe-linux-distribution
usr/sbin/xe-daemon
usr/bin/
usr/bin/xenstore
usr/bin/xenstore-read
usr/bin/xenstore-write
usr/bin/xenstore-exists
usr/bin/xenstore-rm
usr/bin/xenstore-list
usr/bin/xenstore-ls
usr/bin/xenstore-chmod
usr/bin/xenstore-watch
[root@zs dist]# ls
etc  usr  xe-guest-utilities_6.6.80-0_x86_64.tgz

把文件复制到相对于目录下

[root@zs dist]# cp ./etc/init.d/* /etc/init.d/
[root@zs dist]# cp ./etc/udev/rules.d/* /etc/udev/rules.d/
[root@zs dist]# cp ./usr/bin/* /usr/bin/
[root@zs dist]# cp ./usr/sbin/* /usr/sbin/

四、设置自启动

  1. 建立服务文件
vi /lib/systemd/system/xe-linux-distribution.service  
[Unit]  
Description=xe-linux-distribution
After=network.target  
   
[Service]  
Type=forking  
ExecStart=/etc/init.d/xe-linux-distribution start  
ExecReload=/etc/init.d/xe-linux-distribution restart  
ExecStop=/etc/init.d/xe-linux-distribution stop  
PrivateTmp=true  
   
[Install]  
WantedBy=multi-user.target  

服务说明
[Unit]:服务的说明
Description:描述服务
After:描述服务类别

[Service]服务运行参数的设置

Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]服务安装的相关设置,可设置为多用户

  1. 保存文件
    以754的权限保存在目录/lib/systemd/system
chmod 754 /lib/systemd/system/xe-linux-distribution.service  
  1. 设置开机自启动,启动服务
#设置自启动
[root@zs dist]  systemctl enable xe-linux-distribution.service  
#启动服务
[root@zs dist]  systemctl start xe-linux-distribution.service  
  1. 最后,在xencenter就可以看到监控信息了
    在这里插入图片描述

五、编译问题解决

  1. cannot find package “golang.org/x/sys/unix”
[root@zs xe-guest-utilities-master]# make
/bin/sh: git: 未找到命令
mkdir -p $(dirname /home/xe-guest-utilities-master/build/gobuild/./xe-daemon/xe-daemon.go)
cat /home/xe-guest-utilities-master/./xe-daemon/xe-daemon.go | \
sed -e "s/@PRODUCT_MAJOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MINOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MICRO_VERSION@/80/g" | \
sed -e "s/@NUMERIC_BUILD_NUMBER@/0/g" \
> /home/xe-guest-utilities-master/build/gobuild/./xe-daemon/xe-daemon.go
mkdir -p $(dirname /home/xe-guest-utilities-master/build/gobuild/./syslog/syslog.go)
cat /home/xe-guest-utilities-master/./syslog/syslog.go | \
sed -e "s/@PRODUCT_MAJOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MINOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MICRO_VERSION@/80/g" | \
sed -e "s/@NUMERIC_BUILD_NUMBER@/0/g" \
> /home/xe-guest-utilities-master/build/gobuild/./syslog/syslog.go
mkdir -p $(dirname /home/xe-guest-utilities-master/build/gobuild/./system/system.go)
cat /home/xe-guest-utilities-master/./system/system.go | \
sed -e "s/@PRODUCT_MAJOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MINOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MICRO_VERSION@/80/g" | \
sed -e "s/@NUMERIC_BUILD_NUMBER@/0/g" \
> /home/xe-guest-utilities-master/build/gobuild/./system/system.go
mkdir -p $(dirname /home/xe-guest-utilities-master/build/gobuild/./guestmetric/guestmetric.go)
cat /home/xe-guest-utilities-master/./guestmetric/guestmetric.go | \
sed -e "s/@PRODUCT_MAJOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MINOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MICRO_VERSION@/80/g" | \
sed -e "s/@NUMERIC_BUILD_NUMBER@/0/g" \
> /home/xe-guest-utilities-master/build/gobuild/./guestmetric/guestmetric.go
mkdir -p $(dirname /home/xe-guest-utilities-master/build/gobuild/./guestmetric/guestmetric_linux.go)
cat /home/xe-guest-utilities-master/./guestmetric/guestmetric_linux.go | \
sed -e "s/@PRODUCT_MAJOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MINOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MICRO_VERSION@/80/g" | \
sed -e "s/@NUMERIC_BUILD_NUMBER@/0/g" \
> /home/xe-guest-utilities-master/build/gobuild/./guestmetric/guestmetric_linux.go
mkdir -p $(dirname /home/xe-guest-utilities-master/build/gobuild/./xenstoreclient/xenstore.go)
cat /home/xe-guest-utilities-master/./xenstoreclient/xenstore.go | \
sed -e "s/@PRODUCT_MAJOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MINOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MICRO_VERSION@/80/g" | \
sed -e "s/@NUMERIC_BUILD_NUMBER@/0/g" \
> /home/xe-guest-utilities-master/build/gobuild/./xenstoreclient/xenstore.go
mkdir -p /home/xe-guest-utilities-master/build/obj
go build -v -o /home/xe-guest-utilities-master/build/obj/xe-daemon /home/xe-guest-utilities-master/build/gobuild/./xe-daemon/xe-daemon.go
_/home/xe-guest-utilities-master/build/gobuild/system
_/home/xe-guest-utilities-master/build/gobuild/xenstoreclient
_/home/xe-guest-utilities-master/build/gobuild/syslog
_/home/xe-guest-utilities-master/build/gobuild/guestmetric
command-line-arguments
mkdir -p $(dirname /home/xe-guest-utilities-master/build/gobuild/./xenstore/xenstore.go)
cat /home/xe-guest-utilities-master/./xenstore/xenstore.go | \
sed -e "s/@PRODUCT_MAJOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MINOR_VERSION@/6/g" | \
sed -e "s/@PRODUCT_MICRO_VERSION@/80/g" | \
sed -e "s/@NUMERIC_BUILD_NUMBER@/0/g" \
> /home/xe-guest-utilities-master/build/gobuild/./xenstore/xenstore.go
mkdir -p /home/xe-guest-utilities-master/build/obj
go build -v -o /home/xe-guest-utilities-master/build/obj/xenstore /home/xe-guest-utilities-master/build/gobuild/./xenstore/xenstore.go
build/gobuild/xenstore/xenstore.go:7:2: cannot find package "golang.org/x/sys/unix" in any of:
	/usr/lib/golang/src/golang.org/x/sys/unix (from $GOROOT)
	/root/go/src/golang.org/x/sys/unix (from $GOPATH)
make: *** [Makefile:78:/home/xe-guest-utilities-master/build/obj/xenstore] 错误 1

解决方式
在github上找到对应的包下载,https://github.com/golang?page=1
本次提示缺少sys,下载地址https://github.com/golang/sys。

mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/sys.git

如果git无法下载,请用浏览器下载后,再上传到$GOPATH/src/golang.org/x目录即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值