解决升级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下执行

  1. ./all.bash

遇到

  1. 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变量。

  1. unset GOPATH
  2. unset GOROOT

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

  1. git clone git@github.com:golang/go.git
  2. cd go
  3. git checkout -b 1.4.3 go1.4.3
  4. cd src
  5. ./all.bash

复制 ~/go 下的文件到 $GOROOT_BOOTSTRAP(默认值是~/go1.4)—-如果采用这种方式,GOROOT_BOOTSTRAP适用另一个路径,免得与新版本GO冲突

记得设置GOROOT为代码目录

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

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

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

4.编译新版GO源码

  1. cd ~/go
  2. git clean -dfx
  3. git checkout -b 1.8 go1.8
  4. cd src
  5. ./all.bash

即可等待编译完成
ALL TESTS PASSED
字样表示编译安装OK
编译完成后,设置 $GOPATH 以及添加Go二进制路径到 $PATH

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

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

分类: web

标签:   golang