跳至主要內容

版本管理

Mr.Liu大约 2 分钟Gogvm

版本管理

介绍

Go Version Manager(GVM)是一个用于管理 Go 语言版本的工具。它允许您同时在同一系统中安装多个 Go 版本,并通过简单的命令来切换使用不同版本的 Go。

安装

安装依赖

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

Mac

xcode-select --install
brew update
brew install mercurial

安装gvm

选择当前环境使用的shell(zsh、bash),执行shell脚本

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

添加配置

添加环境变量到~/.zshrc​或 ~/.bashrc

export GO_BINARY_BASE_URL=https://golang.google.cn/dl/
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"
export GOROOT_BOOTSTRAP=$GOROOT

配置解释

命令中的 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 help​​查看所有可用的命令

gvm version  #查看安装的gvm版本
gvm listall # 获取所有服务器上可安装的golang版本集合
gvm list # 查看本地已经安装的golang版本集合
gvm install 1.16  # 编译源码的方式安装golang1.16到本地
gvm install go1.17 -B  # 二进制文件的方式安装golang1.17到本地
gvm use go1.16 # 切换golang版本到1.16
gvm use go1.17 --default  # go1.17设为默认版本

Go 1.5+ 从工具链中删除了 C 编译器,并用Go 编写的编译器替换了它们。为了编译 Go 1.5+,请确保首先安装 Go 1.4。

gvm install go1.4 -B
gvm use go1.4
gvm install go1.5