Go语言:使用 GVM 搭建可维护的 Golang 开发环境
当你想完成 Golang 开发环境的便捷安装以及随时更新和保障多个版本的 Golang 共存的时候,就需要使用到 Golang 的专门版本管理工具 ——gvm
本篇随笔记录了在 Ubuntu 下安装使用 gvm 的过程
Gvm 的下载
我们可以使用国内镜像下载包含安装脚本的仓库代码,然后直接执行安装脚本,来完成安装
先使用 git clone
下载完整的软件仓库:
git clone https://gitcode.net/soulteary/gvm.git
指定 SRC_REPO
参数为国内镜像地址,然后运行安装脚本:
SRC_REPO=https://gitcode.net/soulteary/gvm.git bash gvm/binscripts/gvm-installer
当脚本运行完毕,我们将会看到上文中提到过的日志输出,此刻 gvm
就安装完毕啦。
为了更方便的使用 gvm
,我们还需要进行一些配置。
配置 gvm 加速 Golang 下载/切换
gvm 支持使用两种方式来下载 “Golang”,然而不论是“下载源码编译安装”,还是下载适合当前操作系统的“预编译好的二进制文件”,我们都需要访问官方地址。
为了避免下载过程中因为网络问题,出现下载慢,或者无法下载的情况,节约我们的时间,我们需要对 gvm
进行一些简单的配置。
我们可以在当前使用的 “SHELL
” 的 “rc
” 文件中(比如.bashrc
或者 .zshrc
),添加下面的内容,来在当前的环境中让 gvm
命令生效,同时,让我们能够使用更快的下载源来下载我们所需要的 “Golang”:
export GO_BINARY_BASE_URL=https://golang.google.cn/dl/ [[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm" export GOROOT_BOOTSTRAP=$GOROOT
在“rc
” 文件中添加了上述内容后,需要重启终端
export GO_BINARY_BASE_URL=https://golang.google.cn/dl/
命令中的 GO_BINARY_BASE_URL
变量,定义了我们将从何处下载 Golang 的二进制文件或源码压缩包进行安装。当然,你也可以将其替换为下面的任意一个。
# 官方地址 https://go.dev/dl/ # 官方国内镜像地址 https://golang.google.cn/dl/ # 阿里云镜像 https://mirrors.aliyun.com/golang/ # 中科大镜像 http://mirrors.ustc.edu.cn/golang/
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"
这条命令,是根据软件的实际安装情况来选择性加载 gvm
。相比较前文中安装完毕 gvm
日志输出内容推荐我们直接使用 source
命令加载 gvm
,这样可以更安全的执行命令,当且仅当 ~/.gvm
存在的时候才会加载程序,将 gvm
注册到你当前的 SHELL
环境中。
export GOROOT_BOOTSTRAP=$GOROOT
最后一条命令,则是为了确保 Golang 使用源码编译安装时,不会出错(golang 1.14后需要 )
使用 gvm
gvm
是一个特别简单的命令,我们日常使用中其实只需要记得两个命令就好,第一个是 gvm install
,第二个是 gvm use
。
假设我们想安装 Golang 最新版本 1.18.3,那么只需要执行下面的命令:
gvm install go1.18.3 -B
如果你没有装 CURL 的话还需要自行安装
在执行完毕命令之后,稍等片刻,当我们看到 Installing go1.18.3 from binary source
这条日志输出结果后,就意味着 Golang 已经被下载完毕了。如果你希望使用编译源码的方式安装 Golang 的话,可以去掉上面命令中的-B
参数:
gvm install go1.18.3
虽然我们已经完成了 Golang 1.18.3 的安装,但是目前我们还不能直接使用它,需要再执行一条命令,将这个版本的 Golang “激活”:
gvm use go1.18.3 --default
在执行完命令之后,我们能够立刻看到类似 Now using version go1.18.3
的日志输出结果,接下来我们就可以随意的使用 go
这个命令了。
我们可以使用 go version
来验证刚刚下载的程序是否符合我们的诉求
安装过程参考https://zhuanlan.zhihu.com/p/537292132
以上
本文来自博客园,作者:slowlydance2me,转载请注明原文链接:https://www.cnblogs.com/slowlydance2me/p/17235311.html