在ubuntu上进行设置

时间:2015-09-17 14:38:18

标签: ubuntu go

我正在尝试在Ubuntu上设置go dev环境,但没有运气。按照此处的说明https://github.com/golang/go/wiki/Ubuntu

sudo apt-get install golang

然后我

mkdir $HOME/golang
export GOPATH=$HOME/golang

没有骰子。即使做一些像go version之类的简单操作也会引发以下错误:

go: cannot find GOROOT directory: /usr/local/opt/go/libexec

我在网上看到的任何地方都说不要设置GOROOT。请帮帮忙,我不明白从哪里开始。这是在新VM上的全新安装。

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/isaac/golang"
GORACE=""
GOROOT="/usr/local/opt/go/libexec"
GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/linux_amd64"
TERM="dumb"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CXX="g++"
CGO_ENABLED="1"

4 个答案:

答案 0 :(得分:7)

在我安装的ubuntu机器上,按照以下简单步骤进行操作:

$ wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz
$ sudo tar -C /usr/local -xzf go1.4.2.linux-amd64.tar.gz
$ rm go1.4.2.linux-amd64.tar.gz

添加到$ PATH变量

$ mkdir $HOME/go
$ nano ~/.bashrc
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
$ source ~/.bashrc

这项工作很好。

答案 1 :(得分:4)

所以我最终想出来了,男孩对我来说是愚蠢的。我有一个影响$GOROOT的脚本,并且学到了很多东西。以下是重要的经验教训:

  • 请勿使用sudo apt-get install golang它已过期,这样做意味着您现在必须还原安装。 sudo apt-get install golang-go也已过期。不要使用apt-get
  • sudo apt-get purge golang不会重置环境变量或删除所有相关文件夹。
  • 在尝试其他安装之前,
  • unset GOPATH GOHOME GOROOT是重要的清理

  • 只能从golang网站

  • 通过tar.gz安装
  • GOROOT表示go的内部文件所在的文件夹,因此基本上tar.gz的所有内容都存在于您的系统中。通常为/usr/local/go
  • GOHOME不需要设置。如果您进行了设置,请使用unset
  • GOPATH是工作区的位置,您需要mkdir创建该文件夹以及设置GOPATH环境变量。
  • 您的路径需要包含$GOROOT/bin:$GOPATH/bin才能使设置正常运行。

影响.zshrcbashrcprofile的自定义脚本的使用不应包含$GOROOT的设置!!

答案 2 :(得分:0)

对于来自Ubuntu存储库的golang-go

这个答案是指默认Ubuntu存储库中的golang-go软件包,而不是可以使用ubuntu-make安装的go-lang软件包。

理解您的问题的关键是以下几行:

GOROOT="/usr/local/opt/go/libexec"

如果您输入命令echo $GOROOT,它将返回:

/usr/local/opt/go/libexec

这不是你希望GOROOT从默认的Ubuntu存储库安装golang-go。在Ubuntu中,默认的golang-go安装GOROOT指的是安装go的目录的根目录。运行命令which go将返回/usr/bin/go并检查/usr/bin/go文件,显示它已符号链接到位于/usr/lib/go-1.6/bin/go的go可执行文件。有你失踪的GOROOT。如果你使用命令sudo apt install golang-go安装golang-go,GOROOT是golang-go安装的所有go文件的根目录;它是/usr/lib/go-1.6

通过使用以下命令在nano文本编辑器中编辑环境文件,仍然可以将GOROOT中的更改应用于/etc/environment

sudo nano /etc/environment

PATH="中显示/etc/environment后,插入以下文字将其添加到路径中:

/usr/lib/go-1.6:

按键盘组合 Ctrl + O 然后按 Enter 将要编辑的文件以nano保存到当前位置。按键盘组合 Ctrl + X 退出nano。

:之后的/usr/lib/go-1.6字符是分隔go路径和下一路径的分隔符。建议使用以下命令检查工作的准确性:

cat /etc/environment

现在您已经更新了PATH,您需要通过注销并重新登录来重新加载/etc/environment

答案 3 :(得分:0)

除了@sadlil的答案外,您还可以使用复合词GOPATH。您可能有一个单独的目录,其中包含所有项目,并且希望保留此目录结构。在您的all_projects目录中创建一个go目录,并将其附加到GOPATH

这是我的.bashrc

export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
export GOPATH=$GOPATH:$HOME/all_projects/go  # add projects directory

要注意的另一点是,go偏爱特定的目录结构。例如如果您在github.com上托管的项目上工作,则可以具有以下目录结构。

   go
   |-bin
   |-pkg
   |-src
   |---github.com
   |-----username
   |-------reponame

youtube video对于设置VS Code for go非常有用。