30

设置:

看看我的配置:

$ 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
4

6 回答 6

32

如果您设置这样的变量:

GOPATH=$HOME/go

它不会被导出到任何子流程。它仅适用于该进程。如果要将其导出到子进程,请使用export

export GOPATH

您还可以结合分配和导出:

export GOPATH=$HOME/go
于 2013-07-26T03:23:08.597 回答
1

我的 $GOROOT 目录是用我作为所有者owner: rootgroup: wheel管理员作为组创建的。我猜我在不应该使用 sudo 的时候使用了(或者某些工具为我做了)。因此go get无法将包写入 $GOROOT 并因此出现$GOPATH not setandpermission denied错误。

通过在我的 $GOROOT(使用 -R 获取子文件夹)上使用chownand 'go get...' 工作。chgrp就我而言,VS Code 现在能够安装我想要的 Go 组件。

于 2016-11-22T19:51:00.327 回答
1

当您运行 go env 时,您应该能够看到您的 GOPATH 是否已设置。但就我而言,当我让它在我的终端上运行时,这个命令解决了它。

export GOPATH=/usr/local/bin
于 2017-01-17T16:28:14.727 回答
0

我进行了设置GOPATH,并使用命令正确显示go envchmod我必须使用和安装给 go 目录正确的gb权限go get github.com/constabulary/gb/...

于 2017-03-22T13:17:01.400 回答
0

首先执行“go env”并检查路径 GOROOT。相应地设置 GOPATH。就我而言,它必须将 GOPATH 设置为 /usr/lib/go。早些时候我用 /usr/share/go 和 /usr/bin/go 尝试过,但是没有用。

于 2017-08-03T05:05:59.417 回答
0

$GOPATH 应该是您当前的工作区,即您的项目所在的文件夹。或者只是 cd ~/go 并尝试运行这些命令。或者你可以在 ubuntu 上的 ~/.bashrc 或 ~/.bashrc_profile 中更新 $GOPATH

于 2019-07-23T18:23:46.487 回答