gvm管理多版本golang

前言

类似java可以使用sdkman管理多版本,golang可以用gvm

安装

使用gvm管理go之前先安装一个版本的go,因为gvm使用go来编译go

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Debian/Ubuntu 安装依赖
$ sudo apt-get install curl git mercurial make binutils bison gcc build-essential

# Redhat/Centos 安装依赖
$ sudo yum install curl
$ sudo yum install git
$ sudo yum install make
$ sudo yum install bison
$ sudo yum install gcc
$ sudo yum install glibc-devel

# macOS 安装依赖
$ xcode-select --install
$ brew update
$ brew install mercurial

# 安装gvm(我用的zsh,bash的话前面自己修改)
$ zsh < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

## 生效
source /Users/wanshao/.gvm/scripts/gvm


gvm使用

1
2
3
4
5
6
7
8
# 显示所有可以安装的go版本
gvm listall

# 显示当前本地的版本
gvm list

# 切换版本,并且设定Wie默认
gvm use go1.12.8 --default

pkset命令

pkgset默认用的global,可以创建别的pkg目录,这样一个go version 也可以对不同项目的包做隔离。比如一些版本冲突问题。

1
2
3
4
gvm pkgset create introToGvm
gvm pkgset use introToGvm
Now using version go1.12.9@introToGvm
gvm pkgset list