【问题标题】:How to package go project for homebrew如何为自制程序打包 Go 项目
【发布时间】:2015-01-21 16:52:13
【问题描述】:

我们正在开发runscripts 并尝试支持brew install runscripts 之类的东西。

它是用 golang 编写的,并且有一些需要 go get 的依赖项。现在我不知道要编写公式来设置 GOPATH 并运行 go get。我们的项目可以编译成二进制文件,但我们需要run --init 来安装它。

谁能帮忙举一个关于 Go 项目的自制公式的例子?

【问题讨论】:

标签: go package formula homebrew


【解决方案1】:

forkhomebrew,看Library/Formula/consul.rb的内容。您不需要手动生成所有资源。使用homebrew-go-resources。更完整的介绍可以在here找到。

【讨论】:

    【解决方案2】:

    我参考了termshare.rb,看来我们可以简单地使用go get,homebrew 会为我们处理有关GOPATH 的任何事情。

    太好了,我想我的问题已经解决了。

    【讨论】:

    【解决方案3】:

    我能找到的最好的方法是如何将 docker-swarm 添加到 brew 中:https://github.com/Homebrew/homebrew/blob/4c6857b0e337b2d5afd49dcf7209b6b5091709f4/Library/Formula/docker-swarm.rb

    它相对干净且易于遵循。

    【讨论】:

      【解决方案4】:

      您可以使用 goreleaser 自动生成公式:https://goreleaser.com/customization/homebrew/

      【讨论】:

        【解决方案5】:

        这是一个可能的解决方法,可以在结帐中创建一个build 目录作为GOPATH

        ...
        def install
            system "mkdir -p build/src"
            system "ln -s `pwd` build/src/repo"
            system "GOPATH=`pwd`/build go get repo/mytool"
            bin.install "build/bin/mytool"
            ...
        end
        ...
        

        【讨论】:

        • 很好奇为什么这被否决了。它最终对我有用。
        猜你喜欢
        • 2020-11-15
        • 2013-02-12
        • 1970-01-01
        • 2021-07-23
        • 2019-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多