欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-19 10:45:17
...

问题

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

sudo go get github.com/gorilla/mux

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

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

分析

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

查看环境配置:

go env

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

需要注意的是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

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

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

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依赖包了。