Golang 多版本管理工具 —— gvm | 七日打卡


本文摘自网络,作者,侵删。

Why

早期,Golang 版本及包管理令人痛苦。1.11 之后 go mod 的出现支持了包管理,但不同项目下若要求不同的 Golang 版本,我们如何处理?

What

GVM - Go Version Manager, 帮助我们解决了这一难题。

github.com/moovweb/gvm

本文仅对 mac/linux 系统;Windows/">windows gvm 请查阅官网,应该也差不多

gvm 原理

gvm 是利用脚本编写指令,对环境变数进行判断跟修改,gvm 成功安装后会在 ~/.bashrc 或者 .zshrx 等脚本档案最后加一条类似如下的命令:

[[ -s "/Users/fee/.gvm/scripts/gvm" ]] && source "/Users/fee/.gvm/scripts/gvm"复制代码

安装路径各人会有所不同,如对 shell 脚本编写感兴趣的可参考 鸟哥的Linux私房菜

每次使用 gvm use [version] 的指令后,环境变数都会被改变(GOROOT & GOPATH)

How

安装

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

用 zsh 的将 bash 改为 zsh

常用命令

$ gvm help  # 命令帮助复制代码

go 版本安装、切换及使用

$ gvm list                  # 列出本机所有go版本;当前版本 => 表示$ gvm listall               # 列出所有可安装go版本$ gvm install go1.14        # 安装指定的go版本;如 go1.14$ gvm uninstall go1.12.8    # 卸载指定的go版本;如 go1.12.8$ gvm use go1.4 [--default] # gvm 启用对应的go版本 (--default to set permanently)复制代码

参考运行如下(也可用 go version 命令确认当前版本):

➜ gvm use system

Now using version system

➜ gvm list

gvm gos (installed)

go1.14.2 => system

➜ go version

go version go1.11.1 darwin/amd64

gvm pkgset

当 GVM 被告知使用一个新版本时,它将会更换一个新的 $GOPATH,gloabl pkgset 将默认使用该版本。

== DESCRIPTION:

GVM pkgset is used to manage various Go packages

== Usage

阅读剩余部分

相关阅读 >>

Golang如何清空map

多协程通道的应用---三协程通过通道实现abc按顺序输出100次

Go语言实战流媒体视频网站

Go - 统一定义 api 错误码

Gocn酷Go推荐】Go 类型转换神器 cast库

Golang反向代理无法访问

Go2设计草案介绍

如何使用Golang的pprof包对程序进行性能分析

Golang defer什么时候执行

聊聊dubbo-Go-proxy的route

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...