Mac 使用 GVM 管理多版本 Go 环境

使用 GVM 管理多版本 Go 环境

在本文中,我们将使用 gvm(Go Version Manager)工具管理本地多个 Go 语言版本。gvm 功能类似于 Python 的 Anaconda,可以方便地切换不同版本的 Go 环境,非常适合需要多版本开发与测试的场景。

需要注意的是,gvm 在第一次安装 Go 时,需要终端环境中已经存在一个可用的 Go 语言版本 ,因为 gvm 需要依赖现有的 Go 环境来编译安装新的版本。为了满足这一需求,我们可以使用 macOS 的 Homebrew 先安装一个临时的 Go 版本,待 gvm 安装完成后,再将 Homebrew 安装的 Go 删除。


1. 使用 Homebrew 安装 Go

首先,我们需要通过 Homebrew 安装一个基础版本的 Go:

bash 复制代码
# 安装 Go
brew install go

# 验证安装是否成功
go version
which go

运行以上命令后,你应该可以看到当前安装的 Go 版本号以及 Go 可执行文件的路径。


2. 安装 GVM

接下来,我们安装 gvm 工具。gvm 会被安装到用户的主目录下(~/.gvm):

bash 复制代码
# 安装 gvm
bash < <(curl -sSL https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

# 安装完成后,加载 gvm
source ~/.gvm/scripts/gvm

运行上述命令后,gvm 应该已经成功安装,可以通过以下命令验证:

bash 复制代码
gvm version

3. 使用 GVM 安装 Go

现在我们可以使用 gvm 安装和管理多个 Go 版本。

查看可用的 Go 版本

bash 复制代码
gvm listall

gvm 会列出所有可用的 Go 版本,你可以选择其中一个版本进行安装。

安装特定版本的 Go

bash 复制代码
gvm install go1.20

安装完成后,你可以通过以下命令查看已安装的版本:

bash 复制代码
gvm list

删除 Homebrew 安装的 Go

由于 gvm 已经安装了 Go,现在可以删除通过 Homebrew 安装的临时 Go:

bash 复制代码
brew uninstall go

切换到某个版本的 Go

bash 复制代码
gvm use go1.20 --default

这会将 Go 的默认版本设置为 go1.20,后续每次打开终端时都会自动使用该版本。

验证安装

bash 复制代码
go version
which go

运行以上命令,确保 go 的版本和路径都指向 gvm 管理的版本。


4. 安装其他版本的 Go

如果需要安装其他版本的 Go,例如 go1.23.5,可以运行以下命令:

bash 复制代码
gvm install go1.23.5

安装完成后,你可以随时通过 gvm use 切换版本,或者使用 gvm use go1.23.5 --default 将其设置为默认版本。


5. 在 VS Code 中使用 Go

在开发过程中,我们通常会使用 VS Code 作为 Go 语言的 IDE。为了支持 Go 的开发,你需要安装官方的 Go 插件:

  1. 打开 VS Code 的扩展市场(Extensions)。
  2. 搜索并安装 Go 插件。
  3. 插件安装完成后,VS Code 会自动检测你的 Go 环境。

如果 VS Code 没有正确识别你通过 gvm 安装的 Go 版本,可以参考以下步骤手动配置:

  • 打开 VS Code 设置(Cmd + ,Ctrl + ,)。

  • 搜索 Go: GOROOT,并将其设置为 gvm 中的 Go 路径,例如:

    ~/.gvm/gos/go1.20
    

在 VS Code 中调试环境变量

在 VS Code 的集成终端中,运行以下命令,确保它能够正确识别 gvm 管理的 Go 版本:

bash 复制代码
go version
go env

如果 VS Code 的终端与外部终端行为不一致(例如无法正确识别 GOROOT),可以在 VS Code 的设置中配置终端环境变量。


6. 环境变量及相关命令

在 Go 开发中,环境变量(如 GOPATHGOROOT 等)非常重要,以下是一些常用的环境变量管理和调试命令:

查看当前 Go 环境变量

运行以下命令查看当前 Go 环境的所有配置:

bash 复制代码
go env

你会看到类似的输出:

text 复制代码
GO111MODULE="on"
GOPATH="/Users/yourname/go"
GOROOT="/Users/yourname/.gvm/gos/go1.20"

查看特定环境变量

如果只想查看某个环境变量的值,可以运行:

bash 复制代码
go env GOROOT
go env GOPATH

设置 GOPATH

如果需要自定义 GOPATH,可以在 shell 配置文件(如 ~/.bashrc~/.zshrc)中添加以下内容:

bash 复制代码
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH

然后运行以下命令使配置生效:

bash 复制代码
source ~/.bashrc    # 如果使用 bash
source ~/.zshrc     # 如果使用 zsh

检查 Go 的可执行文件路径

bash 复制代码
which go

这个命令会返回当前终端中使用的 go 的可执行文件路径(例如 ~/.gvm/gos/go1.20/bin/go)。如果路径不正确,可以检查是否存在多个 Go 版本冲突。


相关推荐
蒙娜丽宁15 分钟前
【Python】深入探讨Python中的单例模式:元类与装饰器实现方式分析与代码示例
开发语言·python·单例模式
asaasaaax19 分钟前
【黑马python 第十章:数据可视化】99-104
开发语言·python·信息可视化
李歘歘23 分钟前
Golang——常用库context和runtime
开发语言·后端·golang
李歘歘27 分钟前
Golang——常用库sync
开发语言·爬虫·golang
一语成称30 分钟前
6. 快速掌握抽象类及接口
java·开发语言
007php00731 分钟前
go语言zero框架中在线截图chromedp 设置超限的网页长度
java·开发语言·后端·docker·云原生·容器·golang
Code花园1 小时前
Objective-C语言的数据库交互
开发语言·后端·golang
挥剑决浮云 -1 小时前
QT信号槽 笔记
开发语言·笔记·qt
MDY12191 小时前
后端程序打成 JAR 包的详细步骤及解释
java·开发语言·vscode·jar
深色風信子2 小时前
Kotlin Bytedeco OpenCV 图像图像57 图像ROI
开发语言·opencv·kotlin·roi·bytedeco