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 版本冲突。


相关推荐
Code Warrior41 分钟前
【每日算法】专题五_位运算
开发语言·c++
沐知全栈开发3 小时前
HTML DOM 访问
开发语言
脑袋大大的4 小时前
JavaScript 性能优化实战:减少 DOM 操作引发的重排与重绘
开发语言·javascript·性能优化
芳草萋萋鹦鹉洲哦4 小时前
【vue3+tauri+rust】如何实现下载文件mac+windows
windows·macos·rust
二进制person5 小时前
Java SE--方法的使用
java·开发语言·算法
OneQ6665 小时前
C++讲解---创建日期类
开发语言·c++·算法
码农不惑6 小时前
2025.06.27-14.44 C语言开发:Onvif(二)
c语言·开发语言
Coding小公仔7 小时前
C++ bitset 模板类
开发语言·c++
小赖同学啊8 小时前
物联网数据安全区块链服务
开发语言·python·区块链
shimly1234568 小时前
bash 脚本比较 100 个程序运行时间,精确到毫秒,脚本
开发语言·chrome·bash