【问题标题】:Upgrading golang through modules通过模块升级golang
【发布时间】:2020-03-14 11:24:25
【问题描述】:

我正在通过 golang 模块升级我的项目依赖项。然

mod init

命令并遇到此问题,不知道如何解决。

$ go mod init 
go: creating new go.mod: module github.com/GoogleContainerTools/kaniko
go: copying requirements from Gopkg.lock
go: converting Gopkg.lock: stat github.com/google/go-github@v18.2.0: github.com/google/go-github@v18.2.0: invalid version: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v18

无效版本:模块包含 go.mod 文件,因此主版本必须兼容:应该是 v0 或 v1,而不是 v18

更新:

removed Gopkg.toml
go mod init
go build
fixed some dependencies related to HighwayHash
finally stuck on below error
go: github.com/moby/buildkit@v0.6.3 requires
        github.com/containerd/containerd@v1.3.0-0.20190507210959-7c1e88399ec0: invalid pseudo-version: version before v1.3.0 would have negative patch number

【问题讨论】:

  • 你在没有 Gopkg.lock 的情况下试过这个吗?
  • 你的意思是我应该删除 goplkg.lock 然后尝试 go mod init?
  • 是的,这就是我会尝试的。看起来那个模块已经是 v28 了。
  • 'go get -u' 是什么意思?
  • 看来是大写问题。您可能需要将包含路径更改为highwayhash,但我自己从未见过,所以我可能错了。

标签: go go-modules


【解决方案1】:

您使用的containerd 提交似乎有问题。您可以将其替换为有效的 containerd 版本或提交。

您可以通过将以下部分添加到您的 go.mod 文件来实现此目的。

replace (
    github.com/containerd/containerd v1.3.0-0.20190507210959-7c1e88399ec0 => github.com/containerd/containerd v1.3.0
)


如果你想在你的项目中获得最近的变化,你可以使用下面的而不是前面的部分。

replace (
    github.com/containerd/containerd v1.3.0-0.20190507210959-7c1e88399ec0 => github.com/containerd/containerd v1.3.1-0.20191118201915-499f346be357
)

参考:https://github.com/containerd/containerd/issues/3031#issuecomment-541737892

【讨论】:

  • 除了 containerd 是 moby/buildkit 的依赖,而不是来自提问者的项目。尝试使用go get -u 更新所有内容。
【解决方案2】:

2020 年 11 月更新,来自 issue 3031containerd/cri PR1377

go mod init 现在应该可以工作了。 github.com/containerd/containerd 的迁移模块已完成。

go.mod 看起来很完整:

模块 github.com/containerd/containerd

go 1.15

require (
        github.com/BurntSushi/toml v0.3.1
        github.com/Microsoft/go-winio v0.4.15-0.20200908182639-5b44b70ab3ab
        github.com/Microsoft/hcsshim v0.8.10
        ...

2021 年 1 月更新:containerd/containerd issue 3031 刚刚完成 PR 4760“移动到 Go 模块”。

2020 年 12 月的Commit fbf1a72 包含所有详细信息,brand new go.mod

【讨论】:

    猜你喜欢
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    相关资源
    最近更新 更多