Golang1.14的源码安装和升级

Golang1.14的源码安装和升级

go1.4之前是由c++编译,而从1.5开始则是用go语言自身编译。

因此1.4以前的源码编译安装需要gcc,而1.5及以后的版本基本都需要先安装一个go1.4来编译源码,此处以go 1.14.2为例
其他版本应该是大同小异的。

网上教程其实很多,不过我自己看着有点累,他们有不少多余且复杂的操作,以至于我看不懂而不敢去盲目复现。

最后还是结合了官网上的源码安装教程搞定了官网教程

其实思路非常简单:1.配置编译器环境变量。2.运行脚本。3.将go加入环境变量

一、下载

二、安装go-1.4-bootstrap

  1. 首先解压go1.4-bootstrap-20171003.tar.gz

    我就解压到自己的下载目录了,并重命名叫做go1.4,最终路径如下

    # 注意自己的路径和重命名
    /Users/jakuxa/Download/go1.4
    
  2. 配置环境变量,将go1.4注册到环境中,接下来要用它作为编译工具

    • mac或Linux系统
    # 打开mac系统环境变量配置文件
    $ vim ~/.bash_profile
    
    # 在任意地方添加两行环境变量
    > export GOROOT_BOOTSTRAP=/Users/jakuxa/Download/go1.4
    > export CGO_ENABLED=0
    
    # 刷新生效
    $ source ~/.bash_profile
    
    # 进入go1.4/src目录下,运行make.bash
    $ cd /Users/jakuxa/Download/go1.4/src
    $ sh make.bash
    
    • windows系统

    windows这里,我们采用的是用最简单的办法安装go 1.4版本

    用msi安装包的方式完成go1.4安装后,再按照下面mac和linux系统下的方式用go1.4去编译安装go1.14的源码,注意下windows下环境变量等的设置方法(右键计算机——属性——高级系统设置——环境变量)和Linux不同就好了

    其实这么做有一丢丢蠢,因为用.msi安装包的方式去安装go1.4再安装go1.14,这与大家执着于源码安装golang而点进这篇博客的初衷背道而驰。

    理论上在windows使用go1.4 bootstrap去安装go1.14也完全行得通。但我在实际操作中却困难重重,从gcc安装到bootstrap安装到新版本go安装,每一步都错误百出。因此就不太推荐了。

    (推荐动手能力强的,明白go源码安装思路的可以尝试一下)
    windows下的gcc安装参考

    # ctrl+R cmd打开命令行
    > gcc -v
    # 有版本号信息说明已经装了gcc,没有则需要安装
    # 剩余步骤windows的步骤和mac基本一致,请参考mac去做吧,记得运行cmd时要以管理员身份打开
    # 另外唯一的区别mac中运行的.bash文件,windows下对应去运行.bat后缀的文件,如make.bat和all.bat
    

    确保有gcc后,windows添加环境变量

    右键 此电脑 -> 属性 -> 高级系统设置 -> 环境变量 ->系统变量 新建

    变量名: CGO_ENABLED

    变量值: 0

    变量名: GOROOT_BOOTSTRAP

    变量值: /Users/jakuxa/Download/go1.4

    #注意改成windows下的路径,这里我就用这个指代了

三、安装go1.14

  1. 解压go1.14.2.src.tar.gz

    最终路径如下

    # 注意自己的路径
    /Users/jakuxa/go
    
  2. 安装并配置

    • mac系统
    $ cd /Users/jakuxa/go/src
    $ sh all.bash
    
    # 打开mac系统环境变量配置文件
    $ vim ~/.bash_profile
    
    # 这是golang源码路径,以后安装第三放包都在这里
    > export GOPATH=/Users/jakuxa/项目/golang
    # go路径
    > export GOROOT=/Users/jakuxa/go/
    # 修改之前的GOROOT_BOOTSTRAP
    > export GOROOT_BOOTSTRAP=/Users/jakuxa/go/
    # 加入到path中
    > export PATH=$PATH:$GOROOT/bin
    
    # 刷新生效
    $ source ~/.bash_profile
    
    # 检查安装是否成功
    $ go version
    
    • windows系统
    > cd /Users/jakuxa/go/src
    > all.bat
    

    添加环境变量到path

    还记得当初JAVA_HOME怎么配的吗,xD

    > go version
    

四、go的升级

  1. 下载新版源码包,假设为go1.15.1.src.tar.gz,并假设我把他解压到我的下载文件夹:

    # 新版go源码文件解压在哪无所谓,只要先别覆盖老版本就可以
    /Users/jakuxa/Download/go
    
  2. 用go1.14编译安装

    仍然是编译源码,实际上就是覆盖安装,但不需要再用go1.4了

    go可以用老版本编译新版本,所以等1.14安装好后,就可以编译1.15或者以上版本

    # 到新版的src目录下执行相同操作
    $ cd /Users/jakuxa/Download/go/src
    $ sh all.bash
    
  3. 黏贴覆盖老版本go

    # 可以鼠标操作去复制黏贴,不一定非要用命令
    # /Users/jakuxa/go就是我们原先使用的老版本的go,如此完成覆盖更新
    $ mv /Users/jakuxa/Download/go /Users/jakuxa/go
    # 如果go根目录也改变了,则需要去.bash_profile中修改GOPATH坏境变量
    # 如果打算安装两个版本,则不要覆盖老版本,并通过修改GOPATH在新老版本间切换
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值