【问题标题】:Golang `go get` - Cannot find package in any ofGolang`go get` - 在任何一个中都找不到包
【发布时间】:2019-06-10 22:40:09
【问题描述】:

我已关注 this guide 在 Ubuntu 16.04 上安装 Go。但是,当我为 Go 应用程序 (go get github.com/src-d/enry/cmd/enry) 关注 installation instructions 时,我收到以下错误:

package github.com/src-d/enry/v2: cannot find package "github.com/src-d/enry/v2" in any of:
        /usr/local/go/src/github.com/src-d/enry/v2 (from $GOROOT)
        /root/work/src/github.com/src-d/enry/v2 (from $GOPATH)
package github.com/src-d/enry/v2/data: cannot find package "github.com/src-d/enry/v2/data" in any of:
        /usr/local/go/src/github.com/src-d/enry/v2/data (from $GOROOT)
        /root/work/src/github.com/src-d/enry/v2/data (from $GOPATH)

这是go env的输出:

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/work"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

我做错了什么?

注意:我对如何在 Go 中编程的知识完全为零,我只是想安装一个 CLI 应用程序。

【问题讨论】:

  • 这看起来可能是模块导入路径,但您使用的是 GOPATH。尝试设置GO111MODULE=on
  • @JimB 在运行export GO111MODULE="on" 后,我仍然得到同样的错误。 echo $GO111MODULE 确实返回 on
  • 按照 golang.org 上的官方方式安装 Go。
  • @APixelVisuals 你能分享你的导入声明吗?
  • 你的 gopath 在 /root 上你确定它可以被 go get 读/写吗?

标签: go installation failed-installation


【解决方案1】:

检查 $GOPATH 的可写权限。在您设置时,它位于 /root

【讨论】:

  • 我以 root 身份登录,所以这不是问题
  • @APixelVisuals:一般来说,您永远不应该以 root 身份构建软件(在某种命名空间容器中的 root 除外)
  • @APixelVisuals 为什么不作为普通用户尝试这样做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多