当前位置: 首页 > news >正文

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:

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

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


2. 安装 GVM

接下来,我们安装 gvm 工具。gvm 会被安装到用户的主目录下(~/.gvm):
如果是 Ubuntu/Debian 系统中,运行以下命令安装所需依赖:

sudo apt-get update
sudo apt-get install curl git mercurial make binutils bison gcc build-essential

安装:

# 安装 gvm
bash < <(curl -sSL https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)# 安装完成后,加载 gvm
source ~/.gvm/scripts/gvm

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

gvm version

3. 使用 GVM 安装 Go

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

查看可用的 Go 版本

gvm listall

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

安装特定版本的 Go

gvm install go1.20

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

gvm list

删除 Homebrew 安装的 Go

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

brew uninstall go

切换到某个版本的 Go

gvm use go1.20 --default

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

验证安装

go version
which go

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


4. 安装其他版本的 Go

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

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 版本:

go version
go env

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

vscode go 自动运行插件 code runner(能够像python一样点击右上角运行)
参考:vscode go 自动运行插件 code runner


6. 环境变量及相关命令

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

linux查看所有的环境变量

# 打印所有的环境变量
printenv
# 过滤
printenv | grep GOPATH

查看当前 Go 环境变量

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

go env

你会看到类似的输出:

GO111MODULE="on"
GOPATH="/Users/yourname/go"
GOROOT="/Users/yourname/.gvm/gos/go1.20"

查看特定环境变量

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

go env GOROOT
go env GOPATH

设置 GOPATH

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

export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH

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

source ~/.bashrc    # 如果使用 bash
source ~/.zshrc     # 如果使用 zsh

检查 Go 的可执行文件路径

which go

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


http://www.lryc.cn/news/523954.html

相关文章:

  • 25届合肥工业大学自动化考研复试攻略
  • 【24】Word:小郑-准考证❗
  • 前瞻2024:前沿技术的全景洞察与深度剖析
  • 告别手动编辑:如何用Python快速创建Ansible hosts文件?
  • ESP32云开发二( http + led + lcd)
  • Java 基于微信小程序的原创音乐小程序设计与实现(附源码,部署,文档)
  • JavaWeb开发(十五)实战-生鲜后台管理系统(二)注册、登录、记住密码
  • 在stm32中C语言编写的程序中,一个整形数据是怎么存储的,高位在前还是低位在前
  • Redis系列之底层数据结构字典Dict
  • CSS 溢出问题及解决方案:实用案例与技巧
  • FastExcel 新一代的潮流 (EasyExcel)
  • 使用ffmpeg提高mp4压缩比,减小文件体积【windows+ffmpeg+batch脚本】
  • cuda从零开始手搓PB神经网络
  • mac 安装mongodb
  • K8S-Pod资源清单的编写,资源的增删改查,镜像的下载策略
  • 【Maui】视图界面与数据模型绑定
  • JavaScript笔记基础篇02——运算符、语句、数组
  • 心法利器[127] | 24年算法思考-特征工程和经典深度学习
  • ASP.NET Core 中的 JWT 鉴权实现
  • PyTorch基本功能与实现代码
  • SparkSQL数据模型综合实践
  • 3 查找重复的电子邮箱(having与where区别,distinct去重使用)
  • uniapp——App 监听下载文件状态,打开文件(三)
  • 循环队列(C语言)
  • 数据可视化:让数据讲故事的艺术
  • 雷电9最新版安装Magisk+LSPosd(新手速通)
  • Ubuntu 24.04 LTS 开启 SMB 服务,并通过 windows 访问
  • 使用Websocket进行前后端实时通信
  • vue2使用flv.js在浏览器打开flv格式视频
  • OpenCV相机标定与3D重建(61)处理未校准的立体图像对函数stereoRectifyUncalibrated()的使用