x625802392 发表于 2018-9-20 12:57:00

golang基于当前1.9版本进行源码编译升级到1.10

一、起因
  golang出了最新的1.10版本,而刚出的vgo也是需要基于该最新版本的。为了测试vgo,因此需要将我的v1.9升级到v1.10版本。
  安装过golang的同学都知道,golang常用的有2种安装方式。


[*]直接安装官方编译好的包。比如下载go1.7.4.darwin-amd64.tar.gz
[*]基于源码进行编译安装。
  下面来说说基于源码编译安装。网上的很多教程在说明源码安装时,都在说明需要基于1.4.3版本,即先有一个母版本的go,再用来编译最新要安装的版本。
  但是,我要说下但是。我最开始使用golang时,是直接下载的编译包。直接绕开了早期的版本和母版本的问题。这次想升级,也不想再去下载基于用C写的版本了。因此尝试直接使用当前1.9版本进行升级安装。

二、升级操作
  当前环境说明:


[*]系统:mac
[*]二进制安装目录:~/go1.9/
2.1 下载源码
  这里没有从gitlhub下载。因为下载量会比较大。本次直接从官网进行下载。
  

#下载 go1.10 放在当前家目录  
cd
  
# 因为一些国内的网站还没有最新的1.10的安装包,因此才考虑使用源码,
  
# 但源码下载也需要FQ,如果你用代理,可以直接在命令行加上代理
  
export https_proxy=YOUR_IP:YOUR_PORT
  
wget wget https://dl.google.com/go/go1.10.src.tar.gz
  
# 解压
  
tar -zxvf go1.10.src.tar.gz
  

2.2 安装
  安装前需要设置一个环境变量GOROOT_BOOTSTRAP。即用来指定当前golang的二进制目录。
  

go env | egrep 'PATH|ROOT'  
GOPATH="/Users/song/jungleCode"
  
GOROOT="/Users/song/go1.9"
  

  
# set 环境变量
  
GOROOT_BOOTSTRAP=/Users/song/go1.9/
  

  
cd go1.10/src/
  
time bash -x ./all.bash
  

  启动执行后,主要会进行如下操作:


[*]build相关的工具链toolchain。
[*]对内置的package进行测试。
[*]运行runtime,sync等
[*]检查竞争(Testing race detector)
[*]进行API检查
  最后,完成安装,安装后的二进制在当前目录下的bin目录。安装用时1240秒。以后是安装结束时的最后4行日志。
  

# Installed Go for darwin/amd64 in /Users/song/go1.10  
# Installed commands in /Users/song/go1.10/bin
  
# *** You need to add /Users/song/go1.10/bin to your PATH.
  
# bash -x ./all.bash1240.55s user 456.11s system 294% cpu 9:35.17 total
  

2.3 设置新环境
  如上,已经生成了新的二进制。需要修改golang的环境变量GOROOT。
  

vim ~/.zshrc  
# 将GOROOT的值由/Users/song/go1.9改变/Users/song/go1.10
  
source ~/.zshrc
  
go version
  
# go version go1.10 darwin/amd64
  

  大功告成。
  终于可以玩vgo了。推荐2个链接。
  https://zhuanlan.zhihu.com/p/33926171
  https://zhuanlan.zhihu.com/p/33935373


页: [1]
查看完整版本: golang基于当前1.9版本进行源码编译升级到1.10