gpt4 book ai didi

go - 如何找到导致 "Sirupsen/logrus"与 "sirupsen/logrus"意外模块路径错误的依赖项?

转载 作者:IT王子 更新时间:2023-10-29 02:06:55 26 4
gpt4 key购买 nike

我正在尝试转换 https://github.com/appscode/voyager从 glide 到 go mod。

我收到如下错误:

go: github.com/Sirupsen/logrus@v1.4.1: parsing go.mod: unexpected module path "github.com/sirupsen/logrus"
go: error loading module requirements

我如何找到这个旧 Sirupsen 模块的来源?

最佳答案

How do I find out the source of this old Sirupsen module?

使用 Go 1.13 beta(go get golang.org/dl/go1.13beta1 && go1.13beta1 download)或者更好,试试最新的 Go on tip/master(go获取 golang.org/dl/gotip && gotip 下载)。

Go 1.13 总体上改进了错误消息。它应该对您的情况有所帮助,包括很可能显示导致错误的导入链。

例如:

$ gotip build .
go: example.com/temp/mod imports
github.com/docker/libcompose/docker imports
github.com/Sirupsen/logrus: github.com/Sirupsen/logrus@v1.4.2: parsing go.mod:
module declares its path as: github.com/Sirupsen/logrus
but was required as: github.com/sirupsen/logrus

在该示例中,您可以看到 docker/libcompose/docker 正在导入旧的且现在不正确的大写版本的 Sirupsen/logrus

人们看到 Sirupsen/logrussirupsen/logrus 大小写不匹配的最常见原因是导入 github.com/docker/docker 或其他 docker 仓库之一。导入 docker repos 与模块有点混淆,包括因为:

  • docker/docker 存储库不遵循 semver。
  • docker/docker 仓库中有一个非常古老的 v1.13.1 semver 标签。
    • 即使它已经有几年历史了,它仍然是那个 repo 上的“最新”semver 标签,因此如果您不这样做,go 命令会默认选择旧版本要求更具体的版本。
    • 那个旧的 docker/docker 版本导入了旧的且没有错误的大写字母 Sirupsen/logrus,然后会触发上面问题中报告的错误。
  • docker 客户端包在 v1.13.1 之后发生了重大变化。
  • 通常会混淆 docker/dockerdocker/engine 存储库,以及要使用的导入路径。
  • docker repos 没有 go.mod 文件。

对于docker/docker repo,导入路径仍然是github.com/docker/docker,但需要来自github.com/docker/engine,因此推荐的方法通常是让 docker 导入器执行 import "github.com/docker/docker" 并将他们的 go.mod 编辑为像这样:

require (
github.com/docker/docker v1.13.1
)

replace github.com/docker/docker => github.com/docker/engine <tag-or-commit-hash>

Docker 问题 #39302 tracks 尝试记录如何在使用模块时导入 docker repos。

关于go - 如何找到导致 "Sirupsen/logrus"与 "sirupsen/logrus"意外模块路径错误的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56032544/

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