Golang 神级版本管理工具

Golang 神级版本管理工具

对于 Golang 开发而言,Golang 语言版本的迭代速度是惊人的,几乎每几个月就需要更新一次小版本。对于 Golang 程序员来说,最渴望的特性莫过于 Go 2.0 的新特性,现在 Go 的版本已经是 1.14,相信在不久的将来会盼望到 2.0 的到来。但是 Golang 采用的是逐步迭代小版本,最终演化为最终版本,作为 Golang 程序员需要对每一个小版本的特性进行学习,因此管理 Go 版本的工具是迫在眉睫的问题,现在为大家介绍一个神级版本管理工具。

一、GVM

要介绍一个开源项目为 gvm,在 github 上有5000 star。使用 gvm 不需要在关心下载完新版本的 Go 后,自己还需要手动配置环境变量。

1.安装 gvm

安装 gvm 的前置条件是我们已经有之前的 go 版本,假如你和我是一样的操作系统,可以运行brew install go先安装一个较老的版本。然后运行下面的 bash 命令。

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

或者,如果你正在使用的zsh只是改变bash到zsh。

2.命令介绍

运行gvm list查看已经安装的版本,和当前使用的版本
1
2
3
4
5
6
gvm gos (installed)

go1.12.6
=> go1.13
go1.14
system
运行gvm listall命令,查看当前 Go 所有的版本
1
2
3
4
5
6
7
8
9
10
11
gvm gos (available)
go1
go1.0.1
go1.0.2
....
....
go1.14
go1.14beta1
go1.14rc1
go1.14.1
....
运行gvm install go1.14命令安装当前最新的稳定版本。这里需要注意一下的是最好让 vpn 代理命令行,可以更快的下载 Go
  • 让vpn 代理命令行
1
export all_proxy=socks5://127.0.0.1:1086
  • 安装 go1.14
1
2
3
4
5
➜ ~ gvm install go1.14
Updating Go source...
Installing go1.14...
* Compiling...
go1.14 successfully installed!

安装成功了!

运行go env查看当前版本信息,看看我们是否已经安装成功。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
GO111MODULE=""
GOARCH="amd64"
GOBIN="/Users/zhubowen/go/bin/"
GOCACHE="/Users/zhubowen/Library/Caches/go-build"
GOENV="/Users/zhubowen/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/zhubowen/go"
GOPRIVATE=""
GOPROXY="https://goproxy.io"
GOROOT="/Users/zhubowen/.gvm/gos/go1.13"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/Users/zhubowen/.gvm/gos/go1.13/pkg/tool/darwin_amd64"
....

看到环境变量还是原先之前的,没有变化。因为我们还没有使用 go1.14。

运行命令gvm use go1.14
1
2
➜  ~ gvm use go1.14
Now using version go1.14

go env查看我们是否使用成功。

1
GOPATH="/Users/zhubowen/.gvm/pkgsets/go1.14/global"

看到了里面一点变化,这如果不是你想要的,因为我之前的 GOPATH 目录都有已经下好的东西,还有兼容之前版本的项目。

运行命令gvm pkgenv

该命令默认是设置的system空间目录下的环境变量,设置如下:

image-20200612231441480

将我们自己的环境变量往下面假如,覆盖上面的一些配置即可

1
2
3
4
5
6
# go settings
export GOPATH="/Users/zhubowen/go"
export GOPROXY=https://goproxy.cn,direct
export GOPRIVATE="github.com/echoingtech/*"
export GOSUMDB=off
export GOBIN="${GOPATH}/bin"

再次运行go env运行结果如下:

image-20200612231629066

同时将如下配置写入到 ~/.bash_profile 文件中,让 GVM 开机自启。

1
2
3
4
5
# gvm settings
[[ -s "/Users/zhubowen/.gvm/scripts/gvm" ]] && source "/Users/zhubowen/.gvm/scripts/gvm"
export GOVERSION=go1.14
gvm install ${GOVERSION}
gvm use ${GOVERSION}

二、总结

以上就是我对 gvm 的实践。非常简单和实用的工具,gvm 工具可以节省我们很多时间管理和配置 Go 的版本,值得每一个人花费一点小小的时间去学习它。

#

评论

`
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×