三十的博客

Mac 系统下 Golang 环境配置指南:使用 GVM 管理多版本

发布时间
最后更新
阅读量 加载中...

安装 gvm

bash
# 使用进程替换和输入重定向从 GitHub 下载并执行 GVM 安装脚本
# -s: 静默模式,不显示进度
# -S: 显示错误信息
# -L: 自动跟随重定向
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

安装 golang

在开始安装 Go 版本之前,需要先确保系统中有基础的 Go 环境。这是因为 GVM 在编译安装特定 Go 版本时需要使用 Go 工具链。

准备工作

  1. 首先通过 Homebrew 安装基础 Go 环境:
bash
brew install go
  1. 验证 Go 是否安装成功:
bash
go version

使用 GVM 安装指定版本

安装最新的稳定版本 Go 1.24.4:

bash
gvm install go1.24.4

安装完成后,切换到新安装的版本:

bash
gvm use go1.24.4 --default

清理基础环境

当 GVM 安装的 Go 版本正常工作后,可以卸载通过 Homebrew 安装的 Go:

bash
brew uninstall go

验证环境

确认当前使用的 Go 版本:

bash
go version

查看 Go 环境变量配置:

bash
go env

GVM 命令详解

基本命令格式

bash
Usage: gvm [command]

Description:
  GVM is the Go Version Manager

常用命令

以下是最常用的 GVM 命令及其使用示例:

  1. 版本管理命令
bash
# 列出所有可安装的 Go 版本
gvm listall

# 安装指定版本
gvm install go1.24.4

# 切换 Go 版本(临时)
gvm use go1.24.4

# 设置默认 Go 版本
gvm use go1.24.4 --default

# 列出已安装的版本
gvm list

# 卸载指定版本
gvm uninstall go1.24.4
  1. 包管理命令
bash
# 创建新的包集
gvm pkgset create goapp1

# 切换到指定包集
gvm pkgset use goapp1

# 列出所有包集
gvm pkgset list

完整命令列表

bash
命令列表:
  version    - 显示 gvm 版本号
  get        - 获取最新代码(用于调试)
  use        - 选择要使用的 Go 版本(使用 --default 参数设为永久)
  diff       - 查看 Go 根目录的变更
  help       - 显示帮助信息
  implode    - 完全移除 gvm
  install    - 安装 Go 版本
  uninstall  - 卸载 Go 版本
  cross      - 安装 Go 交叉编译器
  linkthis   - 将当前目录链接到 GOPATH
  list       - 列出已安装的 Go 版本
  listall    - 列出所有可用的版本
  alias      - 管理 Go 版本别名
  pkgset     - 管理 Go 包集
  pkgenv     - 编辑包集的环境变量
  applymod   - 应用 go.mod 中指定的 Go 版本

环境变量配置

GVM 环境变量

GVM 安装完成后,会自动在 shell 配置文件(如 ~/.zshrc~/.bashrc)中添加以下配置:

bash
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"

Go 环境变量

使用 GVM 时,以下环境变量会自动设置:

bash
# Go 根目录
GOROOT=$HOME/.gvm/gos/go1.24.4

# Go 工作目录
GOPATH=$HOME/.gvm/pkgsets/go1.24.4/global

# Go 二进制文件目录
GOBIN=$GOPATH/bin

包集管理

包集简介

GVM 的包集(pkgset)功能允许为不同项目创建独立的 Go 工作环境,避免依赖冲突。

包集命令

bash
= gvm pkgset

命令列表:
  create     - 创建新的包集
  delete     - 删除包集
  use        - 选择包集作为当前工作环境
  empty      - 清空包集中的所有内容
  list       - 列出已安装的包集

使用示例

bash
# 创建项目专用包集
gvm pkgset create myproject

# 切换到项目包集
gvm pkgset use myproject

# 安装项目依赖
go get github.com/gin-gonic/gin

故障排除

常见问题

  1. 安装失败

    • 确保已安装必要的系统依赖
    • 检查网络连接是否正常
    • 确认 GVM 环境变量是否正确加载
  2. 版本切换失败

    • 确保目标版本已正确安装
    • 检查 shell 配置文件中的 GVM 配置
    • 尝试重新加载 shell 配置:source ~/.zshrc
  3. 包集问题

    • 使用 gvm pkgset list 确认包集是否存在
    • 检查 GOPATH 是否正确设置
    • 必要时可以删除并重新创建包集

环境检查

bash
# 检查 GVM 版本
gvm version

# 验证当前 Go 环境
go env

# 确认包集状态
gvm pkgset list
#Env #Mac #Golang #工具