我想做一个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没有设置,我该如何设置,在哪里设置?

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


当前回答

go path可以是你想要的任何地方,只需要创建一个目录,并在GOPATH的名称中设置全局路径变量到你的环境。

mkdir ~/go
export GOPATH=~/go
go get github.com/go-sql-driver/mysql

其他回答

export GOPATH=/path/desired/here

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

这个脚本将帮助你切换哥帕特。https://github.com/buffonomics/goswitch

对于Go 1.13+:

go env -w GOPATH=$HOME/go

要设置GOPATH而不考虑GO版本,在~/.bashrc中添加以下行:

export GOPATH=$HOME/go

不要忘记源你的.bashrc文件:

source ~/.bashrc

在golang官方维基上有更多选项: https://github.com/golang/go/wiki/SettingGOPATH

稍后您还将需要GOPATH。所以把它添加到~/.bashrc。

如果你设置了任何需要修改环境变量的东西,例如Java, Go等,这将非常熟悉。

我假设你有以下目录结构作为你的Go路径:

\---[folder name]
    +---bin
    +---pkg
    \---src

打开一个新终端 输入sudo nano /etc/environment 找到路径=…在最后一个路径后面加一个冒号:然后粘贴你的完整路径,例如/home/user/gocode

你就完成了,这应该会使它在系统中持久存在。