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

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


当前回答

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

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

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

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

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

其他回答

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

你可以过来看看 $ go env

GOPATH应该设置为一个新创建的空目录。这就是“工作空间”,它可以在这里下载包等等。我使用~/.go。

例如:

mkdir ~/.go
echo "GOPATH=$HOME/.go" >> ~/.bashrc
echo "export GOPATH" >> ~/.bashrc
echo "PATH=\$PATH:\$GOPATH/bin # Add GOPATH/bin to PATH for scripting" >> ~/.bashrc
source ~/.bashrc

来源:http://www.larry-price.com/blog/2013/12/15/setting-up-a-go-environment-in-ubuntu-12-dot-04/

新方法:

看看这个答案。

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

老方法:

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

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

(Ubuntu)

如果不设置GOPATH,将使用默认值。

您必须将$GOPATH/bin添加到您的PATH中以执行安装在$GOPATH/bin中的任何二进制文件,或者您需要键入$GOPATH/bin/the-command。 将其添加到~/.bash_profile中

导出路径= $ GOPATH / bin: $路径

当前GOPATH命令:

去环境GOPATH

修改GOPATH命令:

出口GOPATH = $ HOME / your-desired-path

使用Go 1.8(2017年第二季度),如果你接受默认的GOPATH值(为你设置),你就不必编辑任何文件

$HOME/go

您可以看到问题17262的评论和相关的推特投票:

通过选择默认的GOPATH,我们可以使我们的文档更容易,因为我们可以这样说

$ go get github.com/foo/bar

将检查github.com/foo/bar回购到$HOME/go/src/github.com/foo/bar。 我们不需要用设置env变量来分散新人的注意力,我们所需要做的就是在页面底部放一个小圆括号 $HOME/go是go工作区的默认路径。 如果要更改此路径,请将GOPATH变量设置为您所选择的值。