在玩了 go
工具一段时间后,它看起来像 go get
:
- (可选)下载,
- 编译,
- 并安装
一个软件,而 go install
只是
- 编译
- 并安装
它。在这种情况下,为什么 go install
命令存在,因为 go get
取代它?
原文由 thiagowfx 发布,翻译遵循 CC BY-SA 4.0 许可协议
在玩了 go
工具一段时间后,它看起来像 go get
:
一个软件,而 go install
只是
它。在这种情况下,为什么 go install
命令存在,因为 go get
取代它?
原文由 thiagowfx 发布,翻译遵循 CC BY-SA 4.0 许可协议
go get
按照这个顺序做了两件主要的事情:
下载并保存在 $GOPATH/src/<import-path>
导入路径中命名的包(源代码)及其依赖项,然后
执行一个 go install
-d
标志( go get -d
)指示 go get
下载包后停止;也就是说,它指示 go get
不要做 go install
区别:
go get
// 验证是否需要下载包,如果需要下载然后编译
go install
// 跳过包下载部分,直接编译(如果缺少任何包会抛出错误)
关于 GOPATH
环境变量
Go 工具使用 GOPATH
环境变量。必须设置它才能 get
, build
和 install
包,它指定你的工作空间的位置它可能是您在开发 Go 代码时需要设置的唯一环境变量。
同样, GOPATH
不应指向 Go 安装,而是指向您的工作区。
例如,在 Windows 上,如果您决定您的工作区位于 c:\gowork\
,则需要将 GOPATH
值设置为 c:\gowork
Your source code should be at c:\gowork\src\<some project folder>\
and after you run go get
at command prompt from within c:\gowork\src\<some project folder>\
you will see the c:\gowork\bin\
and c:\gowork\pkg\
正在创建。
原文由 Alex Baban 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答2k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
go install
在本地工作时是工作流程的一部分。假设您想使用一个库,但由于某种原因需要进行更改。你会这样做:go get -d library
,只下载它;go install library
安装本地版本。据我所知
go get
没有标志表明它 不 应该下载,所以它不能替换go install
在这里。当您从头开始开发新包时,会使用相同的工作流程。
编辑:六年后,Go 1.16 更新并阐明了
go install
和go get
的用法: https ://tip.golang.org/doc/go1.16#modules