如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本


在Mac上用Homebrew安装Go最简洁高效,自动配置PATH;需多版本时推荐goenv,支持全局/局部版本切换,并建议配置GOPROXY加速模块下载。

在Mac上搭建Golang开发环境,用Homebrew安装和管理Go版本是最简洁高效的方式。它能避免手动下载、解压、配置PATH等繁琐步骤,还能轻松切换不同Go版本,适合日常开发与多项目协作。

用Homebrew安装Go

确保已安装Homebrew(如未安装,先运行 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")。之后执行:

  • brew install go —— 安装最新稳定版Go
  • 安装完成后,Go二进制文件默认位于 /opt/homebrew/bin/go(Apple Silicon)或 /usr/local/bin/go(Intel),Homebrew会自动将其加入系统PATH
  • 验证:终端运行 go version,应显示类似 go version go1.22.4 darwin/arm64

用gvm或goenv管理多版本(推荐goenv)

Homebrew自带的go只提供单版本,若需并存多个Go版本(如v1.19、v1.21、v1.22),建议使用goenv——轻量、兼容性好、与Homebrew无冲突:

  • 安装:brew install goenv
  • 初始化:将以下内容添加到~/.zshrc(或~/.bash_profile):
    export GOENV_ROOT="$HOME/.goenv"
    export PATH="$GOENV_ROOT/bin:$PATH"
    eval "$(goenv init -)"

    然后运行 source ~/.zshrc
  • 列出可安装版本:goenv install --list
  • 安装指定版本(如v1.21.10):goenv install 1.21.10
  • 设为全局默认:goenv global 1.21.10;或为当前目录设局部版本:goenv local 1.19.13

验证环境与基础配置

安装和版本管理就绪后,还需确认工作区和模块支持正常:

立即学习“go语言免费学习笔记(深入)”;

  • Go默认使用模块(Go Modules),无需额外开启。新建项目目录后,运行 go mod init example.com/myapp 即可初始化
  • 检查GOPATH(现代Go已不强制依赖,但部分工具仍参考):go env GOPATH,默认为$HOME/go,可按需修改
  • 推荐启用Go代理加速模块下载:go env -w GOPROXY=https://proxy.golang.org,direct(国内用户可换为 https://goproxy.cn
  • 编辑器支持:VS Code安装“Go”扩展后,会自动识别goenv切换的版本;JetBrains系列需在Settings → Go → GOROOT中指向$(goenv prefix)对应路径

卸载与清理(按需)

若想彻底移除Homebrew安装的Go或某个goenv版本:

  • Homebrew版Go:brew uninstall go
  • goenv某版本:goenv uninstall 1.20.7
  • 删除全部goenv版本及配置:rm -rf $HOME/.goenv,再从~/.zshrc中删掉相关配置行


# git  # go  # github  # golang  # app  # 工具  # ssl  # mac  # curl  # ai  # proxy  # 解压  # win  # bash 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: 如何在网页无标准表格标签时高效提取结构化数据  如何在 Go 中高效缓存与分发网络视频流  Win10怎样卸载TeamViewer_Win10卸载TeamViewer步骤【教程】  MAC怎么解压RAR格式文件_MAC第三方解压工具安装与压缩包管理【教程】  Python集合操作技巧_高效去重解析【教程】  如何诊断并终止卡死的 multiprocessing 子进程  Python函数接口文档化_自动化说明【指导】  Win11鼠标灵敏度怎么调 Win11鼠标指针移动速度设置【教程】  Win11怎么开启专注模式_Windows11时钟应用Focus Session  Win11怎样安装微信开发者工具_Win11安装开发者工具教程【步骤】  电脑的“网络和共享中心”去哪了_Windows 11新版网络设置指南【新手】  如何在Golang中处理云原生事件_使用Event和Notification机制  Windows10任务栏图标变成白色文件_Win10重建图标缓存修复方法  Windows任务计划服务异常原因_任务调度失败的处理方案  Python网络超时处理_健壮性设计说明【指导】  如何在Golang中实现微服务负载均衡_Golang负载均衡策略与实现示例  Win11怎么开启游戏模式_Windows11优化游戏帧数设置指南  Windows11如何设置专注助手_Windows11专注助手使用攻略【技巧】  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  php嵌入式需要什么环境_搭建php+linux嵌入式开发环境【详解】  如何使用Golang优化模块引入路径_Golanggo mod tidy清理与优化方法  Mac如何将HEIC图片格式转为JPG_Mac批量转换图片【指南】  Go语言中CookieJar的持久化机制解析:内存存储与自定义持久化方案  windows系统如何安装cab更新补丁_windows手动安装更新包教程  Windows10系统服务优化指南_Win10禁用不必要服务提升性能  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  PHP主流架构如何做单元测试_工具与流程【详解】  PowerShell怎么创建复杂的XML结构  Win11怎么更改管理员名字 Win11修改账户名称详细步骤【教程】  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Go 中 := 短变量声明的类型推导机制详解  Linux如何安装Tomcat应用服务器_Linux环境部署与端口修改【教程】  MAC怎么一键隐藏桌面所有图标_MAC极简模式切换与终端指令【方法】  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  如何使用Golang包导出规则_控制函数和变量可见性  c++ atoi和atof函数用法_c++字符数组转数字  Python路径拼接规范_跨平台处理说明【指导】  Win11怎么开启HDR模式_Windows 11高动态范围显示设置指南【详解】  Mac如何创建和管理多个桌面空间_Mac高效多任务处理【技巧】  Windows10电脑怎么设置虚拟内存_Win10高级系统设置性能  Win11怎么关闭任务栏小组件_Windows11隐藏任务栏天气图标  c++的STL算法库find怎么用 在容器中查找指定元素【实用教程】  如何使用Golang进行HTTP服务性能测试_测量吞吐量和延迟  php订单日志怎么按状态筛选_php筛选不同状态订单日志教程【教程】  Win11用户账户控制怎么关_Win11关闭UAC弹窗提示【设置】  Win11开机Logo怎么换_Win11自定义启动画面工具【高级】  Win11如何暂停系统更新 Win11暂停更新最长时限设置【步骤】  Win11如何设置文件关联 Win11修改特定文件类型的默认打开程序【详解】  PHP cURL GET请求:正确设置认证与自定义请求头的完整教程  Windows10系统更新错误0x80070002_Win10自动更新失败手动修复 

 2026-01-02

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.