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"