go - 如何在客户端机器上运行 Go 文件?

标签 go deployment installation

我有一个 Go 文件,我想把它提供给客户。客户应该能够在终端中使用命令执行。他们不会在他们的系统中安装 Go 语言。

如何在客户端机器上运行这个二进制文件?请帮助我。

最佳答案

Go 是一个 compiled language .您可以使用 Go 工具将您的 Go 应用程序编译为可执行二进制文件。一旦你有了可执行二进制文件,你就可以按原样运行它,不再需要/使用 Go 安装。因为 Go 是 statically linked ,所有依赖项都将被编译/链接到可执行文件中。

更具体地说:

  • 使用 go install 编译您的应用并将可执行二进制文件“安装”到您的 $GOPATH/bin 文件夹
  • 或使用 go build 编译您的应用并在当前工作目录中获取可执行二进制文件

阅读What does go build build?了解更多详情。

您只需将可执行二进制文件传递给您的客户。如果你的应用程序使用静态文件,当然你也必须传递它们,最好打包成一个压缩文件。

请注意,可执行二进制文件针对特定平台。您必须咨询您的客户,了解他打算在什么平台上运行您的应用程序,并将您的应用程序编译到该特定平台。

可以使用 GOOSGOARCH 环境变量设置目标操作系统和平台。例如,如果您的客户想要在 Windows amd64 上运行您的应用程序,您可以像这样生成 Windows amd64 可执行文件:

GOOS=windows GOARCH=amd64 go build

有关有效 GOOSGOARCH 值的列表,请参阅 How can I build for linux 32-bit with go1.6.2 .

关于go - 如何在客户端机器上运行 Go 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41587816/

相关文章:

go - 如何在 Golang 中用 div 包裹每一行?

go - 本地环境中的Go代码运行结果与go play中的运行结果不同

.net - 从 SQL Server 数据库项目生成可执行的 SQL 脚本

php - Magento:静态 block 和配置设置迁移

android - 安装 apk 后,.dex 文件位于何处?

multithreading - 在 Go 中的多线程中按 block 下载文件

time - 如何使用正确的分钟格式化 Go 中的本地时间对象?

deployment - 从不同的文件夹运行 ant exec 任务

linux - 跳过获取配置文件 'main/binary-i386/Packages'

R包长时间安装 - 源或二进制类型