如何解决如何使用go.mod强制使用特定的软件包版本?
在我的go.mod
中,我有:
...
require (
...
sigs.k8s.io/controller-runtime v0.2.0-alpha.0
)
出于某种原因,当我保存文件时,我的go.sum
被更新为包括:
sigs.k8s.io/controller-runtime v0.2.0-alpha.0 h1:WM6lus3SNU4SsMlDYvjJ5fyLsG9nW3ffb/4/FpE2ZGrtnc=
sigs.k8s.io/controller-runtime v0.2.0-alpha.0/go.mod h1:HFAsYoOh6XMV+jKF1rsUjFwrknPbowfyHEHH5fRdJMf2jMX8=
sigs.k8s.io/controller-runtime v0.6.3 h1:SBbr+inLPEKhrf87vlJtrvDcwIpm+uhDvp63Bl72xYJtoOE=
sigs.k8s.io/controller-runtime v0.6.3/go.mod h1:WlZNXcMs40++oyaQt4B7Cs2lEE5JYRs8vJUznj4aRP4N4JpdAY=
第2个,我知道它们为什么会在那里。但是,为什么软件包的最新版本(0.6.3
)也会突然出现?
运行go mod tidy
时,出现错误提示我的代码库中有2个文件指向该软件包的最新版本(0.6.3
)。我该怎么做才能在我的代码库中的go模块+中严格使用0.2.2
版本?
go mod tidy
:
<filename here> imports
sigs.k8s.io/controller-runtime/pkg/webhook/admission/builder: module sigs.k8s.io/controller-runtime@latest found (v0.6.3),but does not contain package sigs.k8s.io/controller-runtime/pkg/webhook/admission/builder
解决方法
v0.2.0-alpha.0
似乎已经是你的模块正在使用的版本,所以你不需要做任何事情来“强制”它。 (您使用的 go
命令版本可能会在出错之前错误地保存 go.sum
文件。如果使用最新版本重现 - 当前为 go1.16rc1
- 请提交问题,包含重现它的步骤,位于 https://golang.org/issue/new .)
错误消息告诉您 go
命令正在寻找丢失的包 (sigs.k8s.io/controller-runtime/pkg/webhook/admission/builder
)。
它正在检查可能包含该包的模块的最新版本,但最新版本(即 v0.6.3
,而您的模块需要 v0.2.0-alpha.0
)仍然不包含该包。
因此,go
命令本质上是在告诉您:“我缺少软件包 sigs.k8s.io/controller-runtime/pkg/webhook/admission/builder
,我无法通过升级来修复它,因为 v0.6.3
也不包含该软件包”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。