构建指导
virt-awaresched支持两种方式编译构建:
方式一:基于物理机环境编译
拉取源码
git clone https://gitcode.com/openeuler/ubs-virt.git
# 进入项目目录
cd virt-awaresched构建工具链准备
sudo yum install gcc-c++ gcc cmake make -y构建
构建依赖
virt-awaresched构建依赖信息已经记录在spec文件(virt-awaresched.spec)中。
具体内容如下:
Requires: patch libvirt-devel libboundscheck安装依赖
yum命令手动安装
sudo yum install patch libvirt-devel libboundscheck -y执行构建
执行Release构建(无调试信息),产物输出到项目顶层目录的build/目录下。
shellbash build.sh执行Debug构建(包含调试信息),产物输出到项目顶层目录的build/目录下。
shellbash build.sh -D
生成rpm包
构建项目,并打包成RPM文件输出到项目顶层目录下得output/目录下。
bash build.sh package产物如下:
└── output # 打包输出文件目录
└── ubs-virt-awaresched-<version>-<release>.aarch64.rpm # virt-awaresched rpm安装包方式二:基于预编译镜像环境编译
预编译镜像中已经安装 virt-awaresched 编译构建和单元测试所需的构建工具及系统依赖,可以直接基于该镜像启动容器并执行构建或单元测试,从而减少基础环境准备工作。
下载预编译镜像
该镜像允许匿名拉取,执行:
docker pull swr.cn-north-4.myhuaweicloud.com/ubscore/ubs-virt:oe2403-v1若返回
denied或unauthorized,请向镜像仓库管理员申请读取权限后重试。
启动构建容器
执行以下命令启动容器:
docker run -it \
--name=ubs-virt \
swr.cn-north-4.myhuaweicloud.com/ubscore/ubs-virt:oe2403-v1 \
/bin/bash源码编译、单元测试不需要将宿主机的
/lib/modules等目录挂载到容器,也不需要额外的内核能力。首次构建 UT 时,构建系统会下载 GoogleTest、MockCpp 及 MockCpp ARM64 补丁,需确保容器可以访问
cmake/gtest.cmake和cmake/mockcpp.cmake中配置的下载地址。
在容器内构建
进入容器后,下载源码并执行构建:
git clone -b openEuler-24.03-LTS-SP3 \
https://gitcode.com/openeuler/ubs-virt.git \
/home/ubs-virt-src
cd /home/ubs-virt-src/virt-awaresched
bash build.sh编译完成之后,产物输出到项目顶层目录的build/目录下,与方式一的编译产物一致。
如需生成Debug版本,可执行:
bash build.sh -D如需在同一容器中运行单元测试,可执行:
bash build.sh testbash build.sh test 会完成 UT 的构建并运行全部用例,无需另行启动容器。
在容器内生成rpm包
如需生成RPM包,可执行:
bash build.sh packagebash build.sh package在执行编译的基础上,会额外将编译产物打包生成RPM安装包,产物与方式一"生成rpm包"的产物一致,输出到项目顶层目录的output/目录下,即ubs-virt-awaresched-<version>-<release>.aarch64.rpm。
遵循 木兰宽松许可证第2版(MulanPSL2)