golang基于当前1.9版本进行源码编译升级到1.10
2018-03-04 17:32
316 查看
一、起因
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.bash 1240.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
相关文章推荐
- Ubuntu下升级git版本(源码编译安装git)
- ubuntu kylin 14.04 64位下进行Android 4.4.2 R2版本的源码编译
- ubuntu kylin 14.04 64位下进行Android 4.4.2 R2版本的源码编译
- notepad源码windows下编译教程(基于版本7.4.2)
- Ubuntu下升级git版本(源码编译安装git)
- Ubuntu下升级git版本(源码编译安装git)
- jQuery源码分析系列(版本1.9 - 1.10)
- Ubuntu 17.04版本下,opencv进行源码编译安装
- 基于cdh5.10.x hadoop版本的apache源码编译安装spark
- mysql5.6 源码编译安装 基于centOS6.8 Basic Server
- 解决ubuntu下firefox升级到当前最新版本
- 基于TCP网络通信的自动升级程序源码分析-服务器发送文件
- iOS如何取得APP的版本信息跟服务器对比进行升级提示
- Activity的绘制流程简单分析(基于android 4.0源码进行分析)
- 新编译的GDAL1.9 C/C++ C# Python版本
- 基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结【依赖库源码包】
- 在Xcode中使用Git进行源码版本控制
- 在eclipse中部署openfire4.0.4(最新版本) 源码后编译
- 如何使用VC6编译sqlite3源码生成动态链接库(版本:sqlite-source-3_6_23_1)