gpt4 book ai didi

运行 get vs build 时的 Go 模块

转载 作者:行者123 更新时间:2023-12-01 22:27:10 27 4
gpt4 key购买 nike

我有一个使用 go 模块的项目。在那里我需要指定我依赖于一个特定的库分支(称为它),因为它有一个重要的补丁。当我运行 go get -u <my_project> ,我得到一个编译错误,这显然意味着 go 采用了主 repo,而不是 fork。

之后切换到go下载的目录,运行go build .然后,go 获取正确的版本,编译成功。

你能告诉我这可能是什么原因以及如何解决它吗?

这是获取的特定命令:

go get -u github.com/planetA/konk

依赖项是“github.com/opencontainers/runc”。对于这个依赖, go.mod包含以下内容:
replace (
github.com/opencontainers/runc => github.com/planeta/runc v1.0.0-rc9.0.20191206160324-51eabe724369
)

require (
github.com/opencontainers/runc v1.0.0-rc9.0.20191206223258-201b06374548
)

有趣的是,在以下命令序列中,第二个 go get不产生错误
go get -u github.com/planetA/konk
cd ~/go/src/github.com/planetA/konk
go build -tags seccomp
go get -u github.com/planetA/konk

最佳答案

我有一个类似的问题,我通过分离 fork 本身并制作一个单独的 repo 解决了这个问题。取决于您的用例,这也是一个更简洁的解决方案,因为您无需添加太多编辑即可使其正常工作。你可以这样做:

  • 在本地克隆 fork 存储库。
  • 如果您希望包名称与 fork 相同,请从 github/gitlab 等中删除 fork 存储库,否则您可以重命名您创建的新存储库。
  • 创建一个新的存储库并将您的内容推送到它
  • 现在去获取 github.com/myusername/mynewrepo

  • 但是如果你仍然想使用 fork here 让它工作是一个很好的引用。

    关于运行 get vs build 时的 Go 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59319100/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com