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
golang基于当前1.9版本进行源码编译升级到1.10的更多相关文章
- CentOS6.6源码编译升级GCC至4.8.2
升级前提 源码编译需要至少要有一个可用的gcc编译器. 可以用过yum自动安装或者手动下载rpm包安装. 通过yum可以看到至少需要下面这些安装包,所以可以到许多rpm package站点中搜索下载相 ...
- 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 ...
- wso2esb源码编译总结
最近花了两周的空闲时间帮朋友把wso2esb的4.0.3.4.6.0.4.7.0三个版本从源码编译出来了.以下是大概的一些体会. wso2esb是基于carbon的.carbon是个基于eclipse ...
- 基于cdh5.10.x hadoop版本的apache源码编译安装spark
参考文档:http://spark.apache.org/docs/1.6.0/building-spark.html spark安装需要选择源码编译方式进行安装部署,cdh5.10.0提供默认的二进 ...
- 源码编译安装LAMP环境及配置基于域名访问的多虚拟主机
实验环境及软件版本: CentOS版本: 6.6(2.6.32.-504.el6.x86_64) apache版本: apache2.2.27 mysql版本: Mysql-5.6.23 php版本 ...
- 基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建
基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...
- 从源码(编译)安装golang
从源码安装golang 通常情况下,安装go只需要在官网(https://golang.org/dl/)下载适合系统的二进制发布包,按照安装说明进行安装即可. 对于Linux, Mac OS X和Fr ...
- 基于nopCommerce的开发框架(附源码)
.NET的开发人员应该都知道这个大名鼎鼎的高质量b2c开源项目-nopCommerce,基于EntityFramework和MVC开发,拥有透明且结构良好的解决方案,同时结合了开源和商业软件的最佳特性 ...
- 基于源码编译安装openssh
最近的,openssl/openssh等相继漏洞的暴露,让暴露在公网的linux.沦陷为肉鸡的正营... 没办法,还是升级版本... 00.openssh简介 OpenSSH 是一组安全远程的连接工 ...
随机推荐
- 记录--linux下mysql数据库问题
本次主要记录一下linux下mysql数据库的一些问题,也是之前经常用到的知识,这里简单总结一些问题,方便自己以后的回顾.原来一直使用的是阿里云的RDS数据库mysql版,主要是因为上次阿里云做活动可 ...
- Shodan全世界在线设备搜索引擎
reproduction from https://danielmiessler.com/study/shodan/ What is Shodan? Shodan is a search engine ...
- Flutter——AlertDialog组件、SimpleDialog组件、showModalBottomSheet组件(弹窗组件)
AlertDialog组件 import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: " ...
- 【视频】谷歌大佬30分钟让你入门机器学习(2019谷歌I/O资源分享)
如果你是个谷粉,就一定会知道: 谷歌向来都很大胆.当所有的科技公司都在讲产品.讲利润的时候,2019年的谷歌开发者大会的主题却是:人文关怀.要知道,这是政府操心的事,而不是一家公司的任务. 谷歌敢这样 ...
- servlet版本与tomcat版本对应关系,各版本web.xml头信息写法
The mapping between the specifications and the respective Apache Tomcat versions is: Servlet Spec JS ...
- springboot知识点【笔记】
# **一.**Spring Boot 入门 ## 1.Spring Boot 简介 > 简化Spring应用开发的一个框架:>> 整个Spring技术栈的一个大整合:>> ...
- MySQL进阶14--标识列(自增序列/auto_increment)--设置/展示步长--设置/删除标示列
/*进阶14 标识列 又称为自增序列; 含义 : 可以不用手动的插入值, 系统提供默认的序列值(1-->n) 特点 : 1.标识列必须和主键搭配? 不一定,但要求是一个key 2.一个表可以有几 ...
- Git----拉取远程分支,git pull,git rebase,git pull --rebase的区别
git pull 相当于自动的 fetch 和 merge 操作,会试图自动将远程库合并入本地库,在有冲突时再要求手动合并. git rebase 可以确保生产分支commit是一个线性结构,方便ro ...
- 多继承以及MRO顺序
class A: def test(self): print("A --- test方法") def demo(self): print("A --- demo方法&qu ...
- Codeforces Round #464 (Div. 2) D题【最小生成树】
Valya and Tolya are an ideal pair, but they quarrel sometimes. Recently, Valya took offense at her b ...