解决升级go版本遇到的Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.问题

解决升级go版本遇到的Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.问题

环境

macbook pro
MACOS X 10.11

GO版本1.4

该问题适用场景1.6版本-1.8版本的GO代码编译

问题描述

按照go按照指南在go根目录/src下执行

./all.bash

遇到

Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.错误,升级失败

问题提示分析

编译GO 1.6版本以上的需要依赖GO 1.4版本的二进制,并且需要把GOROOT_BOOTSTRAP的路径设置为1.4版本GO的根目录,这样它的bin目录就可以直接使用到1.4版本的GO

解决方案

先编译go1.4版本,设置好GOROOT_BOOTSTRAP,然后再执行脚本编译安装GO1.6以上版本

具体步骤

1.如果之前已经安装过老版本的Go,清除 GOPATH, GOROOT变量。

unset GOPATH
unset GOROOT

2.获取1.4GO源代码,这里以git获取为例

git clone [email protected]:golang/go.git
cd go
git checkout -b 1.4.3 go1.4.3
cd src
./all.bash
复制 ~/go 下的文件到 $GOROOT_BOOTSTRAP(默认值是~/go1.4)---如果采用这种方式,GOROOT_BOOTSTRAP适用另一个路径,免得与新版本GO冲突

记得设置GOROOT为代码目录

3.获取最新版本的GO版本

还是不要获取了。。。因为你不知道版本号,会遇到该问题(即因为go-master分支是没有VERSION文件,故会有问题,需要选择发行版进行编译)

go tool dist: FAILED: not a Git repo; must put a VERSION file in $GOROOT

4.编译新版GO源码

cd ~/go
git clean -dfx
git checkout -b 1.8 go1.8
cd src
./all.bash
即可等待编译完成
ALL TESTS PASSED
字样表示编译安装OK
编译完成后,设置 $GOPATH 以及添加Go二进制路径到 $PATH

5.配置好之后,使用go version命令查看版本是否正确

feiqianyousadeMacBook-Pro:Downloads yousa$ go version
go version go1.8 darwin/amd64

你可能感兴趣的:(工作经验,go)