golang官方编译器安装与配置
- 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的
$ sudo apt-get install bison gawk gcc libc6-dev make
$ sudo apt-get install mercurial
$ hg clone -r release https://go.googlecode.com/hg/ go
- 编译golang
$ cd go/src $ ./all.bash
- 假如正常的话,会出现下面的信息
ALL TESTS PASSED --- Installed Go for linux/amd64 in /home/go. Installed commands in /home/go/bin. *** You need to add /home/go/bin to your $PATH. *** The compiler is 6g.
- 配置系统环境
你在~/.bashrc或者 ~/.profile写入你的配置文件,下面我会以.bashrc来说明; 那么,golang要设置那些变量呢?
1、$GOROOT golang的目录,这里我的是/home/go
2、$GOOS 和 $GOARCH 系统的参数 设置方法如下:
$GOOS $GOARCH darwin 386 darwin amd64 freebsd 386 freebsd amd64 linux 386 linux amd64 linux arm incomplete windows 386 incomplete
3、$GOBIN golang的bin目录,这里是/home/go/bin
下面是一个配置例子:请大家特别注意$GOOS 和 $GOARCH 的配置
$ gedit ~/.bashrc
然后加入
export GOROOT=~/go export GOARCH=386(或amd64) export GOOS=linux export GOBIN=$GOROOT/bin/ export GOTOOLS=$GOROOT/pkg/tool/ export PATH=$PATH:$GOBIN:$GOTOOLS
上面这么多,其实也可以用软件源安装!命令如下
sudo add-apt-repository ppa:gophers/go sudo apt-get update sudo apt-get install golang
gccgo安装 gccgo似乎是从4.6开始支持的。也就是说,要在ubuntu用命令安装gccgo只有ubuntu 11.10包括且以上的版本。
大家可以试一下命令gcc -v,查看
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin
如果有一个go,说明你的gcc支持golang,那么就执行以下命令安装gcc-go(大家试一下这命令,我不敢确定):
sudo apt-get install gccgo
- 关于GOPATH的说明
GOPATH环境变量用于指定这样一些目录:除$GOROOT之外的包含Go项目源代码和二进制文件的目录。go install和go 工具会用到GOPATH:作为编译后二进制的存放目的地和import包时的搜索路径。
GOPATH是一个路径列表,也就是可以同时指定多个目录。多个目录在Mac和Linux下通过”:”分割;Windows下通过”;”分割。注意,大部分情况下会是第一个路径优先,比如:查找包
有些地方建议在设置了GOPATH之后,将$GOPATH/bin加入PATH中,这样可以方便的运行go install好的二进制程序。然而,当存在GOPATH中存在多个路径时,这种写法只会将最后一个路径跟上bin。在mac或linux下可以通过这种方式解决:
${GOPATH//://bin:}/bin
GOPATH 必须设置编译和安装包,即使用标准的Go目录树,类似如下:
GOPATH=/home/user/gocode /home/user/gocode/ src/ foo/ bar/ (go code in package bar) x.go quux/ (go code in package main) y.go bin/ quux (installed command) pkg/ linux_amd64/ foo/ bar.a (installed package object)例如创建$HOME/mygo 目录和作为源代码的 src 目录。
$ mkdir -p $HOME/mygo/src # create a place to put source code
下一步就是设置GOPATH,另外你应该把 这个目录下的bin目录放在 PATH 环境变量,这样你就可以直接在命令行执行而不用给出完整目录。
export GOPATH=$HOME/mygo export PATH=$PATH:$HOME/mygo/bin
看到这儿你会觉得很麻烦,其实真的不用这么麻烦。ubuntu上直接apt-get install go就可以了。centos上下载安装包,解压缩后到src目录,./all.bash就可以了,然后设置你的GOROOT和GOPATH。