如果我有一个编译好的 Golang 程序,我想安装它,以便我可以在计算机上的任何位置使用 bash 命令运行它,我会怎么做?比如在nodejs中
npm install -g express
安装 express 以便我可以运行命令
express myapp
并且 express 将在我当前的目录中为名为“myapp”的节点应用程序生成一个文件目录。是否有等效的命令?我相信现在使用“go install”命令,您必须在包含可执行文件的目录中才能运行它
提前致谢!
最佳答案
更新:如果您使用的是 Go 1.16,此答案仍然有效,但 go install
已更改,现在是安装可执行包的推荐方法。有关解释,请参阅 Karim 的回答:https://stackoverflow.com/a/68559728/10490740
使用 Go >= 1.11,如果您的当前目录位于基于模块的项目中,或者您在环境中设置了 GO111MODULE=on
,则 go get
将不要“全局”安装软件包。它会将它们添加到您项目的 go.mod 文件中。
从 Go 1.11.1 开始,设置 GO111MODULE=off
可以规避这种行为:
GO111MODULE=off go get github.com/usr/repo
基本上,通过禁用此单个命令的模块功能,它将按预期安装到 GOPATH。
不使用模块的项目仍然可以go get
正常安装二进制文件到$GOPATH/bin
。
有一个冗长的对话和记录了关于这种行为变化的多个问题,从这里分支:golang/go - cmd/go: go get should not add a dependency to go.mod #27643 .
关于Golang 相当于 npm install -g,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36650052/