我们可以采取以下两种方式打包rpm包:
- 直接把源码包放到打包路径的SOURCES目录下
- 把应用编译成二进制文件放到打包路径的BUILDROOT目录下
本文采用第二种方式
系统环境
OS版本:Centos7.5
Go版本:go-1.12.9
环境依赖
安装打包软件1yum install rpmdevtools
打包
准备打包目录
|
|
会在当前用户home目录下生成如下目录:1234567--rpmbuild/ --BUILD/ --BUILDROOT/ --RPMS/ --SOURCES/ --SRPMS/ --SPECS/
rpmbuild/SOURCES 是用于放置源文件压缩包的(eg: *.tar.gz), rpmbuild/BUILD 源文件会解压到当前目录, rpmbuild/BUILD 放置编译后的二进制文件, rpmbuild/RPMS 放置生成的rpm包, rpmbuild/SRPMS 放置生成的包含源码的rpm包, rpmbuild/SPECS 放置编译文件
我们通过编辑rpmbuild/SPECS/ 下的配置文件,然后执行如下命令生成rpm包:
|
|
生成二进制文件
到我们应用放置main包的目录,执行:1go build main.go // 如果有多个go文件,有依赖的都需要加上:go build main.go version.go, 否则会报错
然后把生成的二进制文件放置到: rpmbuild/BUILDROOT/ 目录下
编辑spec文件
|
|
设置启动文件
|
|
打包
|
|
然后再RPMS/ 目录下会看到生成的rpm文件
注意事项
- 不同的操作系统生成的二进制文件不同,不能混淆(Mac下编译的二进制,在Centos下不能使用)