【问题标题】:How do I package up go code as an arm RPM?如何将 go 代码打包为 arm RPM?
【发布时间】:2020-10-27 21:50:35
【问题描述】:

我有一个在 OSX 上构建的 go 项目。我已经通过使用 docker 运行 linux 编译器和 GOARCH=arm64 来生成 arm 代码,为 arm linux 编译了它。现在我想把它打包成一个 RPM。

问题是我不知道如何让 rpmbuild 给我一个 arm 包。我试过设置--target arm--target arm64--target arm-test-linux--target arm64-test-linux

都产生相同的结果,

file project.arm.rpm => project.arm.rpm: RPM v3.0 bin noarch

如何让它识别架构而不是生成 noarch rpm?

【问题讨论】:

    标签: arm cross-compiling rpm rpmbuild


    【解决方案1】:

    在您的规范文件中使用BuildArch 选项:

    BuildArch: arm64
    

    【讨论】:

      【解决方案2】:
      rpmbuild -bs project.spec
      

      这将创建project.src.rpm。然后:

      sudo dnf install qemu-user-static
      mock -r fedora-33-aarch64 project.src.rpm
      

      将使用此功能:https://github.com/rpm-software-management/mock/wiki/Feature-forcearch 使用最新版本的 Mock,您甚至不需要指定 --forcearch,因为它会自动检测到。

      如果您省略 BuildArch,那么它将使用您用作 Mock 参数的 chroot 自动设置。

      顺便说一句,这里是关于将 Go 打包为 RPM 的一般指南。 https://docs.fedoraproject.org/en-US/packaging-guidelines/Golang/

      【讨论】:

        猜你喜欢
        • 2015-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-20
        • 1970-01-01
        • 1970-01-01
        • 2021-02-26
        • 1970-01-01
        相关资源
        最近更新 更多