无法从 github 获取 gorose 2.0

问题描述

我的 go 版本是 1.16,本地操作系统是 Windows。

我需要使用 gorose 包。当我使用命令时 go get -u github.com/gohouse/gorose/v2在 goland 终端,显示

go get: github.com/gohouse/gorose/v2@none updating to
    github.com/gohouse/gorose/v2@v2.1.10 requires
    github.com/gohouse/golib@v0.0.0-20200727025018-43fec7d17e79 requires
    github.com/gohouse/e@v0.0.3-rc.0.20200724104652-25ebf8c9c305: invalid pseudo-version: preceding tag (v0.0.3-rc) not found

谁能给我解决这个问题的方法,谢谢。

解决方法

看来 github.com/gohouse/e 已从其存储库中删除了 v0.0.3-rc 标记,因此基于该标记的伪版本不再有效。 (Go 模块强烈希望维护者不要删除已经发布的标签。)


解决此问题的一种方法是 exclude 无效版本,这将导致在您的模块中忽略对其的依赖关系。为此,请将这一行添加到您的 go.mod 文件中:

exclude github.com/gohouse/e v0.0.3-rc.0.20200724104652-25ebf8c9c305

然后,当您 go get github.com/gohouse/gorose/v2 时,它将使用该模块的当前 github.com/gohouse/e 版本重新解析包 latest 上任何缺失的依赖项。


解决此问题的另一种方法是从 Go 模块代理获取 v0.0.3-rc.0.20200724104652-25ebf8c9c305 的缓存副本。似乎该版本可能由 proxy.golang.org 缓存,您可以通过将 GOPROXY 设置为 proxy.golang.org,direct(或完全取消设置,因为这是 {{1 }} 命令)在您的环境中。

如果您设置了 GOPRIVATE and/or GONOPROXY,您可能还需要调整这些变量以确保它们不会绕过 go 的代理。


最后,理想的长期解决方案是在上游修复这些依赖项,以便模块依赖关系图仅包含有效版本。你可以:

  • github.com/gohouse/e 模块提出问题,要求他们恢复已删除的标签,或
  • github.com/gohouse/e 发送 PR 以将其 github.com/gohouse/golib 文件中的要求更新为仍然有效的版本,然后向 go.mod 发送 PR 以更新其对 {{1} 的依赖}} 到包含修复的版本。