如何将银河麒麟v11源码(cri-o)编译成rpm包的详细步骤操作?

摘要:银河麒麟v11源码编译为rpm包全流程详解 很多小伙伴在银河麒麟高级服务器操作系统v11下部署服务时还是习惯于使用rpm包部署,即简单,又快捷,但是kylinos v11默认的base和update源中又没有我们项目中所需服务指定版本的rp
银河麒麟v11源码编译为rpm包全流程详解 很多小伙伴在银河麒麟高级服务器操作系统v11下部署服务时还是习惯于使用rpm包部署,即简单,又快捷,但是kylinos v11默认的base和update源中又没有我们项目中所需服务指定版本的rpm包,这时就需要考虑自己制作rpm包,来实现rpm包自由。 准备工作 在kylinos v11中进行rpm打包与v10的流程基本一致,都是通过rpmbuild来完成。 本次我们使用比较常见的容器服务cri-o 1.35.0版本来进行演示,首先将构建前的准备工作完成。 下载cri-o源码 https://github.com/cri-o/cri-o/archive/refs/tags/v1.35.0.zip 安装编译环境 安装golang 因为cri-o为golang编写,且v1.35.0所使用的golang版本为1.25.0,v11 yum源中并无此版本的golang环境,所以本次采用二进制安装的方式。 根据你的架构,下载golang二进制包:https://go.dev/dl/go1.25.0.linux-amd64.tar.gz 解压:tar -C /usr/local -xzf go1.25.0.linux-amd64.tar.gz 配置环境变量 vim ~/.bashrc # Go 安装路径(默认) export GOROOT=/usr/local/go # 可执行文件加入系统 PATH export PATH=$PATH:$GOROOT/bin # 工作区(存放源码、编译二进制、依赖) export GOPATH=$HOME/go # 模块缓存路径 export GOCACHE=$HOME/.cache/go-build # 国内模块代理(必配,否则下载依赖极慢) export GOPROXY=https://goproxy.cn,direct # 启用 Go Modules(1.16+ 默认开启) export GO111MODULE=on 生效配置:source ~/.bashrc 在工作区下创建对应目录 cd $HOME/go mkdir src bin pkg # src/:源码 # bin/:编译后的可执行文件 # pkg/:依赖包缓存 使用go version、go env来检查配置是否正确 安装编译cri-o所需依赖 yum install -y \ containers-common \ git \ make \ glib2-devel \ glibc-devel \ glibc-static \ crun go get github.com/cpuguy83/go-md2man yum install -y \ libassuan \ libassuan-devel \ libgpg-error \ libseccomp-devel \ libselinux \ pkgconf-pkg-config \ gpgme-devel \ 安装rpmbuild等打包环境 yum install -y rpm-build rpmdevtools brp-chrpath 开始制作 准备工作完毕后,进入制作阶段。
阅读全文