Ubuntu上编译安装Go语言

这个事情完全是个意外,昨晚带电脑回寝室准备看个Grub2的文档好帮刷修改启动菜单的,浏览Buzz的时候注意到这么一篇文章:

Go 语言初步

嗯,大牛的文章是这么开头的:

这几天认真玩起了 Go。所谓认真玩,就是拿 Go 写点程序,前后大约两千行吧。

我这样的编程门外汉,对于这门语言的种种特性就不加评论了,纯粹折腾着用一下,有空还是先给劲学习我的Python比较好,附带的可以接触点Python。

补充一句,有种说法是C+Python=Go?!

然后我就准备编译安装了……(比较DT的喜欢折腾心东西,但是不专心学习。。。)

编译安装主要参考的是这个日志:

怎么在Ubuntu下安装Google Go编程语言

(这真的是写的非常好的一篇介绍~)

另外重点推荐一下Go语言官方的安装指南,还有进阶教程A Tutorial for the Go Programming Language

下面的步骤我就不想自己打字了……大家感兴趣的可以移步去上面那两个网址里看~

设置了环境变量然后使用hg将go的源代码clone下来,这里除了点插曲,clone的时候我断了一下网线,然后选择取消,之后重连就不断提示我Unknown host…这不诡异了么?!

好歹之后不知怎么的也给弄下源代码了,有19Mb多呢。./all.bash之后就开始编译安装了。

官网上说,要最后出现下面的东西算是编译安装成功了:

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

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

但是比较不幸的,我这里还是出错了……

Go test

make[2]: Leaving directory `/home/oppih/c0ding/go/src/pkg/net’
— FAIL: net.TestDialGoogle
— 74.125.19.99:80 —
http://www.google.com:80
Dial(“tcp4”, “”, “www.google.com:80”) = _, dial tcp4 [2404:6800:8005::68]:80: non-IPv4 address
Dial(“tcp4”, “”, “www.google.com:80”) = _, dial tcp4 [2404:6800:8005::68]:80: non-IPv4 address
— 74.125.19.99:http —
http://www.google.com:http
Dial(“tcp4”, “”, “www.google.com:http”) = _, dial tcp4 [2404:6800:8005::68]:80: non-IPv4 address
Dial(“tcp4”, “”, “www.google.com:http”) = _, dial tcp4 [2404:6800:8005::68]:80: non-IPv4 address
— 074.125.019.099:0080 —
— [::ffff:74.125.19.99]:80 —
— [::ffff:4a7d:1363]:80 —
— [0:0:0:0:0000:ffff:74.125.19.99]:80 —
— [0:0:0:0:000000:ffff:74.125.19.99]:80 —
— [0:0:0:0:0:ffff::74.125.19.99]:80 —
FAIL
make[1]: *** [test] Error 1
make[1]: Leaving directory `/home/oppih/c0ding/go/src/pkg/net’
make: *** [net.test] Error 2

但是看这个Go test,是个[net.test],而且用的是Dial(“tcp4”, “”, “www.google.com:http”),但是我的机子上的hosts文件里已经把Google家的服务统一改成了IPv6的去了,(这还不是墙惹的么?!)。所以结论是这个错误不影响编译结果~

嗯,按照惯例,写了个类似Hello World的程序,当然,Hello之后用别的词儿代替了。

最后,还看到一段比较有趣的东西:

{ 要不要独立占一行的信仰之争终于结束了。还记得前段时间有位同学来 email 指责我开源的代码没有章法。程序写的太乱。他的理由就是,我的 { 都没有独占一行。好了,争论可以结束了。在 Go 里,如果你把 { 从 if/for 语言的行末去掉,放在下一行。编译器是不会让你通过的。(除非你再加一个 ; )我很欣慰 😉

昨天中午睡多了,晚上又吃多了,然后到了夜里就睡不着折腾这个东西……到两点多才睡觉……哎。

-EOF-

Advertisements

One thought on “Ubuntu上编译安装Go语言

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s