使用 gvm 可以带来以下好处:

  1. 快速切换 Golang 版本,方便进行版本测试和开发;
  2. 可以在多个项目中同时使用不同版本的 Golang 包和工具,避免冲突;
  3. 可以通过 gvm 管理不同版本的 Golang,方便安装、卸载和更新;
  4. 可以自由选择 Golang 的镜像源,下载更快。

我使用的是win10 64位系统,所以只考虑windows,其他操作系统应该是类似的。gvm在windows下叫g。

一、下载

在 Windows 下,gvm 叫做 g,请在 https://github.com/voidint/g/releases 下载适合您系统的版本。例如,如果您的系统是 64 位的,可以下载 g1.5.0.windows-amd64.zip 文件。

二、解压

下载完成后,将压缩包解压到指定目录下(例如 D:\Downloads 目录),得到一个名为 g.exe 的文件。

三、配置gvm的环境变量

首先需要设置以下环境变量:

G_MIRROR=https://golang.google.cn/dl/
G_HOME=D:\gvm\.g
G_EXPERIMENTAL=true

其中,

G_MIRROR:设置 Golang 的下载镜像,这里使用了 Google 的镜像。

G_HOME:设置 gvm 安装的位置,我不喜欢设置在C盘。

G_EXPERIMENTAL:设置是否显示实验性版本。最好设置为true,否则会占用C盘。

四、配置go的环境变量

接下来需要设置 Golang 的环境变量,包括 GOPATH 和 GOROOT。

GOPATH=D:\mysetup\gopath
GOROOT=%G_HOME%\go

注意:

GOPATH 和 GOROOT 不能是同一个目录。

GOROOT 指向 G_HOME 目录下的 go 子目录。

除此之外,还可以设置其他环境变量,例如:

GO111MODULE=on
GOINSECURE=git.dsy.com
GOOS=windows
GOPRIVATE=git.dsy.com
GOPROXY=https://goproxy.cn,direct
CGO_ENABLED=0

您可以根据自己的需要进行修改。

五、配置Path的环境变量

为了方便使用gvm命令,将D:\Downloads放在系统Path环境变量中。

为了方便使用 Golang 工具和命令,需要将 GOPATH 和 GOROOT 加入到系统 Path 环境变量中:

Path=%GOPATH%\bin;%GOROOT%\bin;D:\Downloads

六、使用gvm

进入命令行工具,敲相关命令。

首先敲g命令,列出gvm相关命令列表:

g

从截图里可以看出有ls、ls-remote、use、install、uninstall、clean、self、help相关命令。

ls:列出已安装的版本

ls-remote:列出可供下载安装的远程版本

use:切换到指定的版本

install:下载并安装指定版本

uninstall:卸载指定版本

clean:从包下载目录中删除文件

self:修改gvm本身

help, h:显示命令列表或一个命令的帮助信息

列出已安装的版本,输入以下命令:

g ls

列出可供下载安装的远程版本,输入以下命令:

g ls-remote



安装指定版本的 Golang,目前没安装1.19,可以用命令安装1.19,命令如下:

g install 1.19
g ls



可以看到,现在已经安装了1.19版本,并且切换到1.19环境了。安装某个版本会自动切换到某个版本。

如果已经下载了某个版本,比如1.20.3,如何切换呢?用g use 1.20.3 命令就行,输入以下命令:

g use 1.20.3
g ls



需要使用的命令是g ls,g ls-remote,g install,g use。其他命令,比如卸载,你们就自己研究吧。

以上就是常用的 gvm 命令,在开发过程中,gvm 可以帮助我们快速切换不同版本的 Golang,并在不同的项目中使用不同的 Golang 包和工具。

node可以用nvm快速切换版本,golang如何快速切换版本?用gvm就行。的更多相关文章

  1. 【node】使用nvm管理node版本

    写在前面 nvm(nodejs version manager)是nodejs的管理工具,如果你想快速更新node版本,并且不覆盖之前的版本:或者想要在不同的node版本之间进行切换: 使用nvm来安 ...

  2. 如何快速切换Python运行版本,如何选择Python版本

    想必在学习Python时会面临选择Python2.X或者是Python3.X的问题. 我在电脑上不同位置下载安装了不同版本 的Python,当我在学习时,不管是需要哪一个版本才能运行都无所谓,相应的快 ...

  3. Node版本管理器NVM常用命令

    NVM是什么?nvm (Node Version Manager) 是Nodejs版本管理器,可对不同的node版本快速进行切换. 为什么要用NVM?基于node的工具和项目越来越多,但是每个项目使用 ...

  4. node版本管理器nvm(服务器项目相关)

    git项目 https://github.com/creationix/nvm 1.下载并安装NVM脚本 curl https://raw.githubusercontent.com/creation ...

  5. Node版本管理工具-NVM的安装与使用(windows系统)

    友情提示:为避免踩坑,建议浏览全文后动手操作!!! 一.nvm是什么 看到这篇文章的猿/媛们肯定不会问这个问题了,但是我还是要说,哈哈哈! 无论工作还是干嘛,就不会一直做项目,所以肯定也不会一直用一个 ...

  6. VUE项目无法启动NODE版本与NODE-SASS、SASS-LOADER版本不兼容解决方案

    一.错误分析 在VUE项目开发中,我们经常会遇到报错: Node Sass version 7.0.1 is incompatible with ^4.0.0. 网上解决方案也千奇百怪,最终操作下来, ...

  7. Node版本管理工具 - Nvm的下载、安装配置与使用

    1.业务背景 不同时期的项目使用的Node版本也不一样,随着版本的更新一直在使用的Node版本也在不断升级,本文介绍一个Node版本的管理工具,可自由切换版本. 2.Nvm下载与安装 1)下载 下载地 ...

  8. Java项目多版本部署及快速回滚(含完整命令)

    1. 场景描述 java项目linux环境下快速部署,以前介绍过,今天主要结合linux的软连接,实现版本的快速切换(回滚),包含完整的start.sh与stop.sh,只需修改包名和路径即可运行,有 ...

  9. Golang Module快速入门

    前言: 在Golang1.11之前的版本中,官方没有提供依赖和包管理工具.开发者通常会使用vendor或者glide的方式来管理依赖(也有直接使用GOPATH多环境方式),而在Golang1.11之后 ...

  10. PHP集成环境自定义设置PHP版本,同时运行多个php版本,700个PHP版本随时切换,一键开启常用模块。

    本文采用我自己开发的纯绿色版WAMP环境(我将这个WAMP环境命名为PHPWAMP) (PHPWAMP默认集成VC,不需要单独安装) 那么什么是WAMP环境?WAMP这个词是什么意思? Windows ...

随机推荐

  1. 西电oj245 成绩统计 结构体数组使用

    #include<stdio.h> struct student{ //定义一个结构体数组 int num; char name[11]; float g1; float g2; floa ...

  2. userdel: user zhangsan is currently used by process 1057

    我个人推测是在root用户下su 切换到xiaoming用户,然后在xiaoming用户下又切换回root,但是xiaoming用户还被某个进程占用着,所以进程不死,用户del不掉. 所以我们在命令行 ...

  3. VMware安装Rocky Linux8服务器系统并执行优化,包括修改安装镜像源、ssh免密等等

    1. https://blog.csdn.net/DCTANT/article/details/125430461?utm_medium=distribute.pc_relevant.none-tas ...

  4. zip文件自动打包

    简单的文件打包 首先是问题 我们有一个文件的文件过大,我需要删除或者压缩,当然我们就是选择压缩 如果是单个我们可以直接使用压缩功能 但是多个呢? 首先获取当前目录下的文件,使用 a=`ls` | te ...

  5. 需求分析之道——需求分析要做什么(C系架构设计法,sishuok)

    需求分析之道--需求分析要做什么. 需求分析是架构师开始做架构设计的第一步,对架构师来讲非常非常的重要.因为需求分析能够告诉我们,到底我们要做什么,架构设计就是为了去完成这件事情而做的. 接下来,我们 ...

  6. 三天吃透MySQL面试八股文

    本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...

  7. MySQL 开发规范【X千万/表级别】

    一.MySQL 开发规范概述 原则:SQL开发规范制定是基于良好的编码习惯和可读性:目的:消除冗余,数据简约,提高效率,提高安全:范围:<SQL开发规范手册> 二.MySQL 开发规范手册 ...

  8. 可视化漂亮大屏Excel表格模板 Excel漂亮美观看板 excel电视看板 excel精美数据展示看板

    企业管理者喜欢大屏看板主要是因为它可以提供以下几个方面的优势: 增强企业形象:大屏看板可以将企业的信息和广告以更加生动.直观的方式呈现出来,提高企业形象和知名度. 提高工作效率:大屏看板可以在企业内部 ...

  9. [issues] webrtc 接入SRS丢包率不正确问题

    目录 [issues] webrtc 接入SRS丢包率不正确问题 原因和解决方法 srs增加rtx SDP协商 构建RTX包 [issues] webrtc 接入SRS丢包率不正确问题 原因和解决方法 ...

  10. 电商AARRR模型分析(二)—R语言

    AARRR模型可以说是用户运营和业务增长非常重要的模型.模型以用户的生命周期为核心,把增长步骤拆分为5个步骤,分别是:获取用户(Acquisition).用户激活(Activiation).用户留存( ...