一、问题
GO1.6的编译过程需要GO1.4的二进制来实现bootstrap(自举)(简单来说:GO需要GO自身来编译)
二、解决方案
从Github的GO仓库镜像来获取GO的源码,首先编译GO1.4(只需要gcc和glibc,不需要GO来编译),使用编译好的GO1.4的二进制来编译GO1.6。
三、步骤
1. 如果之前已经安装过老版本的GO,清除$GOPATH,$GOROOT变量。
2. 安装好Git
3. 安装好gcc和glibc
4. 从源码编译安装GO1.4
cd ~/
git clone git@github.com:golang/go.git
cd go
git checkout -b 1.4.3 go1.4.3
cd src
./all.bash
5. 复制 ~/go 到 $GOROOT_BOOTSTRAP(默认值是 ~/go1.4)
cp -rf ~/go ~/go1.4
6. 从源代码编译安装GO1.6
cd ~/go
git clean -dfx
git checkout -b 1.6 go1.6
cd src
./all.bash
7. 设置 $GOPATH 以及添加GO二进制路径到 $PATH