【环境配置】go多版本管理工具gvm

参考

使用

  • 本次使用的是 gvm ,原因如下
    • g 只能支持二进制版本安装,gvm 支持源码和二进制两种方式安装
    • 当安装旧的版本时,由于 g 只能二进制安装,可能没有相应的二进制版本;而gvm可以下载旧版本源码,进行编译安装

1. 什么是Gvm

Go 语言版本管理器(Gvm)是管理 Go 语言环境的开源工具。Gvm 「pkgsets」 支持安装多个版本的 Go 并管理每个项目的模块。它最初由 Josh Bussdieker 开发,GvmRuby RVM 类似,允许你为每个项目或一组项目创建一个开发环境,分离不同的 Go 版本和包依赖关系,来提供更大的灵活性,以防不同版本造成的问题。Gvm 主要有以下几个特性:

  • 管理 Go 的多个版本,包括安装、卸载和指定使用 Go 的某个版本
  • 查看官方所有可用的 Go 版本,同时可以查看本地已安装和默认使用的 Go 版本
  • 管理多个 GOPATH,并可编辑 Go 的环境变量
  • 可将当前目录关联到 GOPATH
  • 可以查看 GOROOT 下的文件差异
  • 支持 Go 版本切换

gvm Star6.8k 源码地址:https://github.com/moovweb/gvm

2. 安装Gvm

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

3. Gvm功能预览

➜  gvm
Usage: gvm [command]

Description:
  Gvm is the Go Version Manager

Commands:
  # 打印 Gvm 的版本
  version    - print the gvm version number 
  # 获取 Gvm 最新的代码
  get        - gets the latest code (for debugging) 
  # 使用某个go版本,临时生效,加上--default永久生效
  use        - select a go version to use (--default to set permanently) 
  diff       - view changes to Go root
  help       - display this usage text
  # 彻底删除gvm和安装的所有 go 版本和包
  implode    - completely remove gvm
  # 安装某个go的版本
  install    - install go versions
  # 卸载某个 go 版本
  uninstall  - uninstall go versions
  # 安装交叉编译器,gvm cross [os] [arch],os = linux/darwin/windows,arch = amd64/386/arm
  cross      - install go cross compilers
  linkthis   - link this directory into GOPATH
  # 列出安装的 Go 版本
  list       - list installed go versions
  # 列出可用的 Go 版本,使用 --all,列出所有的 tags 
  listall    - list available versions
  # 管理 Go 版本别名
  alias      - manage go version aliases
   - # gvm alias list ,列出所有别名
   - # gvm alias create [alias name] [go version name],创建别名
   - # gvm alias delete [alias name] ,删除别名
  # 管理 GOPATH 环境变量, 会在 ~/.gvm/environments 目录下创建相应的文件
  pkgset     - manage go packages sets
  # 编辑 pkgset 的环境变量
  pkgenv     - edit the environment for a package set

4. 使用Gvm

4.1 查看Go所有版本

➜  gvm listall
gvm gos (available)
   ...
   go1.16.12
   go1.17
   go1.17beta1
   go1.17rc1
   ...
   go1.17.5
   go1.18beta1
   release.r56
   ...

4.2 安装Go某版本

Usage: gvm install [version] [options]
    -s,  --source=SOURCE      Install Go from specified source.
    -n,  --name=NAME          Override the default name for this version.
    -pb, --with-protobuf      Install Go protocol buffers.
    -b,  --with-build-tools   Install package build tools.
    -B,  --binary             Only install from binary.
         --prefer-binary      Attempt a binary install, falling back to source.
    -h,  --help               Display this message.
  • 加 -B 参数,就是使用 二进制文件进行安装
  • 不加 -B 参数,就是使用源码进行安装,需要编译
➜ gvm install go1.18beta1
Updating Go source...
Installing go1.18beta1...
 * Compiling...
go1.18beta1 successfully installed!

4.3 使用Go某版本

# 临时生效  只在当前终端内生效,执行 go version 可看到变化
➜ gvm use go1.18beta1
# 永久生效  在本机所有终端内生效
➜ gvm use go1.18beta1 --default

4.4 查看当前使用版本

➜ gvm list
gvm gos (installed)
   go1.16
=> go1.17 # 代表当前正在使用的版本
   go1.18beta1
   system

5. 设置全局go env

5.1 修改.bashrc

#G OPATH
export GOPATH=/Users/xxx/xx
# GOBIN
export GOBIN=$GOPATH/bin
# GoEnv
export GOENV=$GOPATH/env
# 代理
export GOPROXY=https://goproxy.cn/,https://mirrors.aliyun.com/goproxy/,direct
# go module
export GO111MODULE=auto
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值