Linux 如何在Ubuntu上设置GOPATH环境变量?我必须编辑什么文件?

Linux 如何在Ubuntu上设置GOPATH环境变量?我必须编辑什么文件?,linux,ubuntu,go,Linux,Ubuntu,Go,我正在尝试执行一个去获取: 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" GO

我正在尝试执行一个
去获取

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"
$ gost get -p foo -- github.com/go-sql-driver/mysql  # 'foo' is the name you give to the path above.
很明显,GOPATH没有设置,我应该如何设置,在哪里设置

我看到很多线程都提到了这个错误,但没有一个线程能够回答我的问题,需要编辑哪个文件来提供这个路径的值

export GOPATH=/path/desired/here

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

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

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

我将假设您的Go路径中有以下目录结构:

\---[folder name]
    +---bin
    +---pkg
    \---src
  • 打开一个新的终端
  • 类型
    sudo nano/etc/environment
  • 找到
    路径=…
    并在最后一条路径后添加冒号
    ,然后粘贴到完整的
    路径中,例如
    /home/user/gocode

完成后,这将使其在系统中持久化。

新方法:

老路:

只需将以下行添加到~/.bashrc中,这将保持不变。但是,在我的示例中,您可以使用您喜欢的其他路径作为GOPATH,而不是$HOME/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
来源:Ubuntu 14.04

export GOPATH=$HOME/go
此外,您还可以将此字符串添加到文件中

$HOME/.bashrc

这是最烦人的事情。希望能节省你的时间

如果go是以root用户身份安装的。系统的bash_配置文件文本文件~/.bash_配置文件的根用户需要将$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\u配置文件的路径中

PATH=$PATH:$HOME/bin:/usr/local/bin:/usr/local/go/bin

此路径可以是所需的字符串长度。若要添加新项目,请使用冒号分隔:

退出vi编辑器并保存bash配置文件(:wq代表写入并退出)

  [esc] 
  [shift] + [:] 
  :wq
您必须注销终端并重新登录,配置文件才能再次启动..或者您可以使用导出启动它

...$# export GOPATH=/usr/local/go/src
您可以验证go env:

...$# go env

现在,您可以使用sudo和go在go/src中下载和创建目录,您可以开始了解您试图完成的工作

范例

# sudo go get github.com/..

现在您将遇到另一个问题..您可能没有安装git..这是另一个冒险..:)

在我的Fedora 20机器上,我在我的~/.bashrc中添加了以下行:

export GOROOT=/usr/lib/golang
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

此脚本将帮助您切换路径

在终端中编写此代码

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

这就是我在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
使用Go 1.8(2017年第2季度),如果您接受默认的
GOPATH
值(为您设置),则无需编辑任何文件

您可以在和上看到评论:

通过选择默认的
GOPATH
,我们可以使文档更容易,因为我们可以说

将把
github.com/foo/bar
repo签入
$HOME/go/src/github.com/foo/bar

我们不需要设置一个env-var来分散新手的注意力,我们所需要做的就是在页面底部添加一个小注释

$HOME/go
是您的go工作区的默认路径。
如果要更改此路径,请将
GOPATH
变量设置为您选择的值


go path可以是您想要的任何地方,只需创建一个目录,并将全局路径变量设置为您的环境的GOPATH名称

mkdir ~/go
export GOPATH=~/go
go get github.com/go-sql-driver/mysql

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

$sudo apt install golang -y
只需将以下行添加到~/.bashrc(用户的)

如合同中所述:

GOPATH环境变量指定工作区的位置。默认情况下,它在主目录中是一个名为go的目录,在Unix上是$home/go,在Plan 9上是$home/go,在Windows上是%USERPROFILE%\go(通常是C:\Users\YourName\go)。如果您想在其他位置工作,则需要将GOPATH设置为该目录的路径。(另一个常见的设置是设置GOPATH=$HOME。)请注意,GOPATH不能与Go安装的路径相同

因此,例如,如果您正在Jetbrains Webstorm中编码(使用),您可能希望将
GOPATH
设置为
/Users//Webstorm项目


简单地说,将其设置为您希望Go项目驻留的任何位置。

另一种解决方案:从
Go环境导出每个
Go*
环境变量

.bashrc:

eval$(go env | grep'^go[A-Z0-9\]*='|读取setenv时执行
echo“导出$setenv;”
完成2>/dev/null)
[[-n$GOPATH]| |导出GOPATH=“$HOME/go/bin”
[[-n$GOROOT]| |导出GOROOT=/usr/bin/go
export PATH=“$PATH:$GOPATH/bin:$GOROOT/bin”

编辑您的
~/.bash\u配置文件
以添加以下行:

$ export GOPATH=$HOME/work
保存并退出编辑器。然后,为您的
~/.bash\u配置文件

$ source ~/.bash_profile
注意:设置GOBIN路径以在运行go install时生成二进制文件

$ export GOBIN=$HOME/work/bin
我的围棋环境
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
$ export GOPATH=$HOME/work
$ source ~/.bash_profile
$ export GOBIN=$HOME/work/bin
$go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go-1.6"
GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
export GOPATH=/usr/lib/go
export PATH=$PATH:$GOPATH/bin
vim ~/.profile
GOPATH=/path/to/a/directory/inside/home/directory
GOROOT=/path/to/you/go/library
PATH=$PATH:$GOPATH:$GOROOT:$GOROOT/bin
$ cd /path/to/your/download/directory 
$ tar -xvf gost_linux_amd64.tar.gz
$ sudo mv gost /usr/local/bin
$ gost add foo /home/foobar/bar     # 'foo' is the name and '/home/foobar/bar' is the path
gost goCommand [-p {pathName}] -- [goFlags...] [goArgs...]
$ gost get -p foo -- github.com/go-sql-driver/mysql  # 'foo' is the name you give to the path above.
$ gost get -- github.com/go-sql-driver/mysql
$ gost help install
go mod init github.com/youruser/yourrepo
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin
   vi ~/.zshrc
      (or)
   code ~/.zshrc
export GOPATH="$HOME/go"
export PATH="$PATH:/usr/local/go/bin"
export PATH="$PATH:$GOPATH/bin"