设为首页 收藏本站
查看: 2309|回复: 0

[经验分享] golang基于当前1.9版本进行源码编译升级到1.10

[复制链接]

尚未签到

发表于 2018-9-20 12:57:00 | 显示全部楼层 |阅读模式
一、起因
  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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-598892-1-1.html 上篇帖子: golang学习笔记7 使用beego swagger 实现API自动化文档 下篇帖子: Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表