如何将go代码打包为arm RPM?
我有一个go项目,我正在OSX上构建。我使用docker运行linux编译器并使用GOARCH=arm64生成arm代码,从而为arm linux编译了它。现在我想把它打包成RPM 问题是我不知道如何让rpmbuild给我一个arm包。我已尝试设置如何将go代码打包为arm RPM?,arm,cross-compiling,rpm,rpmbuild,Arm,Cross Compiling,Rpm,Rpmbuild,我有一个go项目,我正在OSX上构建。我使用docker运行linux编译器并使用GOARCH=arm64生成arm代码,从而为arm linux编译了它。现在我想把它打包成RPM 问题是我不知道如何让rpmbuild给我一个arm包。我已尝试设置--target arm,--target arm64,--target arm test linux,以及--target arm64 test linux 所有这些都会产生相同的结果 文件project.arm.rpm=>project.arm.r
--target arm
,--target arm64
,--target arm test linux
,以及--target arm64 test linux
所有这些都会产生相同的结果
文件project.arm.rpm
=>project.arm.rpm:rpm v3.0 bin noarch
如何让它识别体系结构而不是生成noarch rpm?使用spec文件中的
BuildArch
选项:
BuildArch: arm64
这将创建project.src.rpm
。然后:
sudo dnf install qemu-user-static
mock -r fedora-33-aarch64 project.src.rpm
哪个将使用此功能:
对于最新版本的Mock,您甚至不需要指定自动检测到的--forcearch
如果省略BuildArch
,那么它将使用您用作Mock参数的chroot自动设置
顺便说一句,这里是关于包装作为RPM的一般指导
sudo dnf install qemu-user-static
mock -r fedora-33-aarch64 project.src.rpm