这变得非常令人沮丧。我在我的~/.bash_profile
中设置了我的GOPATH,但Go仍然说它没有设置。所以我手动设置它,它仍然说。
computer:~ doug$ export GOPATH=~/Dropbox/golang
computer:~ doug$ sudo go get -u golang.org/x/tools/cmd/...
package golang.org/x/tools/cmd/...: cannot download, $GOPATH not set. For more details see: go help gopath
我在这里做错了什么?如果我输入goenv
,它甚至会将其列为设置为正确的路径。
答案 0 :(得分:2)
sudo
会删除环境变量,因此以root
运行的命令无法将环境变量设置为doug
。一般情况下,您不应该sudo
运行go get
,尽管某些golang.org/x/tools
包有些特殊。尝试安装您需要的(不使用sudo),而不是使用...
答案 1 :(得分:1)
我特别喜欢,只需使用wget
和tar
以及就可以轻松设置整个环境,而无需任何特殊权限。
这就是我通常在任何系统上安装(和更新)的方式:
$ wget https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz
$ tar -xzvf go1.6.2.linux-amd64.tar.gz
$ export GOROOT=$PWD/go
$ export PATH=$PWD/go/bin:$PATH
$ which go
/tmp/example/go/bin/go
$ go version
go version go1.6.2 linux/amd64
您可以在此处找到指向tar档案的链接:https://golang.org/dl/
我喜欢将我使用的每个版本下载并提取到$HOME/Programs
,然后设置一个符号链接指向我实际想要使用的版本:
ls -la /home/fgrosse/Programs | grep go
lrwxrwxrwx 1 fgrosse fgrosse 6 Mar 9 20:52 go -> go1.6.1
drwxr-xr-x 11 fgrosse fgrosse 4.0K Feb 17 21:47 go1.5.4
drwxr-xr-x 11 fgrosse fgrosse 4.0K Feb 17 21:47 go1.6
drwxrwxr-x 11 fgrosse fgrosse 4.0K Apr 23 19:58 go1.6.1
drwxrwxr-x 11 fgrosse fgrosse 4.0K Apr 23 19:58 go1.6.2
$ echo $GOROOT
/home/fgrosse/Programs/go