在Ubuntu 上源码安装 Go 语言环境 

最近一些事情也忙定下来了,于是开始打算把自己系统里面的一些开发语言的环境搞定,比如OpenJDK、PHP、Groovy以及Google App Engine 和 Android SDK 等等。

这些大都是从软件仓库里面直接安装的或者是直接下载二进制包的,没什么特殊的地方值得记录,只有Go 语言是从源码编译安装的,便记录一下。

首先,按照GO 官方的信息,确保系统里面存在必须的依赖。

如不满足,则安装:
sudo apt-get install gcc bison ed gawk libc6-dev python-setuptools python-dev build-essential

然后就是从Go 位于谷歌代码的源码库里面复制出一份最新的版本。由于Go 是使用户Mercurial 作为版本控制。所以,确保已经安装了 Mercurial(这个比较冷门,估计都没有)
安装即可:
sudo apt-get install mercurial

之后,克隆出一份代码到本地当前目录:
hg clone -u release https://go.googlecode.com/hg/ go

完了后,进入的源码目录下src目录,运行 all.bash 脚本,开始编译。
之后可能会花费一些时间,同时CPU的占用也会有所增加,正常~

直到屏幕中打印出如下的信息时,编译就算完成了。

--- cd ../test
1 known bugs; 0 unexpected bugs

ALL TESTS PASSED

---
Installed Go for linux/386 in /home/sharl/go.
Installed commands in /home/sharl/go/bin.
*** You need to add /home/sharl/go/bin to your $PATH. ***
The compiler is 8g.


这时候Go语言的二进制文件已经全部都生成了,进入到用户主目录(~)下,把整个Go文件夹移动到/usr/local 下(这是我的习惯,应用程序都安装在这里),之后编辑~/.profile 文件,加入如下的命令:

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOARCH=386
export GOOS=linux



保存,再注销,重新登入下,Go的 bin 下的命令都进入系统$PATH了。

下面来测试下,查看版本:
sharl@sharl-laptop:~$ 8g -V
8g version release.r57.1 8294

恩,有了.

随便编写个Go程序测试看看,按照Go官网(http://golang.org/)的"hello,world"案例,写个"hello,girl".囧rz

新建一个hello girl.go文件,
sharl@sharl-laptop:~$ ls -l |grep girl
-rw-r--r-- 1 sharl sharl 72 2011-06-01 18:59 hello girl.go

hello girl.go 内容为:
sharl@sharl-laptop:~$ cat "hello girl.go"
package main

import "fmt"

func main() {
fmt.Println("hello,GIRL!")
}

编译,产生链接文件:
sharl@sharl-laptop:~$ 8g "hello girl.go"
sharl@sharl-laptop:~$ ls -l |grep girl
-rw-r--r-- 1 sharl sharl 6670 2011-06-01 19:02 hello girl.8
-rw-r--r-- 1 sharl sharl 72 2011-06-01 18:59 hello girl.go

链接、生成可执行文件:
sharl@sharl-laptop:~$ 8l "hello girl.8"
sharl@sharl-laptop:~$ ls
8.out hello girl.8 mm.cfg 公共的 桌面
examples.desktop hello girl.go Ubuntu One 模板

运行:
sharl@sharl-laptop:~$ ./8.out
hello,GIRL!

看起来,成功了~

评论