Golang 相当于 npm install -g

标签 go npm bin npm-install goinstall

如果我有一个编译好的 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/

相关文章:

Go 函数解密

node.js - 当我 sudo npm install exec-sync 发生时

javascript - npm 无法安装 scrypt。 Node gyp 重建

python - XOR bin 值时缺少 0

go - 如何停止/完成 goroutine

go - golang如何实现像c(gcc buildin)一样的__sync_fetch_and_add?

azure - 去 + azure : Calling a method return undefined

reactjs - 无法创建 react ,中止安装 yarnpkg add --exact react react-dom react-scripts cra-template has failed

bundle - 如何恢复我的 Rails 5 binstub?

gcc - cygwin gcc/g++ 编译器的 include、bin 和 lib 目录