• 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.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

  • 相关阅读:
    Net163网页测试
    单片机无线上网的几种方式
    5V到3V3的电平转换-串口通信
    uart rs232 rs485
    转:TI公司CC系列的各种芯片的区别
    OpenWrt 路由器固件
    cortex-m4 不能运行Linux, 可以运行 uclinux, ucos iii
    Lwip Uip
    Java-06-交换两个变量的值
    Java-05-比较equals()与== [转载]
  • 原文地址:https://www.cnblogs.com/qinqiao/p/golang-upgrade-from-current-version-to-new.html
Copyright © 2020-2023  润新知