Go1.6 的编译过程需要 Go1.4 的二进来实现 bootstrap(自举) 简单来说: Go需要Go自身来编译
快速安装脚本
1 | wget -O- https://blog.yumc.pw/attachment/script/shell/go.sh | bash -s -v 1.11.1 -s /opt/src -i /opt |
- 参数说明
-v指定安装的版本-s指定编译的目录-i指定安装的目录
拉取源代码
- 从 github 拉取源代码 到
/opt/src我习惯放在这里cd /opt/srcgit clone https://github.com/golang/go.git
先编译安装 GO1.4 并设置 GOROOT_BOOTSTRAP
- 安装
gcc和glibc-develyum install gcc glibc-devel
- 切换分支到 1.4 并且编译
cd /opt/src/gogit checkout -b 1.4.3 go1.4.3cd src./all.bash
- 复制
BOOTSTRAP(GO1.4)到/opt/go1.4并且设置GOROOT_BOOTSTRAPcp /opt/src/go/ /opt/go1.4 -rfexport GOROOT_BOOTSTRAP=/opt/go1.4
编译最新版本
- 切换分支到 master 并且编译 (推荐用稳定Tag 比如 1.10.3 有时候 master 会编译不过)
cd /opt/src/gogit clean -dfxgit checkout masterORgit checkout -b 1.10.3 go1.10.3cd src./all.bashcp /opt/src/go /opt/go -rfORcp /opt/src/go /opt/go1.10.3 -rf
设置环境变量
- 设置
GOROOTexport GOROOT=/opt/go
- 设置
GOPATHexport GOPATH=/home/go