我想在我的Linux Mint机器上安装Google的Go语言。 我是Linux新手,因此不容易遵循我读过的一些指令。 也就是说,我被告知要编辑/修改bashrc文件:
export GOROOT=$HOME/gosource export GOARCH=amd64 export GOOS=linux export GOBIN=$HOME/bin export PATH=$PATH:$GOBIN
我不知道该怎么做 我inputgedit ~/.bashrc
进入terminal并出现空白页面。 我放入代码并保存。 然后呢
hg clone -u https://go.googlecode.com/hg/ go
获取源代码。 它是否正确? 因为我然后试图编译代码,并出现一长串错误(我没有 – 我使用不同的PC不幸的莫)。
但如果任何人都可以帮我安装Go,我会很感激。
解:
除了在下面的答案中提到和解决的各种问题,我忘了安装以下内容
sudo apt-get install bison ed gawk gcc libc6-dev make
这是在golang.com安装页面的顶部提到的。
除此之外,你试图克隆版本库~/go
编辑~/.bashrc
指向$GOROOT
~/gosource
。
仔细阅读Go Getting Started说明。 复制和粘贴命令,或者仔细检查你输入的内容; 在输入之前仔细检查输入。 对于命令, $
符号代表命令提示符,不要输入。 请记住,Linux是区分大小写的,而且/
和\
之间的区别很重要。 仔细检查命令的输出; 输出是否有意义。 运行诸如env
, pwd
类的诊断命令,以及uname
。 当您在堆栈溢出答案中看到滚动条时,滚动查看所有代码和输出。
首先,设置~/.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”,它应该是“去”; 由于Linux区分大小写,“Go”和“Go”是不同的。
如果您从hg clone
命令中省略$GOROOT
目标,或者未设置$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.
代替
gedit /.bashrc
你应该输入
gedit ~/.bashrc
事实上,你能够保存它(?!)表明,要么你错误地输入了你的问题,或者你是以root身份运行gedit
。 您需要将gedit
作为将要进行编译的用户(您的用户)运行,以确保编辑正确的文件。
在最简单的情况下,不需要调整环境。
克隆后,做
cd go/src ./all.bash
去编译。 编译完成后,你会被告知它的安装位置以及如何运行。 那么你可能想要真正修改你的环境来更新PATH
变量。 但是这个问题实际上超出了Go语言的范围,所以按照Robin Green的建议。
PS Debian的golang软件包最近已经上传到unstable了(看到这个bug ),所以可能是更好的办法来获取源码包,并从中构建真正的Debian软件包。