Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go每日一库之160:gvm(Go版本管理)

Go每日一库之160:gvm(Go版本管理)

作者头像
luckpunk
发布于 2023-10-02 00:20:15
发布于 2023-10-02 00:20:15
63400
代码可运行
举报
运行总次数:0
代码可运行

**gvm **用于go版本的管理,主要的功能为go版本的查看,下载安装和切换。

安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$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选项了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$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 listall命令来看下目前的Go版本列表,如下,列表太长了,这里Go1-15的版本列表省略了,可以看出最新的是Go1.19的beta和几个rc版本了。那么咱们接下来通过下载Go1.19的rc版本来做示例。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$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的版本。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$go version
go version go1.18.1 darwin/arm64

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$gvm install go1.19rc1 
Installing go1.19rc1...  * Compiling... go1.19rc1 successfully installed!

版本切换

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$gvm use go1.19rc1 
Now using version go1.19rc1

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$gvm use go1.19rc1 --default 
Now using version go1.19rc1

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$go version 
go version go1.19rc1 darwin/arm64

升级问题排查

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

小结

今天的短文主要介绍了一个gvm的使用,希望对大家有所帮助,更多详情可以查看gvm[2],另外站长之前写了一篇关于升级Go版本的文章,主要讲的是使用goup[3]来进行Go版本的管理。小土这里就不介绍了,,感兴趣的同学可以查看终于找到了一款我喜欢的安装和管理 Go 版本的工具

参考资料

gvm-installer: https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer gvm: https://github.com/moovweb/gvm goup: https://github.com/owenthereal/goup

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
利用gvm管理go版本
现在转行开发之后,使用Go语言的场景变多了,有时候很多github上down下来的工程使用了不同的golang版本,在编译的时候,都会遇到一些依赖包的兼容性问题。这就要求我们在同一台机器上,安装多个golang的版本,多个版本之间如何进行快速切换和管理,就成为了一个问题。
AsiaYe
2022/12/07
9520
如何灵活地进行 Go 版本管理
本文谈下我对 Go 版本管理的一些思考,并给大家介绍一个小工具,gvm。这个话题说起来也很简单,但如果想用的爽,还是要稍微梳理下。
波罗学
2019/09/23
1.6K0
使用 GVM 工具管理 Go 版本
在 Go 项目开发中,团队要保持开发版本一致,怎么能够快速的安装及部署并且切换 Go 环境,在这里推荐一款工具 GVM ( Go Version Manager ),它可以便捷切换与自定义 Go Path 、Go Root 等参数,是一款实打实的多版本安装及管理利器。
Meng小羽
2020/07/14
1.3K0
GVM:Go语言版本和包管理的神器!
在 Go 开发中,不同的项目可能需要不同的 Go 版本。这时候,GVM(Go Version Manager)就像是一个救星,它允许您在同一台机器上轻松切换不同版本的 Go。以下是如何安装和使用 GVM 来管理您的 Go 版本。
南山竹
2024/06/06
2.6K0
GVM:Go语言版本和包管理的神器!
使用GVM管理多个版本的Go【Programming(Go)】
使用Go Version Manager保留多个Go环境,包括版本和模块,以简化GOPATH管理。
Potato
2019/11/17
1.5K0
使用GVM管理多个版本的Go【Programming(Go)】
Go 版本管理器 gvm 怎么使用?
在使用 Go 开发项目时,通常我们会遇到关于 Go 版本的一些问题,比如:公司的旧项目使用的低版本 Go 开发,新项目使用的高版本 Go 开发。
frank.
2025/06/09
3810
Go 版本管理器 gvm 怎么使用?
Go 多版本管理工具
在平时开发中,本地新旧项目并行开发的过程中,你大概率会遇到一个令人头疼的问题,如何同时使用两个不同版本的 Golang Runtime 进行开发呢?
贾维斯Echo
2023/10/18
3.2K0
Go 多版本管理工具
Golang 多版本管理
如果你是一个 Golang 的用户,那么你大概率会遇到管理和维护 Golang 版本的诉求,如果你恰好同时需要开发调试两个不同版本的项目,在不考虑强制跳版本的情况下,你或许就需要使用“Golang 版本管理工具”来帮助你减轻负担了。
soulteary
2021/12/21
2.4K0
go语言学习之环境安装(一)
go语言在云计算领域有着极大的市场空间,在云计算领域。明星项目,docker,eted, kubernetes,harbor皆使用go编写。go强大的网络编程,原生支持高并发。
暮雨
2018/10/11
5870
go语言学习之环境安装(一)
你有同时使用多版本 Go 语言的需求吗,那就快使用多版本管理利器 GVM 吧!
Golang 发展迅速,代码迭代非常快,想要在同一环境调试和梳理不同项目进程就成了一件相对棘手的事情。二进制文件的管理比较简单,通过链接使用不同版本的程序即可。实际上主要是一些环境变量和标准库的设置问题,偶然间发现了 GVM - Go Version Manager,GVM 实际上就是帮助我们完成这些配置工作,这算是找到了调试切换版本的福音了。
iMike
2020/05/24
5.2K0
你知道怎么管理golang版本吗?
然后复制该脚本到自己的编辑器。保存为install_gvm.sh,然后运行即可。安装完成后,重启terminal。
DBA札记
2023/10/25
3090
你知道怎么管理golang版本吗?
几种Go版本管理工具
(如果出现GOROOT blabla之类的,执行go env -w GO111MODULE=off )
fliter
2023/09/06
4760
几种Go版本管理工具
Python多版本神器-Pyenv
使用pyenv可以在一个操作系统上使用多个python版本,自由切换,无比顺畅。它的使用不依赖于Python,是一个简单、独立的纯 shell 脚本工具。
py3study
2020/01/06
5480
Python多版本神器-Pyenv
M1 Mac上更好的 Golang 使用方案
本篇文章,将分享如何在苹果 M1 Mac 设备上,来进行高效、可靠的 Golang 开发环境的安装和管理。
soulteary
2022/05/12
1.4K0
M1 Mac上更好的 Golang 使用方案
Go版本16-20迭代了什么?
通过Go官网的The Go Blog可以检索出每个版本的发布信息,以及详细的版本说明。本文参考以下文章:
COY_fenfei
2023/06/07
7740
搭建可维护的 Golang 开发环境
在《基础篇》的内容中,我们聊过了如何基于 Ubuntu 22.04 搭建基础的 Linux 学习环境。接下来的文章里,我们先来聊聊如何在 Linux 环境中,快速安装配置各种可维护的语言环境。
soulteary
2022/07/04
1.1K0
搭建可维护的 Golang 开发环境
Kubernetes---kubeadm版本升级
Kubernetes 的版本更新迭代算是频繁的了,每个三个月发布一个小版本。为了使集群中一直跟随着版本前进,如果一直不更新,会导致新功能无法使用,落后新版本太多版本,不方便升级。
互联网-小阿宇
2022/11/21
5000
Python关键点笔记之使用 pyenv 管理多个 Python 版本依赖环境
从接触Python以来,一直都是采用virtualenv和virtualenvwrapper来管理不同项目的依赖环境,通过workon、mkvirtualenv等命令进行虚拟环境切换,很是愉快。
Jetpropelledsnake21
2019/04/18
1.6K0
Go 1.16 中关于 go get 和 go install 你必须注意的地方
Go (golang) 已于 18 日发布了 1.16 beta1 版本,至此其主体功能已经基本确定。我看大多数人都在关注 Go 在苹果(Apple) M1 上的支持,甚至 Go 官方博客中也有一篇专门的说明 Go on ARM and Beyond[1] ,来介绍 Go 在此方面的支持。
郭旭东
2020/12/30
1.1K0
Python多版本管理器-pyenv 介绍及部署记录
在日常运维中, 经常遇到这样的情况: 系统自带的Python是2.x,而业务部署需要Python 3.x 环境, 此时需要在系统中安装多个Python版本,但又不能影响系统自带的Python 版本,即需要实现Python的多版本环境共存, pyenv就是这样一个Python版本管理器, 可以同时管理多个python版本共存! 简单的说,pyenv 可以根据需求使用户在系统里安装和管理多个Python 版本: - 配置当前用户的python的版本; - 配置当前shell的python版本; - 配置某个项目(目录及子目录)的python版本; - 配置多个虚拟环境.
洗尽了浮华
2018/12/27
1.6K0
相关推荐
利用gvm管理go版本
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档