首先,请允许我说句脏话:Fuck you, GFW.
现在安装golang是一件麻烦的事情,因为Google悲剧了,我们无法从Golang的官网上下到源代码。而我的Ubuntu通过apt-get安装到的是1.0.2版本,编译一个开源项目时,会报sync.Pool未定义。虽然可以下载到开源项目的X86版本,但我的最终目的是在Arm上运行,因此我需要从源代码编译。
1. 找源代码
golang.org上不去,借用同事的国外代理搞到了go1.3.1.src.tar.gz,解压,编译,果断继续悲剧!看了下问题,有一个Python脚本在访问code.google.com。。。,都说Google上不去了,还访问个毛。
2. 找二进制
断续代理上golang.org,发现有二进制提供下载,用代理下个X86的,40多MB,代理性能太差,下不来。。。根据文件名bing了一下,发现有网站提供下载,yes!地址:http://fossies.org/linux/misc/go1.3.1.linux-386.tar.gz。网站上也提供源代码的下载,不过,二进制包里也包括源代码了,下一个就够了。
3. 编译
虽然有了二进制,但arm的环境还是没有,需要编译一下。
设置GOROOT:export GOROOT=/usr/local/go
设置PATH:export PATH=$PATH:$GOROOT/bin
编译arm:CGO_ENABLED=0 GOARCH=arm GOOS=linux ./make.bash
成功之后,运行go tool,可以看到有5g和5l。
随便搞个hellow world,CGO_ENABLED=0 GOARCH=arm go build hello.go,可以编译出个在arm上运行的可执行文件。
有疑问加站长微信联系(非本文作者)