我想做一个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 1.11开始:现在有了Go Modules支持(以前称为vgo),因此您不再需要使用GOPATH。但是,这仍然是实验功能。
例如,您可以转到系统中的任何目录($ GOPATH之外的目录),并可以在此处初始化一个新的Go模块,然后可以在其中工作。不需要GOPATH。
您需要执行一次(在目录中):
go mod init github.com/youruser/yourrepo
此后,Go将把该目录假定为模块根目录。您可以根据需要创建任意数量的模块。GOPATH即将成为历史。
如果您坚持使用GOPATH,请注意以下几点:
从Go 1.8开始:您无需设置GOPATH或GOROOT。默认情况下,GOPATH在用户/主目录下。
如果未设置GOPATH,则在Unix系统上假定为$ HOME / go,在Windows上假定为%USERPROFILE%\ go。如果要将自定义位置用作工作区,则可以设置GOPATH环境变量。
更多信息,请查看本出来。
例如,如果它是Ubuntu,则在安装软件包之后:
$sudo apt install golang -y
只需将以下行添加到〜/ .bashrc(您的用户)
export GOROOT=/usr/lib/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
应将GOPATH设置为新创建的空目录.这是go"工作区",它下载包等等.我用〜/ .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/
最短和最新的解决方案.
在终端中写下此代码.
export GOPATH=path/to/your/gopath/directory
注意:这将在每个新的终端窗口或系统重新启动时重置.
具有持久性,在粘贴下面的代码.zshrc
或.bashrc
根据您的shell文件.主目录中的那些文件.它将如下所示.
export PATH=path/to/some/other/place/composer/for/example export GOPATH=path/to/your/gopath/directory export PATH=$PATH:$GOPATH/bin
你以后也需要GOPATH.所以添加它~/.bashrc
.
export GOPATH=/path/desired/here
无需编辑任何文件,我们只需使用上面的命令直接编辑Go环境变量即可.
如果您已经设置了需要修改环境变量的任何内容,例如Java,Go等,那将非常熟悉.
我将假设您在Go路径的某处具有以下目录结构:
\---[folder name] +---bin +---pkg \---src
打开一个新的终端
类型 sudo nano /etc/environment
找到PATH=...
并结束它并:
在最后一条路径后添加冒号然后粘贴到您的完整go path
例如/home/user/gocode
并且你已经完成了,这应该使它在系统中持久化.
Ubuntu 14.04
export GOPATH=$HOME/go
此外,您可以将此字符串添加到文件
$HOME/.bashrc
只需将以下行添加到〜/ .bashrc中,这将保持不变.但是,您可以在我的示例中使用您喜欢的其他路径作为GOPATH而不是$ HOME/go.
export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin