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

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


当前回答

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

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/to/your/gopath/directory

注意:这将在每次新的终端窗口或系统重新启动时重置。

要持久,请根据shell将下面的代码粘贴到.zshrc或.bashrc文件中。这些文件在您的主目录。如下图所示。

export PATH=path/to/some/other/place/composer/for/example
export GOPATH=path/to/your/gopath/directory
export PATH=$PATH:$GOPATH/bin

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

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

对于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

如果您正在使用ZSH:

nano ~/.zshrc

然后在文件末尾添加:

export PATH=$PATH:/usr/local/go/bin

最后:

source ~/.zshrc

并打开一个新的终端

go version

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/