GVM: Golang多版本管理利器

本文介绍了 Go Version Manager 的功能和使用方法,介绍了如何通过 GVM 在系统上安装和管理多个 Go 语言版本。原文: GVM: Go Version Manager, for Golang manage multiple versions

Go 版本管理器(GVM,Go Version Manager)是一款功能强大的工具,旨在简化系统中 Go 编程语言不同版本的管理。GVM 允许开发人员在多个 Go 版本间无缝切换,从而可以更轻松处理需要特定语言版本的项目或者尝试最新版本。

为什么选择 GVM?

手动管理 Go 的多个版本是一项繁琐的任务,尤其是在处理有特定版本需求的项目时。GVM 提供了直接的解决方案,可以毫不费力的安装、切换不同的 Go 版本。无论是开发应用程序和库,还是为开源项目做贡献,GVM 都能确保开发者获得流畅的版本控制体验。

alt
安装 GVM
第 1 步:前置条件

在安装 GVM(Go Version Manager,Go 版本管理器)之前,请确保已安装了以下工具:

  • Git:GVM 依靠 Git 克隆和管理 Go 版本。
  • Bash 或 Zsh:GVM 可与 Bash 和 Zsh 配合使用。
  • Github: https://github.com/moovweb/gvm [1]
第 2 步:安装 GVM

运行以下命令安装 GVM:

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

或者,如果使用 zsh,只需将 bash 改为 zsh

该命令将会下载并执行 GVM 安装脚本,并在系统中设置 GVM。

第 3 步:选择 GVM 分发版

查看 GVM Readme[2]以查找并使用 GVM。

现在 GVM 已安装完毕,我们来了解一些常用命令和任务。

安装 Go 版本

要安装特定的 Go 版本,请使用 gvm install 命令:

gvm install go1.x.x

go1.x.x 替换为所需的 Go 版本,GVM 会自动下载并安装。

列出已安装的 Go 版本

使用以下命令检查已安装的 Go 版本:

gvm list
alt

切换 Go 版本

要在已安装的 Go 版本之间切换,请使用:

gvm use go1.x.x

用要激活的版本替换 go1.x.x

卸载 Go 版本

要删除已安装的 Go 版本:

gvm uninstall go1.x.x

你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。为了方便大家以后能第一时间看到文章,请朋友们关注公众号"DeepNoMind",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!

参考资料
[1]

GVM Github: https://github.com/moovweb/gvm

[2]

GVM README: https://github.com/moovweb/gvm/blob/master/README.md

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

速盾:为啥要进行DDoS 压力测试?

DDoS&#xff08;分布式拒绝服务&#xff09;压力测试是一种网络安全测试方法&#xff0c;用于评估一个网络系统的抗DDoS攻击能力。在DDoS攻击中&#xff0c;攻击者会通过多台计算机发起大量的请求&#xff0c;使目标服务器过载&#xff0c;导致正常用户无法访问网站或服务。通…

webdriver.Chrome() 和 webdriver.Chrome(options=options)的区别

文章目录 1.前言2.区别分析 1.前言 在使用selenium的时候接触到了webdriver.chrome(optionsoptions)不是很明白之间的区别&#xff0c;所以就了解一下。 2.区别分析 webdriver.Chrome() 和 webdriver.Chrome(optionsoptions) 是在使用 Selenium 库控制 Chrome 浏览器时的两种…

探索未来直播新纪元:Voodoo Spatial 的3D 直播革命

在这个数字化时代,随着技术的不断进步,我们正见证着娱乐与社交方式的深刻变革。今天,让我们深入了解一款颠覆传统直播模式的创新应用——Voodoo Spatial,它是如何利用尖端技术,特别是针对苹果的Vision Pro设备和最新的iPhone 15 Pro系列,重新定义了直播的边界,带领我们迈…

Django框架css文件能正常加载,但是css样式不生效

最近运行一个Django项目&#xff0c;能正常启动运行&#xff0c;css文件也能够正常加载&#xff0c;但是css样式却没有正常渲染。 解决办法&#xff1a; 1、打开注册表&#xff1a;winR 2、找到&#xff1a;计算机\HKEY_CLASSES_ROOT\.css 修改&#xff1a;Content Type 值&…

Vue 之 vue-router 路由嵌套不显示问题

​ 本来想用嵌套路由弄个管理员平台的&#xff0c;结果一直不显示。 需求&#xff1a; 访问 /admin 显示Welcme.vue组件 访问/admin/product显示Product.vue组件 import { createRouter, createWebHistory } from "vue-router";import Home from "/views/Lay…

llamaindex rag agent 检索文档进行分析

两个 pdf 分别是两个电商公司的财报之类的&#xff0c;像分析这两家公司的盈利情况&#xff0c;利用 llamaindex 的 rag 检索盈利的部分&#xff0c;来对比 使用 tongyi&#xff0c;如果指定&#xff0c;默认是 openai 了 # 加载电商财报数据 from llama_index.core import S…

C++ | Leetcode C++题解之第113题路径总和II

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<vector<int>> ret;unordered_map<TreeNode*, TreeNode*> parent;void getPath(TreeNode* node) {vector<int> tmp;while (node ! nullptr) {tmp.emplace_back(node->val);node …

mysql中单表查询方法

大家好。我们知道&#xff0c;mysql有一个查询优化器的模块。当我们用sql语句查询表中记录时&#xff0c;会对这条查询语句进行语法解析&#xff0c;然后就会交给查询优化器来进行优化&#xff0c;优化后生成一个执行计划&#xff0c;这个执行计划表明了应该使用哪些索引进行查…

Android 10.0 锁屏页面弹窗功能实现

1.前言 在10.0的系统rom产品定制化开发中,在定制化开发中,需要在锁屏页面弹窗功能,当收到某些信息的时候,需要添加 悬浮窗锁屏页面也同样需要弹窗功能,接下来就分析下相关功能,然后实现功能 2.锁屏页面弹窗功能实现的核心类 frameworks\base\core\java\android\view\Wi…

用c++用4个凸函数(觉得啥好用用啥)去测试adam,rmsprop,adagrad算法的性能(谁先找到最优点)

为了测试 Adam、RMSProp 和 Adagrad 算法的性能&#xff0c;你可以使用四个凸函数进行实验。以下是一些常用的凸函数示例&#xff1a; Rosenbrock 函数&#xff1a; Booth 函数&#xff1a; Himmelblau 函数&#xff1a; Beale 函数&#xff1a; 你可以选择其中一个或多…

生命在于学习——Python人工智能原理(1.2)

一、人工智能的基本知识 6、新一代人工智能驱动因素 &#xff08;1&#xff09;数据量爆发性增长。 &#xff08;2&#xff09;计算能力大幅提升 &#xff08;3&#xff09;深度学习等算法发展 &#xff08;4&#xff09;移动AI创新应用牵引 7、人工智能关键技术 &#x…

C语言经典例题-4

1.五子棋 test.c - 测试游戏的逻辑 game.c - 与游戏相关函数实现 game.h - 与游戏相关函数的声明&#xff0c;符号声明&#xff0c;头文件的包含。 //test.c #define _CRT_SECURE_NO_WARNINGS 1#include "game.h"void menu() //打印菜单函数 {printf("********…

python 异常处理 try

异常 我们常见的代码错误后 会出现此类异常 SyntaxError&#xff1a;语法错误 AttributeError&#xff1a;属性错误 IndexError&#xff1a;索引错误 TypeError&#xff1a;类型错误 NameError&#xff1a;变量名不存在错误 KeyError&#xff1a;映射中不存在的关键字&#xf…

eletron入门教程 -- 快速写一个electron demo程序

1、前言 由于工作需要&#xff0c;前段时间基于electron框架开发了一个桌面应用程序。由于我之前主要是做c后端开发&#xff0c;所以没有任何electron基础&#xff0c;也没有任何前端开发基础&#xff0c;但是没有办法&#xff0c;老板需要&#xff0c;那就得会&#xff0c;不会…

【java】常见面试题目

文章目录 一、JAVA基础篇二、多线程篇三、SQL篇四、No-SQL篇五、MQ篇六、框架篇七、JVM篇八、常见算法题 一、JAVA基础篇 1、ConcurrentHashMap是如何保证线程安全的&#xff0c;HashMap为什么是线程不安全的? HashTable为什么是线程安全的&#xff0c;HashSet为什么是线程不…

前端开发工程师——数据可视化

canvas canvas绘制线段 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthd…

如何使用KNN

导入文件和库 加载数据集、拆分数据集 训练模型 预测 打印结果

自从有了可观测性,传统运维如何进行提升?

在 201x 年&#xff0c;随着容器技术的出现&#xff0c;容器的部署方式逐渐被各大互联网公司采用&#xff0c;相比物理机/虚拟机&#xff0c;容器的好处是环境隔离、轻量、快速。 但是管理容器是一件复杂的事情&#xff0c;后来出现了 Kubernetes&#xff0c;成为了事实上的容…

加拿大门户媒体《金融邮报》《埃德蒙顿日报》新闻媒体投放

介绍 加拿大媒体广告投放是企业宣传推广的重要手段之一。在加拿大&#xff0c;主流媒体包括《金融邮报》和《埃德蒙顿日报》。《金融邮报》是加拿大唯一的全国性英文金融日报&#xff0c;总部位于多伦多&#xff0c;具有丰富的金融消息资源&#xff0c;可反映加拿大商界各方面…

Oracle实践|内置函数之日期与时间函数

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 &#x1f525; 三连支持&#xff1a;欢迎 ❤️关注…