GOPATH环境变量未设置。

5

我正在尝试按照这些说明安装Go的Oracle驱动程序(go-oci8)

我遇到的问题是$GOPATH环境变量。当我执行以下命令时:

sudo go get github.com/mattn/go-oci8

我收到以下错误:

无法下载,未设置$GOPATH。有关详细信息,请参见:go help gopath

但是,我的GOPATH已正确设置。我的环境如下:

env | grep GO

GOARCH=amd64
GOROOT=/usr/local/go
GOOS=linux
GOPATH=/home/myuser/go/

ls $GOPATH
bin pkg src

我找到了一个类似的文章,但是解决方案不适用于我的情况。

你尝试过 sudo GOPATH=/home/myuser/go/ go get github.com/mattn/go-oci8 吗? - devnull
8
你为什么要使用 sudo - James Henstridge
1
可能是如何在使用SUDO时保留环境变量的重复问题。 - Klas Lindbäck
7
不是“你为什么要使用sudo?”而是“不要使用sudo!” - Volker
2
你链接的页面上的指令没有说要使用 “sudo”,真的不需要。 - Intermernet
1个回答

8

Sudo出于安全原因不会接受你所有的环境变量。

解决这个问题最简单的方法是使用/bin/env。

sudo /bin/env GOPATH=/home/myuser/go go get <stuff>

但您并不需要这样做,您真的不应该需要root权限来写入GOPATH,只需要GOROOT。


使用Ruby on Rails后,我喜欢使用RVM管理Ruby环境和版本。很高兴发现了适用于Go的GVM:https://github.com/moovweb/gvm - Brenden
1
我之前使用sudo是因为权限出了问题。我只是重新创建了GO目录并在不使用SUDO的情况下安装了包。现在它可以正常工作了。感谢所有的回复。 - Jose Bagatelli
使用sudo可能是必要的,例如在使用原始套接字时。 - cbix
1
你也可以使用 $ sudo -E go get <stuff> - Nikhita Raghunath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接