我想在我的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安装页面顶部提到了什么。
答案 0 :(得分:1)
除此之外,您还尝试将存储库克隆到~/go
并编辑~/.bashrc
以将$GOROOT
指向~/gosource
。
仔细阅读Go Getting Started说明。复制和粘贴命令或仔细检查您键入的内容;在输入之前,请仔细检查输入。对于命令,$
符号表示命令提示符,请勿键入。请记住,Linux区分大小写,/
和\
之间的区别非常重要。仔细检查命令的输出;输出是否有意义。运行env
,pwd
,which
和uname
等诊断命令。当您在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
输出说了什么?您希望6g
和6l
程序在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软件包。