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/src
git clone https://github.com/golang/go.git
先编译安装 GO1.4 并设置 GOROOT_BOOTSTRAP
- 安装
gcc
和glibc-devel
yum install gcc glibc-devel
- 切换分支到 1.4 并且编译
cd /opt/src/go
git checkout -b 1.4.3 go1.4.3
cd src
./all.bash
- 复制
BOOTSTRAP(GO1.4)
到/opt/go1.4
并且设置GOROOT_BOOTSTRAP
cp /opt/src/go/ /opt/go1.4 -rf
export GOROOT_BOOTSTRAP=/opt/go1.4
编译最新版本
- 切换分支到 master 并且编译 (推荐用稳定Tag 比如 1.10.3 有时候 master 会编译不过)
cd /opt/src/go
git clean -dfx
git checkout master
ORgit checkout -b 1.10.3 go1.10.3
cd src
./all.bash
cp /opt/src/go /opt/go -rf
ORcp /opt/src/go /opt/go1.10.3 -rf
设置环境变量
- 设置
GOROOT
export GOROOT=/opt/go
- 设置
GOPATH
export GOPATH=/home/go