[英]Error “cannot download, $GOPATH not set.”
设定:
看看我的配置:
$ echo $GOPATH && ls -r $GOPATH
/home/cyrus/.go
src pkg bin
$ echo $GOROOT && ls $GOROOT
/usr/local/go
api AUTHORS bin CONTRIBUTORS doc favicon.ico include lib LICENSE misc PATENTS pkg README robots.txt src test VERSION
你可以看到我为$GOPATH
设置了路径。 另外,我创建了我可能不需要的子目录。
题:
为什么以下命令会生成此错误消息?
$ go get code.google.com/p/go-tour/gotour
package code.google.com/p/go-tour/gotour: cannot download, $GOPATH not set. For more details see: go help gopath
如果你设置一个这样的变量:
GOPATH=$HOME/go
它不会导出到任何子进程。 它仅适用于该流程。 如果要将其导出到子进程,请使用export
:
export GOPATH
您还可以组合分配和导出:
export GOPATH=$HOME/go
我的$ GOROOT目录是使用owner: root
创建的owner: root
和group: wheel
而不是让我作为所有者,管理员作为组。 我猜我不应该使用sudo(或者某些工具为我做过)。 因此, go get
无法将包写入$ GOROOT,因此$GOPATH not set
且permission denied
错误。
通过在我的$ GOROOT上使用chown
和chgrp
(使用-R来获取子文件夹)'go get ...'工作。 在我的情况下,VS Code现在能够安装我以后的Go组件。
当您运行go env时,您应该能够看到您的GOPATH是否已设置。 在我的情况下,当我在终端上运行时,此命令解决了它。
export GOPATH=/usr/local/bin
我已经设置了GOPATH
并且使用命令go env
正确显示。 我必须使用chmod
为go目录提供正确的权限,并通过go get github.com/constabulary/gb/...
安装gb
。
首先做一个'go env'并检查路径GOROOT。 据此设置GOPATH。 在我的例子中,它必须将GOPATH设置为/ usr / lib / go。 早些时候我用/ usr / share / go和/ usr / bin / go尝试了它,但它没有用。
$ GOPATH应该是您当前的工作空间,即项目所在的文件夹。 或者只是cd~ / go并尝试运行这些命令。 或者你可以在ubuntu上更新〜/ .bashrc或〜/ .bashrc_profile中的$ GOPATH
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.