为了账号安全,请及时绑定邮箱和手机立即绑定

`go install` 在 `go.mod` 中添加记录

`go install` 在 `go.mod` 中添加记录

Go
撒科打诨 2022-05-10 13:36:10
我对 Go 模块如何使用go install.我尝试通过执行安装(https://github.com/joho/godotenv)二进制文件go install github.com/joho/godotenv/cmd/godotenv,我发现它在go.mod. 我迷路了,因为我们没有在代码中使用这个包,并且在运行后go mod tidy它被删除(因为它不是代码)。有人可以解释一下 go 模块的预期行为吗?其次,我如何避免将它添加到go.mod我们只需要安装和执行二进制文件?谢谢。去版本:go version go1.13.4 darwin/amd64
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超8个赞

命令 go: go.mod 文件:

go 命令每次使用模块图时都会自动更新 go.mod,以确保 go.mod 始终准确反映现实并正确格式化。

go.mod当执行构建时检测到依赖项不准确时,go 工具将自动更新。

当您github.com/joho/godotenv/cmd/godotenv从您的模块安装时,此安装至少需要构建/安装有问题的包(以及它的依赖项,可传递)。

您可以安全地运行go mod tidy以撤消此“一次性”依赖项的记录。

一般来说,如果你想禁止 go 工具更新go.mod文件,你可以使用该-mod=readonly标志,但这会失败go install“can't load package: package xxx: import lookup disabled by -mod=readonly”)。您可以在此处阅读更多相关信息:Go Wiki:Go 模块:我可以控制 go.mod 何时更新以及 go 工具何时使用网络来满足依赖关系吗?

或者,如果您想避免这种情况,请在模块之外构建/安装您的工具。您可以为此使用“虚拟”模块。


查看完整回答
反对 回复 2022-05-10
  • 1 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号