我想做一个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 install [repo url]来尝试一个go应用程序/二进制文件,在这种情况下你仍然必须使用旧的方法。

老方法:

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

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

其他回答

GOPATH是工作空间位置的环境变量。 GOROOT是安装目录的环境变量。虽然GOROOT和GOPATH在安装期间是自动设置的(如果没有错误的话),但要手动指定它,您可以按照以下流程进行。此外,要了解更多信息,您可以参考GO的wiki页面。

最好将GOPATH设置为主目录中的一个目录,例如$ home /go, %USERPROFILE%\go (Windows)。

这是一个解决方案的mac,这是测试在macOS Sierra, ver。10.12,也在Gogland-EAP中,它是JetBrains作为Go编程的IDE引入的。

在终端类型上

vim ~/.profile

在终端打开的文档中按i并添加以下路径

GOPATH=/path/to/a/directory/inside/home/directory
GOROOT=/path/to/you/go/library
PATH=$PATH:$GOPATH:$GOROOT:$GOROOT/bin

按ESC键并输入:x。 最后,您应该重新启动(关闭并打开)您的终端或注销并再次登录。

对于Windows和Linux的配置,请参考Githab的Go wiki页面设置GOPATH-Golang。

注意不要将GOROOT和GOPATH同时设置在同一个目录下,否则会得到警告。

在~的结尾。配置文件添加::

export GOPATH="$HOME/go"
export PATH="$PATH:/usr/local/go/bin"
export PATH="$PATH:$GOPATH/bin"

我的围棋环境看起来和你的差不多。

$go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go-1.6"
GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

我通过将GOPATH设置为/usr/lib/go来解决这个问题。试试吧。

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

这是最烦人的事情。希望能节省你的时间。

IF go是以root用户安装的。您系统的bash_profile文本文件~/的根用户。bash_profile需要将$GOROOT分配到go安装目录,$GOPATH需要分配到go /src目录。

  ...$# sudo su
  ...$# vi ~/.bash_profile

    ***Story continues in vi editor***

    GOROOT=$GOROOT:/usr/local/go
    GOPATH=$GOPATH:/usr/local/go/src
    ...
    [your regular PATH stuff here]
    ...

确保进入二进制的路径在.bash_profile上的路径中

= $ PATH: $ HOME / bin: / usr /地方/ bin: / usr /地方/去/ bin

这个PATH可以是它需要的长度的字符串..以添加新项,只需用冒号分隔:

退出vi编辑器并保存bash配置文件(:wq代表write and quit)

  [esc] 
  [shift] + [:] 
  :wq

你必须注销终端,然后重新登录配置文件重新启动..或者你可以通过使用导出启动它。

...$# export GOPATH=/usr/local/go/src

你可以验证go env:

...$# go env

Yay!

GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/usr/local/go/src"
GORACE=""
GOROOT="/usr/local/go"

现在你可以sudo和go可以在go/src中下载和创建目录你可以找到你想要做的。

例子

# sudo go get github.com/..

现在你会遇到另一个问题,你可能没有安装git。这是另一次冒险…:)

export GOPATH=/path/desired/here

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