在Linux(Mint)中安装Go并修改bashrc

时间:2011-05-16 15:33:17

标签: linux mercurial go

我想在我的Linux Mint机器上安装Google的Go语言。我是Linux的新手,所以不容易理解我读过的一些说明。也就是说,我被告知编辑/修改bashrc文件:

 export GOROOT=$HOME/gosource
 export GOARCH=amd64
 export GOOS=linux
 export GOBIN=$HOME/bin
 export PATH=$PATH:$GOBIN

我不知道该怎么做。我输入了gedit ~/.bashrc

进入终端并出现一个空白页面。我输入代码并保存。然后做了

hg clone -u https://go.googlecode.com/hg/ go

获取源代码。它是否正确?因为我然后尝试编译代码并且出现了一长串错误(我没有 - 我很遗憾地使用了不同的PC)。

但如果有人可以帮我安装Go,我会很感激。

解决方案:

除了下面的答案中提到和解决的各种问题,我忘了安装以下

sudo apt-get install bison ed gawk gcc libc6-dev make

golang.com安装页面顶部提到了什么。

3 个答案:

答案 0 :(得分:1)

除此之外,您还尝试将存储库克隆到~/go并编辑~/.bashrc以将$GOROOT指向~/gosource

仔细阅读Go Getting Started说明。复制和粘贴命令或仔细检查您键入的内容;在输入之前,请仔细检查输入。对于命令,$符号表示命令提示符,请勿键入。请记住,Linux区分大小写,/\之间的区别非常重要。仔细检查命令的输出;输出是否有意义。运行envpwdwhichuname等诊断命令。当您在Stack Overflow应答中看到滚动条时,滚动浏览所有代码和输出。

首先,设置~/.bashrc

$ gedit ~/.bashrc

export GOROOT=$HOME/go
export GOARCH=amd64
export GOOS=linux
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN

关闭所有打开的终端窗口,然后打开一个新的终端窗口以检查新的~./bashrc和其他值。

$ env | grep '^\(GO\|HOME=\|PATH=\)'
GOBIN=/home/peter/go/bin
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/peter/go/bin
GOARCH=amd64
HOME=/home/peter
GOROOT=/home/peter/go
GOOS=linux
$ cd $GOROOT/src
$ pwd
/home/peter/go/src
$ uname -a
Linux peter 2.6.32-31-generic #61-Ubuntu SMP Fri Apr 8 18:25:51 UTC 2011 x86_64 GNU/Linux

然后将存储库克隆到$GOROOT,您将从同一个地方克隆并编译。

$ hg clone -u release https://go.googlecode.com/hg/ $GOROOT
requesting all changes
adding changesets
adding manifests
adding file changes
added 8441 changesets with 31916 changes to 4421 files (+1 heads)
updating to branch release-branch.r57
2702 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd $GOROOT/src
$ ./all.bash
< SNIP OUTPUT >
ALL TESTS PASSED
---
Installed Go for linux/amd64 in /home/peter/go.
Installed commands in /home/peter/go/bin.
The compiler is 6g.
$ which 6g
/home/peter/go/bin/6g

你还没有发布你的输出,所以我只能猜出你的问题是什么。

例如,你说“目录是Go”,它应该是“go”;由于Linux区分大小写,“Go”和“go”是不同的。

如果从$GOROOT命令中省略hg clone目的地或未设置$GOROOT,则hg clone将默认为hg目录。例如,

$ env | grep '^GOROOT'
GOROOT=
$ hg clone -u release https://go.googlecode.com/hg/ $GOROOT
destination directory: hg

由于您有GOARCH=amd64,因此您应该在x86_64处理器上运行64位版本的Linux Mint。您的uname -a输出说了什么?您希望6g6l程序在x86_64处理器上进行编译和链接,该处理器应位于$GOBIN目录中,该目录应位于$PATH中}。

$ env | grep '^\(GOBIN\|PATH=\)'
GOBIN=/home/peter/go/bin
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/peter/go/bin
$ which 6g
/home/peter/go/bin/6g

您还应该通过阅读./all.bash命令输出的结尾来看到这一点。

ALL TESTS PASSED
---
Installed Go for linux/amd64 in /home/peter/go.
Installed commands in /home/peter/go/bin.
The compiler is 6g.

答案 1 :(得分:0)

而不是

gedit /.bashrc

你应该输入

gedit ~/.bashrc

您能够保存它(?!)这一事实表明您错误地记录了您在问题中实际输入的内容,或者您​​是以root身份运行gedit。您需要以将要进行编译的同一用户(您的用户)运行gedit,以确保您编辑正确的文件。

答案 2 :(得分:0)

在最简单的情况下,无需调整环境。

克隆后,执行

cd go/src
./all.bash

得到Go编译。编译完成后,您将被告知它的安装位置以及如何运行它。然后,您可能希望真正修改环境以更新PATH变量。但是这个问题实际上超出了Go语言的范围,Robin Green所建议的也是如此。

P.S。 golang的Debian软件包最近上传到不稳定版(参见this bug),因此最好抓住源代码包并从中构建一个真正的Debian软件包。