Golang使用gvm进行版本控制的安装使用教程

 更新时间:2023年09月01日 09:39:53   作者:陈通  
这篇文章主要为大家介绍了Golang使用gvm进行版本控制的安装使用教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

当你想为每个项目切换 go 版本时,gvm (Go Version Manager) 很方便。

这里,我将介绍“如何在Mac上安装gvm”和“如何使用gvm”

使用准备

仅适用于 Mac 的准备工作

按照MacOSX 要求中的说明执行以下命令。

xcode-select --install
brew update
brew install mercurial

gvm安装

我使用 zsh 作为我的 shell。

$ echo $SHELL
/bin/zsh

对于 zsh,您可以这样安装:

$ zsh < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
Cloning from https://github.com/moovweb/gvm.git to /Users/user_name/.gvm
No existing Go versions detected
Installed GVM v1.0.22
Please restart your terminal session or to get started right away run
 `source /Users/user_name/.gvm/scripts/gvm`

~/.zshrc 以下行被添加到最后一行

[[ -s "/Users/user_name/.gvm/scripts/gvm" ]] && source "/Users/user_name/.gvm/scripts/gvm"

重新启动终端 gvm 即可使用

$ gvm help
Usage: gvm [command]
Description:
  GVM is the Go Version Manager
Commands:
  version    - print the gvm version number
  get        - gets the latest code (for debugging)
  use        - select a go version to use (--default to set permanently)
  diff       - view changes to Go root
  help       - display this usage text
  implode    - completely remove gvm
  install    - install go versions
  uninstall  - uninstall go versions
  cross      - install go cross compilers
  linkthis   - link this directory into GOPATH
  list       - list installed go versions
  listall    - list available versions
  alias      - manage go version aliases
  pkgset     - manage go packages sets
  pkgenv     - edit the environment for a package set

如何使用gvm

查看可以安装的版本

gvm listall 您可以检查可以安装哪个版本

$ gvm listall
gvm gos (available)
   go1
   go1.0.1
   go1.0.2
   go1.0.3
   go1.1
   go1.1rc2
   go1.1rc3
   :

安装 go 版本

M1 Mac 我正在使用,但是当我执行以下命令时,出现错误

$ gvm install go1.16.15 -B
Installing go1.16.15 from binary source
ERROR: Binary Go unavailable for this platform
$ 
$ gvm install go1.17.5 -B 
Installing go1.17.5 from binary source
ERROR: Binary Go unavailable for this platform

我在以下方面取得了成功:

$ brew install go
==> Downloading https://ghcr.io/v2/homebrew/core/go/manifests/1.18
######################################################################## 100.0%
    :
$ 
$ gvm install go1.16.15   
Installing go1.16.15...
 * Compiling...
go1.16.15 successfully installed!
$ 
$ gvm use go1.16.15 --default
Now using version go1.16.15
$ 
$ go version          
go version go1.16.15 darwin/arm64

之后,即使我卸载了用brew安装的go,我也能够安装另一个版本的go。

$ brew uninstall go          
Uninstalling /opt/homebrew/Cellar/go/1.18... (11,947 files, 595.3MB)
$ 
$ gvm install go1.17.5   
Installing go1.17.5...
 * Compiling...
go1.17.5 successfully installed!

1.16.15 已安装 1.17.5 ,但为每个版本生成了一个文件夹,如下所示。

$ ls ~/.gvm/gos 
go1.16.15       go1.17.5

切换go版本来使用

我目前正在go1.16.15 使用

$ gvm list
gvm gos (installed)
=> go1.16.15
   go1.17.5
$ 
$ echo $GOPATH
/Users/user_name/.gvm/pkgsets/go1.16.15/global
$ 
$ echo $GOROOT
/Users/user_name/.gvm/gos/go1.16.15
$ 
$ go version
go version go1.16.15 darwin/arm64
$
$ which go
/Users/user_name/.gvm/gos/go1.16.15/bin/go

1.17.5 我会尝试切换到

$ gvm use go1.17.5 --default 
Now using version go1.17.5
$ 
$ gvm list                  
gvm gos (installed)
   go1.16.15
=> go1.17.5
$ 
$ echo $GOPATH
/Users/user_name/.gvm/pkgsets/go1.17.5/global
$ 
$ echo $GOROOT
/Users/user_name/.gvm/gos/go1.17.5
$ 
$ go version
go version go1.17.5 darwin/arm64
$ 
$ which go
/Users/user_name/.gvm/gos/go1.17.5/bin/go

参考 https://github.com/moovweb/gvm

以上就是Golang使用gvm进行版本控制的安装使用教程的详细内容,更多关于Golang gvm版本控制的资料请关注脚本之家其它相关文章!

相关文章

  • 简单聊一聊Go语言中的数组和切片

    简单聊一聊Go语言中的数组和切片

    数组和切片由于语法十分相似,在使用中容易混淆,要认真区分,下面这篇文章主要给大家介绍了关于Go语言中数组和切片的相关资料,需要的朋友可以参考下
    2021-07-07
  • Go并发编程结构体多字段原子操作示例详解

    Go并发编程结构体多字段原子操作示例详解

    这篇文章主要为大家介绍了Go并发编程结构体多字段原子操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Golang使用Token来验证

    Golang使用Token来验证

    token指的是一种用于验证用户身份或授权访问的凭证,本文主要介绍了Golang使用Token来验证,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • Go语言图片处理和生成缩略图的方法

    Go语言图片处理和生成缩略图的方法

    这篇文章主要介绍了Go语言图片处理和生成缩略图的方法,涉及Go语言针对图片操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • Go映射的使用

    Go映射的使用

    Go提供了另一个重要的数据类型,称为map,它将唯一键映射到值,本文主要介绍了Go映射的使用,包括声明映射、初始化映射、操作映射等,感兴趣的可以了解一下
    2023-11-11
  • Golang 实现简单随机负载均衡

    Golang 实现简单随机负载均衡

    均衡算法又分为 随机,轮询,加权轮询,哈希,而随机负载均衡算法就是本文的重点,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • VSCode安装go相关插件失败的简单解决方案

    VSCode安装go相关插件失败的简单解决方案

    这篇文章主要给大家介绍了关于VSCode安装go相关插件失败的简单解决方案,VSCode是我们开发go程序的常用工具,最近安装的时候遇到了些问题,需要的朋友可以参考下
    2023-07-07
  • 详解Golang中interface{}的注意事项

    详解Golang中interface{}的注意事项

    学习 golang ,对于 interface{} 接口类型,我们一定绕不过,这篇文章咱们就来一起来看看 使用 interface{} 的时候,都有哪些注意事项吧
    2023-03-03
  • GO的基础知识扫盲注意事项

    GO的基础知识扫盲注意事项

    这篇文章主要介绍了GO的基础知识注意事项,本文是GO语言小白的扫盲文,主要讲解了go语言的基本知识,GO程序目录结构,GO程序包的导入与别名运用,GO内置关键字,GO注释方法需要的朋友可以参考下
    2022-12-12
  • Golang多线程刷票的实现代码

    Golang多线程刷票的实现代码

    这篇文章主要介绍了Golang多线程刷票的相关资料,这里实现刷票的功能,对于投票,刷票的很方便,并附实现代码,需要的朋友可以参考下
    2017-07-07

最新评论