Gvm-Go版本管理工具

Yaurora

Go语言版本迭代很快,几乎每个月更新一个小版本。对于我这样一个特别喜欢使用最新版本的人来说,就希望能够便捷的管理Go版本,Gvm就是一款这样的工具。

记录安装时,个人用的是Ubuntu22.04系统

安装Gvm

1
2
3
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
# 或者
$ zsh < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

执行命令时,可能会有如下提示

2023-03-13_16-10

按照提示,安装bison sudo apt install bison

安装完成后,执行 source 命令

最后检查gvm是否安装成功gvm version

Gvm相关命令

可以使用gvm help查看相关帮助

2023-03-13_16-23

常用命令

1
2
3
4
5
6
7
8
9
10
11
# 查看可以安装的版本
$ gvm listall
# 查看本地安装的版本
$ gvm list
# 安装某个版本
# 看到这里先别急着安装,看到后面具体安装部分再操作
$ gvm install [version]
# 卸载某个版本
$ gvm uninstall [version]
# 使用某个版本
$ gvm use [version] [--default]

安装Go版本

要安装最新版本,先必须安装go1.4, 因为1.4版本实现了go的自举更新

要构建 x ≥ 5 的 Go 1.x,必须在 $GOROOT_BOOTSTRAP 中已经安装 Go 1.4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 1. 安装1.4版本 使用源码
$ gvm install go1.4 -B
# 2. 使用1.4版本
$ gvm use go1.4
# 3. 导入临时环境变量自举起使版本
$ export GOROOT_BOOTSTRAP=$GOROOT
# 4. 下载go1.17.13
$ gvm install go1.17.13
# 5. 使用go.17.13
$ gvm use go1.17.13
# 6. 重新设置环境变量自举起使版本
$ export GOROOT_BOOTSTRAP=$GOROOT
# 7. 下载最新版本
$ gvm install go1.20.2
# 8. 使用最新版本,并根据个人爱好,是否成默认
$ gvm use go1.20.2 --default

注意

直接下载最新版本会报错

1
can't load package: package ./cmd/dist: found packages build.go (main) and notgo117.go (building_Go_requires_Go_1_17_13_or_later)

需要我们先安装go1.17.13版本,然后将其作为GOROOT_BOOTSTRAP参考这里

Mac上安装Go

和ubuntu上安装Go有点而区别,在于不能通过源码安装go1.4

gvm安装和ubuntu执行一样的操作

go安装步骤

1
2
3
4
5
6
7
8
# 使用brew安装go
$ brew install go
# 使用gvm安装最新版本的go
$ gvm install go1.20.2
# 安装完成后,卸载go
$ brew uninstall go

# 后续其他操作都一样

了解

1
$ tree -L 1 $GVM_ROOT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.
├── archive github go源码仓库
├── AUTHORS
├── autogen.sh
├── bin
├── binscripts
├── ChangeLog
├── config
├── configure.ac
├── environments
├── examples
├── extra
├── Gemfile
├── git.bak
├── gos go的安装目录 也就是GOROOT, 类似于Java JDK, 从archive目录中克隆过来的
├── LICENSE
├── logs
├── Makefile.am
├── NEWS
├── pkgsets go项目工作空间,也就是GOPATH, 保存三方包的依赖
├── Rakefile
├── README
├── README.md
├── scripts
├── tests
├── Vagrantfile
└── VERSION
  • 标题: Gvm-Go版本管理工具
  • 作者: Yaurora
  • 创建于 : 2023-03-13 15:25:28
  • 更新于 : 2023-03-22 00:10:56
  • 链接: https://jingyu.life/2023/03/13/go/gvm-usage/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。