golang版本管理gvm

2023-11-09

今天小土带来一篇关于Go版本管理器gvm的小短文。废话不多说,开始安装。

安装

如果你使用的mac,mac 需要先安装xcode-select,没安装过的同学可以按照如下命令进行执行安装,这里不做太多说明了。

xcode-select --install
brew update
brew install mercurial

按照github上面指示,我们这里按照命令行进行下载gvm-installer进行安装,终端执行有问题的同学也可以到gvm-installer页面进行clone安装。

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

Cloning from https://github.com/moovweb/gvm.git to /Users/admin/.gvm
Created profile for existing install of Go at "/opt/homebrew/Cellar/go/1.18.1/libexec"
Installed GVM v1.0.22

Please restart your terminal session or to get started right away run
 `source /Users/admin/.gvm/scripts/gvm`

接下来为了使gvm生效,需要执行一下上面提示的source /Users/admin/.gvm/scripts/gvm命令即可,执行结束就可以在新终端使用gvm来切换控制go的版本了。

使用

安装好了,咱们就可以来简单了解一下gvm的支持的一些功能。这下可以呼唤gvm的help选项了。

$gvm help
Usage: gvm [command]

Description:
  GVM is the Go Version Manager

Commands:
  version    - print the gvm version number # 查看gvm的版本
  get        - gets the latest code (for debugging) # 获取最新的代码(一般为了调试)
  use        - select a go version to use (--default to set permanently) # 选择使用的Go版本 (--default 可以永久设置)
  diff       - view changes to Go root # 查看Go root中的变更
  help       - display this usage text 
  implode    - completely remove gvm # 完全删除 gvm 和所有已安装的 Go 版本和包
  install    - install go versions # 安装某个版本的Go
  uninstall  - uninstall go versions # 卸载某个版本的Go
  cross      - install go cross compilers # 安装跨平台Go编译器
  linkthis   - link this directory into GOPATH # 将项目路径链接到GOPATH中
  list       - list installed go versions # 罗列已经安装的Go版本列表
  listall    - list available versions # 罗列可用的Go版本
  alias      - manage go version aliases # 管理Go版本别名
  pkgset     - manage go packages sets # 管理Go包的设置
  pkgenv     - edit the environment for a package set # 编辑Go包集合的环境

gvm的简单使用

先通过gvm listall命令来看下目前的Go版本列表,如下,列表太长了,这里Go1-15的版本列表省略了,可以看出最新的是Go1.19的beta和几个rc版本了。那么咱们接下来通过下载Go1.19的rc版本来做示例。

$gvm listall

gvm gos (available)

   go1
   ...
   go1.16
   go1.16beta1
   go1.16rc1
   go1.16.1
   go1.16.2
   go1.16.3
   go1.16.4
   go1.16.5
   go1.16.6
   go1.16.7
   go1.16.8
   go1.16.9
   go1.16.10
   go1.16.11
   go1.16.12
   go1.16.13
   go1.16.14
   go1.16.15
   go1.17
   go1.17beta1
   go1.17rc1
   go1.17rc2
   go1.17.1
   go1.17.2
   go1.17.3
   go1.17.4
   go1.17.5
   go1.17.6
   go1.17.7
   go1.17.8
   go1.17.9
   go1.17.10
   go1.17.11
   go1.17.12
   go1.18
   go1.18beta1
   go1.18beta2
   go1.18rc1
   go1.18.1
   go1.18.2
   go1.18.3
   go1.18.4
   go1.19beta1
   go1.19rc1
   go1.19rc2
   release.r56
   release.r57
   release.r58
   release.r59
   release.r60
   release.r57.1
   release.r57.2
   release.r58.1
   release.r58.2
   release.r60.1
   release.r60.2
   release.r60.3

安装一个Go版本 先看下目前使用的Go版本,小土这里使用的是go1.18.1的版本。

$go version
go version go1.18.1 darwin/arm64

安装一个最新Go1.19的rc1版本。

$gvm install go1.19rc1
Installing go1.19rc1...
 * Compiling...
go1.19rc1 successfully installed!

版本切换 接下来,咱们切换一下下载好的go版本,这里使用gvm use version即可切换。

$gvm use go1.19rc1
Now using version go1.19rc1

如何永久切换呢?加上--default即可永久设置,可以通过新建终端执行go version,验证查看Go版本是否完全切换。

$gvm use go1.19rc1 --default
Now using version go1.19rc1

然后我们使用go version查看当前使用的Go版本,看来是切换成功了。那么你就可以来去自如地切换Go版本了。尤其是在调试不同Go版本带来的问题代码时候特别有用。

$go version
go version go1.19rc1 darwin/arm64

升级问题排查 若在升级Go过程中,gvm文件的状态发生错乱或者其他问题,可以通过执行rm -rf ~/.gvm来删除gvm进行问题的fix。

goland中使用 还是需要将当前版本复制到一定目录,然后设置goroot

goup

关注我 获取更多好文

alt

本文由 mdnice 多平台发布

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

golang版本管理gvm 的相关文章

  • 基于springboot实现的进销存管理系统

    一 系统架构 前端 html js css jquery 后端 springboot mybatis 环境 jdk1 7 mysql maven 二 代码及数据库 三 功能介绍 01 登录页 02 首页 03 进货管理 进货单据查询 04
  • Spring Boot整合Sharding-JDBC实现强制路由

    目录 强制路由 HintManager 强制分片 强制访问主库 强制路由 ShardingSphere使用ThreadLocal管理分片键值进行Hint强制路由 可以通过编程的方式向HintManager中添加分片值 该分片值仅在当前线程内
  • Redis 的键管理

    一 Redis 数据库管理 Redis 是一个键值对 key value pair 的数据库服务器 其数据保存在 src server h redisDb 中 网上很多帖子说在 redis h 文件中 但是 redis 6 x版本目录中都没
  • Python 元组完全指南 1

    元组用于在单个变量中存储多个项目 mytuple apple banana cherry 元组是 Python 中的 4 种内置数据类型之一 用于存储数据集合 另外还有列表 集合和字典 它们都具有不同的特性和用途 元组是有序且不可更改的集合
  • C 语言运算符详解

    C 语言中的运算符 运算符用于对变量和值进行操作 在下面的示例中 我们使用 运算符将两个值相加 int myNum 100 50 虽然 运算符通常用于将两个值相加 就像上面的示例一样 它还可以用于将变量和值相加 或者将变量和另一个变量相加
  • 【开题报告】基于SpringBoot的工资管理系统

    1 研究背景 基于SpringBoot的工资管理系统的选题背景主要可以从以下几个方面来考虑 1 企业运营管理需求 在现代企业中 薪资管理是人力资源管理的重要组成部分 直接影响到员工的工作积极性和企业的运营成本 随着企业规模的扩大和业务复杂性
  • SpringCloud+saToken实现登录及权限认证

    SpringCloud saToken实现登录及权限认证 文章目录 SpringCloud saToken实现登录及权限认证 1 为什么要用sa Token 2 sa Token功能 3 springcloud集成sa token 3 1
  • Spring框架-Spring Bean管理

    文章目录 Spring Bean管理 Spring Bean 配置方式 使用XML配置方式 User java
  • [每周一更]-(第55期):Go的interface

    参考地址 https juejin cn post 6978322067775029261 https gobyexample com interfaces https go dev tour methods 9 介绍下Go的interfa
  • 基于SpringBoot的足球青训俱乐部

    文章目录 项目介绍 主要功能截图 部分代码展示 设计总结 项目获取方式 作者主页 超级无敌暴龙战士塔塔开 简介 Java领域优质创作者 简历模板 学习资料 面试题库 关注我 都给你 文末获取源码联系 项目介绍 基于SpringBoot的足球
  • 这套Go语言开发框架组合真的非常高效

    我尝试过很多框架 从Django Flask和Laravel到NextJS和SvelteKit 到目前为止 这是我唯一可以使用的不会让我感到疯狂或者放弃项目的堆栈 框架 我喜欢所有这些框架 但我只是不太适应它们的设计方式 实际上 我是一个弱
  • 【计算机开题报告】题库管理系统

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 国内外研究现状 题库管理系统的发展现状 试题库一词 源于20世纪60年代的英国 是在一个教育研究课题上提出的 试题库是指测验试题的有序集合 是适合于具备一
  • springboot git配置文件自动刷新失败问题排查

    http ip port refresh 说明 springBoot版本是1 5 9 接口路径与2 x 不同 路径区别 refresh VS actuator refresh 用postman调用refresh接口刷新git配置 报错如下
  • 【计算机开题报告】 医药信息管理系统

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 1 研究背景 随着医药事业的不断壮大 相关单位对于医药信息的管理变得越来越重要 传统的手工管理效率低 易出错 费时费力 不能及时精确的收集 传递 存储 加
  • 【计算机开题报告】图书管理系统

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 国内外研究现状 国外研究现状 在很多发达国家 图书管理系统的应用和技术发展已经相对完善 并且还建立了数字图书馆 各方面的情况也非常成熟 而图书管理的应用价
  • 【计算机毕业设计】SpringBoot+Vue.js协同过滤算法美食推荐小程序 _7tr93

    伴随着我国社会的发展 人民生活质量日益提高 于是对各种需求进行规范而严格是十分有必要的 所以许许多多的微信小程序应运而生 此时单靠人力应对这些事务就显得有些力不从心了 所以本论文将设计一套协同过滤算法美食推荐小程序 帮助美食推荐进行美食分类
  • 史上最全Java面试八股文(带全部答案)2024年最新版

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基
  • 2024史上最全Java面试八股文(带全部答案)

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基
  • 【go语言】结构体数据填充生成md错误码文件

    这里使用pongo2这个模版引擎库进行md文件渲染 GitHub flosch pongo2 Django syntax like template engine for Go package main import fmt github
  • 2024最强Java面试八股文合集(持续更新)

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基

随机推荐

  • 芯片面积估算

    If giving total standard cell gate count all memory macro list including memory type bit width and depth all other macro
  • Socket中出现EOFException错误问题

    java io EOFException at java io ObjectInputStream PeekInputStream readFully ObjectInputStream java 2681 at java io Objec
  • 六、Vite 常用第三方库(axios、mockjs、sass、echars、element-plus、开箱即用)

    文章目录 一 参考 二 vite 创建 Vue 项目工程 2 1 create vite和vite的关系是什么呢 2 2 vue团队希望弱化vite的一个存在感 但是我们去学习的时候不能弱化的 2 3 创建工程 三 第三方库的安装 开箱即用
  • CMake:递归检查并拷贝所有需要的DLL文件

    文章目录 1 目的 2 设计 整体思路 多层依赖的处理 获取 DLL 所在目录 探测剩余的 DLL 文件 3 代码实现 判断 stack 是否为空 判断 stack 是否为空 获取所有 target 检测并拷贝 DLL 4 使用 1 目的
  • 苏州吴江区实现首单跨区域数字人民币试点场景应用

    作为数字人民币试点的首批城市 苏州一直在数字人民币应用场景的落地方面进展迅速 其中 苏州相城区在全市率先开展数字人民币场景建设及试点 截至目前 已开放试点场景7500余个 占全市总数近50 并在全国率先落地交通补贴批量代发 房屋契税缴纳 智
  • python num循环怎么从1开始

    如何实现python for循环从1开始 range 函数的作用和用法 编写一个从数值1开始的循环 执行后得到的结果 其他注意事项
  • 在OTFS学习中的一些总结

    双选特性 多径传播 gt 时延 gt 频率选择性 时延的倒数为相干带宽 在频域内信道相应的幅值大概保持不变的一段频率称为相干带宽 当信号的带宽小于相干带宽 或者说信号的传输时间 周期 大于时延拓展 信号之间没有干扰 我们认为信号是没有失真的
  • Win10下Anaconda使用conda activate激活环境出错

    直接输入conda activate pytorch 报如下错误 解决方法 1 在base路径下先输入activate 提示如下 2 再输入conda activate base 激活base环境 3 在输入conda activate p
  • [python知识] 爬虫知识之BeautifulSoup库安装及简单介绍

    一 前言 在前面的几篇文章中我介绍了如何通过Python分析源代码来爬取博客 维基百科InfoBox和图片 其文章链接如下 python学习 简单爬取维基百科程序语言消息盒 Python学习 简单网络爬虫抓取博客文章及思想介绍 python
  • awk使用shell变量,shell获取awk中的变量值

    awk使用shell变量 shell获取awk中的变量值 2012 04 13 09 36 28 分类 LINUX 字号 订阅 原文 http renyongjie668 blog 163 com blog static 160053120
  • 今天面试招了个18K的人,从腾讯出来的果然都有两把刷子···

    公司前段时间缺人 也面了不少测试 前面一开始瞄准的就是中级的水准 也没指望来大牛 提供的薪资在15 20k 面试的人很多 但平均水平很让人失望 看简历很多都是4年工作经验 但面试中 不提测试工具 仅仅基础的技术很多也知之不详 多数人数年的工
  • Android 系统启动流程简介

    1 Init 进程启动流程 2 Zygote启动流程 3 SystemServer启动流程 1 Init 进程启动流程 Android启动流程 init进程 gt Zygote进程 gt SystemServer进程 gt 各种应用进程 I
  • [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(7) ---Distributed Hash之前向传播

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475 源码解析 NV
  • 【Php】PhpSpreadsheet安装的坑怎么这么多!

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 人是代码非 一 PhpSpreadsheet不安装直接用行不行 二 安装的坑 1 缺少fileinfo扩展 2 下载中断 3 proc open函数被禁用 4 co
  • Jmeter 集合点详细讲解

    集合点 让所有请求在不满足条件的时候处于等待状态 如 我集合点设置为50 那么不满足50个请求的时候 这些请求都会集合在一起 处于等待状态 当达到50的时候 就一起执行 从而达到并发的效果 那么Jmeter中可以通过同步定时器Synchro
  • Mybatis

    最近又遇到mybatis的问题了 所以把之前写的和补充的笔记一起放上来 一 动态sql 在编写项目的时候经常需要拼接一些复杂的SQL语句 而拼接过程中很容易导致错误 而Mybatis的动态SQL功能正好能够解决这种问题 可以通过使用 if
  • 【长文预警】美团联合创始人王慧文清华产品课

    前言 一 成功和失败的产品 一般来说在一个领域里一款产品的成功对应着无数产品的失败 根据老王个人的经验 成功和失败的比例大约是1 30 失败的原因多种多样 有些啥都没做对 有些作对了一部分 这里列举的失败案例主要讲做对了一部分的 准确说算是
  • sonar.java.binaries的配置

    从sonarQube 4 12开始 sonar将会进行程序的动态检查 不配置sonar java binaries属性将会出错 From SonarJava version 4 12 binary files are required fo
  • 在 Mac 上使用 VMware 安装 Windows 11

    因为项目原因 需要在 windows 环境下测试一下 electron 的表现 于是就记录一下在 mac 虚拟机上安装 windows 的体验 总体来说难度不大 我电脑的情况 2020 款 macbook pro 16g 512g 前期准备
  • golang版本管理gvm

    今天小土带来一篇关于Go版本管理器gvm的小短文 废话不多说 开始安装 安装 如果你使用的mac mac 需要先安装xcode select 没安装过的同学可以按照如下命令进行执行安装 这里不做太多说明了 xcode select inst