在linux下如何自定义gopath,linux - 如何在Ubuntu上设置GOPATH环境变量?我必须编辑什么文件? - Ubuntu问答...

本文介绍了解决在使用Go get命令时遇到的关于GOPATH未设置的问题。提供了多种设置GOPATH的方法,包括修改.bashrc文件、直接在命令行中设置等。

问题描述

我正在尝试做一个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,如何以及在哪里设置?

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

最佳办法

2018+答案:

2018年之前的答案:

只需将以下行添加到〜/.bashrc中,这将继续存在。但是,您可以在示例中将其他路径用作GOPATH而不是$ HOME /go。

export GOPATH=$HOME/go

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

次佳办法

Ubuntu 14.04

export GOPATH=$HOME/go

另外,您可以将此字符串添加到文件中

$HOME/.bashrc

第三种办法

GOPATH应该设置为新创建的空目录。这是go “workspace”,它在其中下载软件包等。我使用〜/.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

第四种办法

例如,如果是Ubuntu,则在安装软件包后:

$sudo apt install golang -y

只需将以下行添加到〜/.bashrc(针对您的用户)

export GOROOT=/usr/lib/go

export GOPATH=$HOME/go

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

第五种办法

export GOPATH=/path/desired/here

无需编辑任何文件,我们只需使用上面的命令即可直接编辑Go环境变量。

第六种办法

转到模块[新方法]

从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在用户/主目录下。

If no GOPATH is set, it is assumed to be $HOME/go on Unix systems and %USERPROFILE%\go on Windows. If you want to use a custom location as your workspace, you can set the GOPATH environment variable.

有关更多信息,请检查this。

第七种办法

最短和最新的解决方案。

在终端中编写此代码。

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

第八种办法

您稍后也将需要GOPATH。因此,将其添加到~/.bashrc。

第九种办法

如果您设置了任何需要修改环境变量的内容,例如Java,Go等将非常熟悉。

我将假定您在Go路径中的某处具有以下目录结构:

\---[folder name]

+---bin

+---pkg

\---src

打开一个新的终端

类型sudo nano /etc/environment

找到PATH=...,然后在末尾添加一个冒号:,然后粘贴到完整的go path中,例如/home/user/gocode

并且您完成了,这应该使它在系统中具有持久性。

第十种办法

这就是使用fish shell在Ubuntu 15.10上为我工作的原因:

# ~/.config/fish/config.fish

set -g -x PATH /usr/local/bin $PATH

set -g -x GOPATH /usr/share/go

然后,我不得不更改go文件夹的权限(该文件夹设置为root)

sudo chown : -R /usr/share/go

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值