【发布时间】:2016-09-28 00:27:37
【问题描述】:
我现在意识到 Go 将源代码的绝对路径保存在二进制文件中,以便打印堆栈跟踪等。我不想完全删除这些信息,但是,这也意味着每个构建相同程序的开发人员都会生成具有不同校验和的可执行文件。在我尝试使用 chroot 或类似的东西重新实现构建之前:有没有办法告诉 Go 不要为此使用绝对路径?
【问题讨论】:
-
发布二进制文件应该构建在一个一致的、可重现的环境中,一开始就没有个人信息。一旦你这样做了,GOPATH 的文本就不再重要了。
-
@JimB 我也需要它用于开发人员的构建。创建 99.99% 相似的工件 50 多次是没有意义的,只是为了让开发人员在堆栈跟踪中看到他们的用户名。
-
无论如何,一旦您有了创建一致构建的方法,这将成为一个有争议的问题。目前没有办法从文件名中删除 GOPATH 值(有一个未解决的问题 golang.org/issue/3467,但没有人优先考虑)。
-
@JimB 说真的,我不是在问你如何运行我的构建......你不知道原因和情况,不需要猜测我。我问了一个非常具体的问题。你知道这是不可能的:请将其作为答案发布,我会接受。
标签: go build stack-trace