我想做一个go get:

go get github.com/go-sql-driver/mysql

它失败,并出现以下错误:

package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath

当我做一个go env,一个go值列表如下所示:

ubuntu@ip-xxx-x-xx-x:~$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"

显然GOPATH没有设置,我该如何设置,在哪里设置?

我看到许多线程提到了这个错误,但没有一个线程提供了我的问题的答案,需要编辑哪个文件来为这个路径提供一个值?


当前回答

Ubuntu 14.04

export GOPATH=$HOME/go

此外,您可以将此字符串添加到文件中

$HOME/.bashrc

其他回答

编辑~/。Bash_profile添加以下行:

$ export GOPATH=$HOME/work

保存并退出编辑器。然后,源~/.bash_profile

$ source ~/.bash_profile

注意:设置GOBIN路径以在运行go install时生成二进制文件

$ export GOBIN=$HOME/work/bin

新方法:

看看这个答案。

注意:不是为了在你的主机上使用go install [repo url]来尝试一个go应用程序/二进制文件,在这种情况下你仍然必须使用旧的方法。

老方法:

只需将以下行添加到~/。Bashrc和这将持续下去。但是,在我的示例中,您可以使用其他路径作为GOPATH,而不是$HOME/go。

export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOPATH=/path/desired/here

不需要编辑任何文件,我们可以使用上面的命令直接编辑Go环境变量。

这就是我在Ubuntu 15.10上使用fish shell的原因:

# ~/.config/fish/config.fish

set -g -x PATH /usr/local/bin $PATH
set -g -x GOPATH /usr/share/go

然后我不得不更改go文件夹的权限(它被设置为根)

sudo chown <name>:<name> -R /usr/share/go

以Ubuntu为例,安装包后:

$sudo apt install golang -y

只需将以下行添加到~/。bashrc(你的用户)

export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin