为什么不“去获取”将软件包安装到GOPATH?

时间:2019-05-09 09:08:53

标签: go

当我使用go get命令时:

sudo go get -u github.com/golang/dep/cmd/dep

我的GOPATH是:

GOPATH="/home/hadoop/gopath"

我发现go get将在/ home中创建一个名为“ go”的新目录,并且dep包在其中,我想知道为什么不在GOPATH中而是创建一个新目录?

3 个答案:

答案 0 :(得分:5)

由于使用的是sudo,因此环境变量与您自己(用户)看到的变量不同。

例如,您可以使用: sudo --preserve-env go get -u github.com/golang/dep/cmd/dep,但您可能会遇到权限等问题。

更好的主意是在不使用sudo的情况下直接运行go get-如果GOPATH在您的主目录中,则我认为没有必要首先使用sudo。

答案 1 :(得分:1)

参考此 How to keep environment variables when using sudo

因此,我相信使用sudo时不会设置环境。

您可以使用此go envsudo go env

检查GOPATH的值

答案 2 :(得分:-2)

我已经完成了,如果我们不使用sudo,它将下载到GOPATH,尽管我不知道为什么