设置:
看看我的配置:
$ 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发布于 2013-07-26 03:23:08
如果您设置了如下变量:
GOPATH=$HOME/go它不会被导出到任何子进程。它只适用于这个过程。如果要将其导出到子进程,请使用export
export GOPATH您还可以将赋值和导出结合起来:
export GOPATH=$HOME/go发布于 2016-11-22 19:51:00
我的$GOROOT目录是用owner: root和group: wheel创建的,它的所有者是我,管理员是组。我会猜我使用sudo时,我不应该这么做(或者某个工具为我做的)。因此,go get无法将包写入$GOROOT,从而导致$GOPATH not set和permission denied错误。
通过在我的chown和chgrp上使用$GOROOT (使用-R获取子文件夹) 'go get .‘起作用了。在我的例子中,VS Code现在能够安装我所追求的Go组件。
发布于 2017-01-17 16:28:14
当您运行go env时,您应该能够查看您的GOPATH是否已设置。不过,在我的情况下,当我在终端上运行它时,这个命令就会解决这个问题。
export GOPATH=/usr/local/binhttps://stackoverflow.com/questions/17872223
复制相似问题