[每周一更]-(第54期):Go的多版本管理工具

这篇具有很好参考价值的文章主要介绍了[每周一更]-(第54期):Go的多版本管理工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[每周一更]-(第54期):Go的多版本管理工具,每周一更,golang,开发语言,后端

参考

  • https://zhuanlan.zhihu.com/p/611253641
  • https://learnku.com/articles/78326

前文概要

Go语言从开始使用从1.13起步,随着泛型的支持,带领团队在转型Go的时候,做基础组件架构选型使用1.18,但是Go版本不断迭代想使用最新版本来体验下,类比前端中node,有个nvm工具;
联想到Go应该也会有对应的版本管理工具,果不其然是有的,还不止一个,下边来对比介绍一下。
配置完成就可以灵活切换不同GO版本,愉快的编码把!

  • gvm Go Version Manager(多年不更新了)
    • github:https://github.com/moovweb/gvm
  • g 是一个多平台(Linux、Windows、MacOS)的 go 多版本管理工具。
    • github:https://github.com/voidint/g

不同系统中如何安装

gvm
  • 由于仓库多年不更新,感兴趣的可自行了解,Windows这里不做文档安装介绍,可以源码学习了解

安装

  bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
Mac OS X Requirements
xcode-select --install
brew update
brew install mercurial
Linux Requirements
  • Debian/Ubuntu
sudo apt-get install curl git mercurial make binutils bison gcc build-essential
  • Redhat/Centos
sudo yum install curl
sudo yum install git
sudo yum install make
sudo yum install bison
sudo yum install gcc
sudo yum install glibc-devel
常用命令
gvm install go1.4
gvm use go1.4 [--default]

gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.5

gvm list
gvm listall
gvm implode
g(采纳,满足需求)

安装包下载地址:github.com/voidint/g/releases

特性

  • 支持列出可供安装的 go 版本号
  • 支持列出已安装的 go 版本号
  • 支持在本地安装多个 go 版本
  • 支持卸载已安装的 go 版本
  • 支持在已安装的 go 版本之间自由切换
  • 支持清空安装包文件缓存
  • 支持软件自我更新(>= 1.5.0)
  • 支持软件绿色卸载(>= 1.5.0)
Windows+Git bash

下载地址:https://github.com/voidint/g/releases/download/v1.5.0/g1.5.0.windows-amd64.zip
找到对应的windows版本,下载g.exe,配置到环境变量
g安装成功后:环境变量需要切换:

  • 旧版本是go1.18.10,环境变量配置:C:\Program Files\Go\bin(需要先清掉)
  • 新的变量配置:C:\Users\xxx(用户名).g\go\bin
Mac/Linux

下载地址:https://github.com/voidint/g/releases/download/v1.5.0/g1.5.0.linux-amd64.tar.gz

  • 创建 g 家目录(推荐~/.g目录)

  • 下载release的二进制压缩包,并解压至 g 家目录下的 bin 子目录中(即~/.g/bin目录)。

  • 将所需的环境变量写入~/.g/env文件

cat >~/.g/env <<'EOF'
#!/bin/sh
# g shell setup
export GOROOT="${HOME}/.g/go"
export PATH="${HOME}/.g/bin:${GOROOT}/bin:$PATH"
export G_MIRROR=https://golang.google.cn/dl/
EOF
  • 将~/.g/env导入到 shell 环境配置文件(如/.bashrc、/.zshrc…)
cat >>~/.bashrc <<'EOF'
# g shell setup
if [ -f "${HOME}/.g/env" ]; then
. "${HOME}/.g/env"
fi
EOF

启用环境变量文章来源地址https://www.toymoban.com/news/detail-597035.html

source ~/.bashrc # 或source ~/.zshrc
常用命令
查看远程稳定版本:             g ls-remote stable
查询已安装的 go 版本:         g ls
切换到另一个已安装的 go 版本:  g use 1.19.10
安装目标 go 版本1.20.5:      g install 1.20.6
卸载一个已安装的 go 版本:     g uninstall 1.19.10
更新 g 软件本身:              g self update
卸载 g 软件本身:              g self uninstall 
清空 go 安装包文件缓存:        g clean 

到了这里,关于[每周一更]-(第54期):Go的多版本管理工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 每周一算法:A*(A Star)算法

    每周一算法:A*(A Star)算法

    在 3 × 3 3times 3 3 × 3 的棋盘上,摆有八个棋子,每个棋子上标有 1 1 1 至 8 8 8 的某一数字。棋盘中留有一个空格,空格用 0 0 0 来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为 123804765 12

    2024年03月15日
    浏览(17)
  • [每周一更]-(第82期):认识自然处理语言(NLP)

    [每周一更]-(第82期):认识自然处理语言(NLP)

    GPT的大火,带起了行业内大模型的爆发;国内外都开始拥有或者研发自己的大模型,下边我们从NLP来进一步深入了解大模型、AI。 一、什么是NLP? 自然语言处理 (英语:Natural Language Processing,缩写作 NLP )是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然

    2024年01月16日
    浏览(15)
  • 每周一算法:倍增法求区间最大最小值(RMQ)

    每周一算法:倍增法求区间最大最小值(RMQ)

    RMQ 是英文 Range Maximum/Minimum Query 的缩写,表示区间最大(最小)值。使用倍增思想解决 RMQ 问题的方法是 ST 表(Sparse Table, 稀疏表 )。ST 表是用于解决 可重复贡献问题 的数据结构。 可重复贡献问题 是指对于运算 opt ⁡ operatorname{opt} opt ,满足 x opt ⁡ x = x xoperatorname{opt}

    2024年02月02日
    浏览(18)
  • 每周一算法:高精度乘法(二)大整数乘大整数

    每周一算法:高精度乘法(二)大整数乘大整数

    高精度乘法是采用模拟算法对上百位甚至更多位的数字进行乘法运算。具体应用时一般分为两类: 大整数数乘整数 大整数乘大整数 大整数乘大整数的基本思想是模拟竖式计中算多位数乘多位数,一般分为下面几步: 将乘数 A A A 的每一位 A i A_i A i ​ 分别与乘数 B B B 的每一

    2023年04月14日
    浏览(46)
  • [每周一更]-(第69期):特殊及面试的GIT问题解析

    [每周一更]-(第69期):特殊及面试的GIT问题解析

    整合代码使用过程的问题,以及面试遇到的细节,汇总一些常用命令的对比解释和对比; 1、fetch和pull区别 git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。 git pull则是将远程主机的最新内容拉下来后直接合并,即:git pull = git

    2024年02月08日
    浏览(13)
  • [每周一更]-(第27期):HTTP压测工具之wrk

    [每周一更]-(第27期):HTTP压测工具之wrk

    [补充完善往期内容] wrk是一款简单的HTTP压测工具,托管在Github上,https://github.com/wg/wrk wrk 的一个很好的特性就是能用很少的线程压出很大的并发量. 原因是它使用了一些操作系统特定的高性能 io 机制, 比如 select, epoll, kqueue 等. 其实它是复用了 redis 的 ae 异步事件驱动框架. 确切的

    2024年02月03日
    浏览(13)
  • [每周一更]-(第45期):Docker私有镜像仓库配置并打通阿里云OSS

    [每周一更]-(第45期):Docker私有镜像仓库配置并打通阿里云OSS

    Docker Registry 2 官方镜像创建一个私有镜像仓库,将Docker 镜像上传到 OSS 相应的路径中。 参考: BatchCompute Docker支持:https://help.aliyun.com/document_detail/143334.html?spm=a2c4g.143333.0.0.4a6f8752ls18FR Docker Registry:https://docs.docker.com/registry 基于OSS搭建私有 Docker Registry:https://developer.aliyun.com

    2024年02月03日
    浏览(12)
  • Mac如何安装:node的多版本管理工具(nvm 或 n)

    安装3个步骤如下(前提:需将电脑之前单独下载的node先删除): (1)在Mac的根目录的终端中输入以下命令下载nvm(版本为0.37.0): curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.37.0/install.sh | bash (2)查看nvm是否安装成功的命令:     nvm --version (3)使用nvm安装某个版本的

    2024年02月07日
    浏览(16)
  • 几种Go版本管理工具

    几种Go版本管理工具

    缘起: 编译下面这段代码时,在Mac上没有什么问题,正常运行, 点击查看代码: 但到了Linux上,就会报错: 而在Mac上进行 交叉编译 [1] : (如果出现GOROOT blabla之类的,执行 go env -w GO111MODULE=off ) 也没有什么问题 导致这种情况的原因,可能因Go版本不同而导致 Mac上的Go版本为 1.16, 而Linux上

    2024年02月10日
    浏览(7)
  • 解放你的依赖管理:Go mod包管理工具详解

    Go语言作为一门开源的编程语言,已经广泛应用于各个领域。作为一门现代化的编程语言,Go语言支持模块化开发,而包和依赖管理是模块化开发的重要组成部分。Go mod作为Go语言的官方包管理工具,可以帮助开发者更好地管理包和依赖,提高开发效率和项目可维护性。本文将

    2024年02月07日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包