一、起因

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

golang基于当前1.9版本进行源码编译升级到1.10的更多相关文章

  1. CentOS6.6源码编译升级GCC至4.8.2

    升级前提 源码编译需要至少要有一个可用的gcc编译器. 可以用过yum自动安装或者手动下载rpm包安装. 通过yum可以看到至少需要下面这些安装包,所以可以到许多rpm package站点中搜索下载相 ...

  2. Ubuntu 16.04源码编译安装nginx 1.10.0

    一.下载相关的依赖库 pcre 下载地址 http://120.52.73.43/jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.t ...

  3. wso2esb源码编译总结

    最近花了两周的空闲时间帮朋友把wso2esb的4.0.3.4.6.0.4.7.0三个版本从源码编译出来了.以下是大概的一些体会. wso2esb是基于carbon的.carbon是个基于eclipse ...

  4. 基于cdh5.10.x hadoop版本的apache源码编译安装spark

    参考文档:http://spark.apache.org/docs/1.6.0/building-spark.html spark安装需要选择源码编译方式进行安装部署,cdh5.10.0提供默认的二进 ...

  5. 源码编译安装LAMP环境及配置基于域名访问的多虚拟主机

    实验环境及软件版本: CentOS版本: 6.6(2.6.32.-504.el6.x86_64) apache版本: apache2.2.27 mysql版本:  Mysql-5.6.23 php版本 ...

  6. 基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建

    基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...

  7. 从源码(编译)安装golang

    从源码安装golang 通常情况下,安装go只需要在官网(https://golang.org/dl/)下载适合系统的二进制发布包,按照安装说明进行安装即可. 对于Linux, Mac OS X和Fr ...

  8. 基于nopCommerce的开发框架(附源码)

    .NET的开发人员应该都知道这个大名鼎鼎的高质量b2c开源项目-nopCommerce,基于EntityFramework和MVC开发,拥有透明且结构良好的解决方案,同时结合了开源和商业软件的最佳特性 ...

  9. 基于源码编译安装openssh

     最近的,openssl/openssh等相继漏洞的暴露,让暴露在公网的linux.沦陷为肉鸡的正营... 没办法,还是升级版本... 00.openssh简介 OpenSSH 是一组安全远程的连接工 ...

随机推荐

  1. awk 条件及循环语句和字符串函数

    条件语句 if(条件表达式) 动作1 else if(条件表达式) 动作2 else 动作3 循环语句: while循环: while(条件表达式) 动作 do while循环: do 动作 whil ...

  2. SQL注入是什么?如何防止?

    SQL注入是什么?如何防止? SQL注入是一种注入攻击,可以执行恶意SQL语句.下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助. 什么是SQL注入? ...

  3. 【小顶堆的插入构造/遍历】PatL2-012. 关于堆的判断

    L2-012. 关于堆的判断 时间限制   将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x a ...

  4. P2085 最小函数值[优先队列]

    题目描述 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个 ...

  5. redis-4.0.14 cluster 配置实战

    1.操作系统配置 切换到root用户修改配置sysctl.conf vim /etc/sysctl.conf # 添加配置: vm.max_map_count= vm.overcommit_memor ...

  6. win10 注册DLL

    昨天用c++写了一个ocx插件,注册就死活注册不上,折腾了半天1.打开C:\Windows\SysWOW64 文件夹 找到cmd  右键管理员运行 2.将你的插件或者dll放到此目录下3.regsvr ...

  7. stm32 HardFault_Handler调试及问题查找方法——飞思卡尔

    看到有朋友遇到Hard Fault 异常错误,特地找到一篇飞思卡尔工程师写的一片经验帖,定位Hard Fault 异常. Kinetis MCU 采用 Cortex-M4 的内核,该内核的 Fault ...

  8. 50、[源码]-Spring容器创建-Bean创建完成

    50.[源码]-Spring容器创建-Bean创建完成 11.finishBeanFactoryInitialization(beanFactory);初始化所有剩下的单实例bean: beanFac ...

  9. Excel开发VBA学习

    1.合并字符串A1&A22.拆分字符串LEFT(A2,SEARCH("-",A2)-1)3.下拉选项Data->Data validation->List 1. ...

  10. 代码 | 自适应大邻域搜索系列之(6) - 判断接受准则SimulatedAnnealing的代码解析

    前言 前面三篇文章对大家来说应该很简单吧?不过轻松了这么久,今天再来看点刺激的.关于判断接受准则的代码.其实,判断接受准则有很多种,效果也因代码而异.今天介绍的是模拟退火的判断接受准则.那么,相关的原 ...