写点什么

node 可以用 nvm 快速切换版本,golang 如何快速切换版本?用 gvm 就行。

  • 2023-04-19
    北京
  • 本文字数:1232 字

    阅读完需:约 4 分钟

使用 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\.gG_EXPERIMENTAL=true
复制代码


其中,


G_MIRROR:设置 Golang 的下载镜像,这里使用了 Google 的镜像。G_HOME:设置 gvm 安装的位置,我不喜欢设置在 C 盘。G_EXPERIMENTAL:设置是否显示实验性版本。最好设置为 true,否则会占用 C 盘。

四、配置 go 的环境变量

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


GOPATH=D:\mysetup\gopathGOROOT=%G_HOME%\go
复制代码


注意:


GOPATH 和 GOROOT 不能是同一个目录。GOROOT 指向 G_HOME 目录下的 go 子目录。除此之外,还可以设置其他环境变量,例如:


GO111MODULE=onGOINSECURE=git.dsy.comGOOS=windowsGOPRIVATE=git.dsy.comGOPROXY=https://goproxy.cn,directCGO_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.19g ls
复制代码



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

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

g use 1.20.3g ls
复制代码



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


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

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2021-02-15 加入

还未添加个人简介

评论

发布
暂无评论
node可以用nvm快速切换版本,golang如何快速切换版本?用gvm就行。_Go_福大大架构师每日一题_InfoQ写作社区