我想做一个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没有设置,我该如何设置,在哪里设置?
我看到许多线程提到了这个错误,但没有一个线程提供了我的问题的答案,需要编辑哪个文件来为这个路径提供一个值?
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同时设置在同一个目录下,否则会得到警告。
您必须根据所使用的终端(bash或zsh)更新PATH。
打开终端shell脚本文件,即~/。Bashrc或~/。ZSHRC编辑器
微,多达/ .zshrc
(,)
多达code / .zshrc
如果已经找到,更新下面的GOPATH或添加下面的行。
出口GOPATH = $ HOME /: / $ HOME /项目/走
在这里,你可以添加一个或多个由分号分隔的路径:从系统上GO项目的不同位置到GOPATH环境变量,即/path/1:path/2:path/3等。
在我的例子中,我添加了2个路径,如上所示,一个来自根目录$HOME/go,另一个来自项目目录:/$HOME/projects/go
这是最烦人的事情。希望能节省你的时间。
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。这是另一次冒险…:)