$GOPATH not set. For more details see: go help gopath

臭大佬 2020-08-06 14:14:50 2462
Go 
简介 $GOPATH not set. For more details see: go help gopath

问题

今天在ubuntu上安装 go 依赖时报错,执行命令如下:

sudo go get github.com/gorilla/mux

$GOPATH not set. For more details see: go help gopath

分析

因为sudo我们使用了root的环境,而我们没有在root.bashrc文件中设置GOPATH

查看环境配置:

go env

需要注意的是GOPATH变量的值GOPATH=/www/wwwroot/default/goCode,GOPATH是go get指令默认下载和安装包的位置,通过go get指令,获取go的包,默认下载到GOPATH所指示的目录中。

解决方案

方式一:直接go get xxx即可。

这种方式需要设置目录权限。到GOPATH目录下的src -> github.com 目录下:

sudo chmod -R 777 ./*

然后再安装相应的包

go get github.com/gorilla/mux

方式二:在/etc/profile文件中添加GOPATH变量。

修改/etc/profile文件

sudo vim /etc/profile

在文件最后面加上:export GOPATH=/www/wwwroot/default/goCode

编辑完成后在终端运行如下命令,使文件立刻生效,

source /etc/profile

方式三:sudo env GOPATH=/opt/go go get github.com/nsf/gocode,命令里面手动给出GOPATH变量值。

举个拉取 go-sql-driver的栗子:

sudo env GOPATH=/www/wwwroot/default/goCode go get github.com/go-sql-driver/mysql

以上三种方式都可以解决$GOPATH not set问题,这样就可以拉取需要的go依赖包了。