繁体   English   中英

为什么在我之前直接将其设置为命令时,Golang为何未设置我的GOPATH?

[英]Why does Golang say my GOPATH isn't set when I set it the command directly before?

这变得非常令人沮丧。 我在~/.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它甚至会列出它被设置为正确的路径。

sudo默认会删除环境变量,因此以root身份运行的命令看不到将环境变量设置为doug 通常,您不需要sudo来运行go get ,尽管有些golang.org/x/tools软件包有些特殊。 尝试仅安装所需的组件(无需sudo),而不要使用...

我特别喜欢go,它的整个环境特别容易使用wgettar设置,不需要任何特殊权限

这是我通常在任何系统上安装(和更新)的方式:

$ 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM