【问题标题】:go install @latest found but does not contain packagego install @latest 找到但不包含包
【发布时间】:2022-07-12 20:27:02
【问题描述】:

我正在尝试使用 go install 安装我的软件包,但在运行命令 go install github.com/JoaoDanielRufino/gcloc/cmd/gcloc@latest 时收到此错误消息:

go install: github.com/JoaoDanielRufino/gcloc/cmd/gcloc@latest: module github.com/JoaoDanielRufino/gcloc@latest found (v1.0.0), but does not contain package github.com/JoaoDanielRufino/gcloc/cmd/gcloc

我希望可执行文件名称为gcloc

这里是当前源代码:https://github.com/JoaoDanielRufino/gcloc

注意:我已经尝试过go clean -modcache,但没有成功

【问题讨论】:

    标签: go command-line-interface


    【解决方案1】:

    由于这个包的主要功能不在它的根目录,你应该在你的命令中传递main包的目录。

    因此,您的命令将是: go install -v github.com/JoaoDanielRufino/gcloc/cmd@latest

    【讨论】:

    • 但是这样一来,可执行文件名将是cmd,我希望它是gcloc
    • 目前在 GitHub 中有一个 issue 引用了这个问题,但没有实施或也被接受为提案。所以,我建议您在 cmd 文件夹中创建一个子文件夹,并将其命名为 gcloc
    • 但这就是我在我的工作空间中拥有的东西,在 cmd 中有一个名为 gcloc 的子文件夹,带有一个 main.go 文件,我无法使用 go install github.com/JoaoDanielRufino/gcloc/cmd/gcloc@latest 安装,或者如果我使用 @ 安装987654330@ 二进制名称是cmd
    【解决方案2】:

    当我尝试使用 go install 在我的机器上安装 cloudflare/cf-terraforming 工具时遇到了类似的问题。这个工具的文档在安装上不清楚,我不得不四处寻找才能让它工作

    基本上@Jictyvoo 上面的答案总结了它,如果路径指向的不是 main.go 文件所在的目录,我就会收到错误

    命令go install github.com/cloudflare/cf-terraforming@latest v0.8.0@latest

    转到:github.com/cloudflare/cf-terraforming@latest:模块 github.com/cloudflare/cf-terraforming@latest 找到(v0.8.0),但没有 包含包 github.com/cloudflare/cf-terraforming

    当我切换到下面它对我来说很好: 命令go install -v github.com/cloudflare/cf-terraforming/cmd/cf-terraforming@latest

    在检查 repo 并意识到 main.go 文件位于 cmd/cf-terraforming 子目录中后,这对我有用

    【讨论】:

      猜你喜欢
      • 2020-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多