GVM 使用指南:管理多版本 Go
GVM 使用指南管理多版本 GoGVMGo Version Manager是 Go 版本管理工具定位类似于 Node 生态的nvm、Python 生态的 uv。它可以在同一台机器上安装、切换多个 Go 版本互不干扰。日常开发中最常见的需求无非这几个装 gvm → 看有哪些版本 → 装指定版本 → 切到指定版本 → 设为默认。本文按这条主线展开并在最后单独说明一个新人必踩的坑——源码编译依赖预装 Go。1. 安装 GVM通过官方安装脚本一键安装依赖bash、curl/gitbash(curl-s-S-Lhttps://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)安装脚本会把 gvm 本体放在~/.gvm/并向你的 shell 配置文件~/.bashrc、~/.zshrc或~/.profile追加一段初始化代码。让配置生效source~/.bashrc# zsh 用户用: source ~/.zshrc验证安装gvm version如果提示 gvm 命令找不到多半是初始化脚本没被当前 shell 加载确认 [[ -s “KaTeX parse error: Expected EOF, got at position 27: …cripts/gvm ]] ̲ source HOME/.gvm/scripts/gvm” 已写进你的 rc 文件同时确认第一步安装已完成。2. 查看可安装的版本列表gvm listall它会拉取 Go 官方所有发布版本如go1.21.0、go1.22.3、go1.23.0等。版本号较多可以配合grep过滤gvm listall|grepgo1.22查看本地已经安装的版本用gvm list3. 安装指定版本gvminstallgo1.22.3⚠️ 这条命令默认会下载源码并在本地编译并非直接下载预编译包。详见 第 6 节新手必踩的坑。更省心的做法是加--binary参数直接下载官方预编译二进制跳过编译gvminstallgo1.22.3--binary4. 使用指定版本安装完成后切换到该版本仅对当前 shell生效gvm use go1.22.3验证go version# 输出: go version go1.22.3 ...5. 默认使用指定版本gvm use只影响当前终端会话新开一个窗口又会变回旧版本。要永久设为默认加--defaultgvm use go1.22.3--default此后每个新开的 shell 都会自动激活这个版本无需再手动gvm use。6. 新手必踩的坑源码编译依赖预装 Go这是 GVM 最反直觉的一点值得单独拎出来讲。现象当你执行gvm install go1.22.3不带--binary时GVM 会克隆 Go 源码、执行make.bash在本地编译。如果机器上没有预装任何 Go编译会失败常见报错类似ERROR: Couldnt find Go 1.4 bootstrapper in ... Building Go cmd/dist using /path/to/go1.4 go: command not found原因Go 从 1.5 起是自举self-hosted语言——Go 编译器本身就是用 Go 写的因此编译 Go 工具链需要一个已有的 Go 编译器作为引导bootstrap toolchain通常是go1.4。GVM 在源码编译路径下默认会去找一个名为go1.4的 bootstrap 编译器找不到就编不动。这就形成了「想用 gvm 装 Go得先有个 Go」的鸡生蛋困境。三种解法推荐第一种直接用--binary推荐gvminstallgo1.22.3--binary跳过编译下载官方预编译包几秒钟搞定绝大多数场景都不需要本地编译。先手动装一个引导 Go从 go.dev/dl 下载官方包或用系统包管理器装一个临时版本再让 GVM 用它做 bootstrap。装好第一个 gvm 管理的版本后临时 Go 即可移除。让 GVM 自己编译一个go1.4bootstrapgvminstallgo1.4--binary# 先准备 bootstrapgvminstallgo1.22.3# 再源码编译目标版本仅当你确实需要源码编译例如要打特定GOOS/GOARCH、开启/关闭cgo等自定义构建选项时才有必要。结论如果只是日常开发切换 Go 版本无脑加--binary即可能省去所有编译相关的麻烦。附其他常用命令命令作用gvm list查看本地已安装版本gvm listall查看所有可安装版本gvm install ver --binary安装预编译二进制推荐gvm use ver当前 shell 切换版本gvm use ver --default设为默认版本gvm uninstall ver卸载指定版本gvm implode彻底卸载 gvm 本体慎用快速上手TL;DR# 1. 安装 gvmbash(curl-s-S-Lhttps://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)source~/.bashrc# 2. 看可用版本gvm listall|grepgo1.22# 3. 装指定版本务必加 --binary避免源码编译的坑gvminstallgo1.22.3--binary# 4. 切换使用gvm use go1.22.3# 5. 设为默认gvm use go1.22.3--default

相关新闻

室内装修给排水设计深度解析

室内装修给排水设计深度解析

室内装修给排水设计深度解析:4个核心维度筑牢居住品质防线 室内装修给排水设计做对了,能避免90%的后期居住漏水、返臭、排水不畅等糟心问题。很多业主在装修时容易把注意力放在外观风格上,忽略了隐蔽的给排水系统,等到入住后出现墙…

2026/10/20 20:32:07 阅读更多 →
MBA论文降AIGC工具对比:千笔与锐智AI实战评测

MBA论文降AIGC工具对比:千笔与锐智AI实战评测

1. 项目背景与核心痛点临近论文提交截止日期的夜晚,电脑屏幕的蓝光映照着一张张焦虑的面孔——这是无数MBA学生和学术工作者共同的噩梦。随着AIGC(人工智能生成内容)技术的普及,教育机构对论文中AI生成内容的检测越来越严格&#…

2026/10/21 2:51:25 阅读更多 →
Dism++:Windows系统优化终极指南 - 免费神器完整使用教程

Dism++:Windows系统优化终极指南 - 免费神器完整使用教程

Dism:Windows系统优化终极指南 - 免费神器完整使用教程 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language 你是否厌倦了Windows系统越用越慢&#xff0…

2026/10/16 19:23:41 阅读更多 →

最新新闻

spooling假脱机模拟:2请求进程+1输出进程的并发控制与信号量实现

spooling假脱机模拟:2请求进程+1输出进程的并发控制与信号量实现

简介:这份资源围绕操作系统中的Spooling假脱机输入输出模拟技术展开,面向计算机专业学生及系统设计学习者,帮助理解如何通过磁盘缓冲将慢速I/O设备虚拟化,实现多进程共享打印机等外设。包内共11个文件,以5个class编译文…

2026/10/21 2:52:02 阅读更多 →
原生应用接入AI的伦理与合规:从开源许可到隐私边界

原生应用接入AI的伦理与合规:从开源许可到隐私边界

1. 为什么原生应用开发者绕不开“AI伦理”这道门槛“AI伦理”这四个字放在前几年,很多做原生应用开发的同行会觉得这是大厂法务和研究院才需要操心的事。但这两年情况完全不一样了——几乎每个原生应用都在往里面塞AI能力,从刷脸登录、智能客服&#xff…

2026/10/21 2:52:02 阅读更多 →
PowerBuilder 11.5 环境搭建与数据窗口连库实战指南

PowerBuilder 11.5 环境搭建与数据窗口连库实战指南

简介:PowerBuilder 11.5 安装文件资源包,面向需要搭建经典 PB 开发环境的学习者与维护老项目的开发者。PowerBuilder 是 Sybase 推出的快速应用开发工具,11.5 版本在数据窗口、数据库连接与客户端应用开发方面较为成熟,适合用于课…

2026/10/21 2:52:02 阅读更多 →
JSP+Servlet学生管理系统毕设实战指南

JSP+Servlet学生管理系统毕设实战指南

简介:这是一份面向Java Web初学者与高校课程实践者的完整学生信息管理系统教学资源,基于JSP与Servlet技术栈实现MVC分层架构,覆盖动态网页开发、HTTP请求处理、JDBC数据库操作及Tomcat容器部署等核心知识点。资源包共576个文件,包…

2026/10/21 2:52:02 阅读更多 →
MPlayer启用VAAPI硬解:编译、配置与验证实战

MPlayer启用VAAPI硬解:编译、配置与验证实战

手里还有一台老机器,跑着轻量级Linux桌面,平时看本地视频一直用MPlayer的-vo和-slave接口,自动化脚本都绑死在上面。后来换了4K片源,CPU直接拉满,画面一卡一卡的,我才认真考虑给MPlayer接上VAAPI硬解。折腾…

2026/10/21 2:52:02 阅读更多 →
知网AIGC检测原理与降AI工具实测:从标红到通过的完整攻略

知网AIGC检测原理与降AI工具实测:从标红到通过的完整攻略

去年有一阵子,实验室里的几位同学轮流来找我,说同一个问题:初稿明明是自己熬夜搭出来的框架,再用AI润了一轮,结果往知网AIGC检测系统一放,直接标红一片,相似度干到百分之四五十,要求…

2026/10/21 2:51:01 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →