在mac 上zsh 如何安装最新的 go 工具

在这里插入图片描述

文章目录

    • 方法一:使用 Homebrew(推荐)
    • 方法二:从官网下载安装包
    • 方法三:使用 g(Go 版本管理器)
    • 方法四:使用 gvm(Go Version Manager)
    • 验证安装和配置
    • 常用 Go 工具安装
    • 完整的 ~/.zshrc 配置示例
    • 升级 Go 版本

在 macOS 上使用 zsh 安装最新 Go,我推荐几种方法:

方法一:使用 Homebrew(推荐)

1. 安装 Homebrew(如果还没有):

bash

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. 安装最新版 Go:

bash

brew install go

3. 验证安装:

bash

go version

4. 配置环境变量:~/.zshrc 文件中添加:

bash

export GOPATH=$HOME/go
export GOROOT=/opt/homebrew/lib/go  # Apple Silicon Mac
# export GOROOT=/usr/local/lib/go   # Intel Mac
export PATH=$PATH:$GOPATH/bin:$GOROOT/bin

然后重新加载配置:

bash

source ~/.zshrc

方法二:从官网下载安装包

1. 访问 Go 官网: 访问 golang.org/dl 下载 macOS 安装包

2. 安装后配置环境变量:~/.zshrc 文件中添加:

bash

export GOPATH=$HOME/go
export GOROOT=/usr/local/go
export PATH=$PATH:$GOPATH/bin:$GOROOT/bin

方法三:使用 g(Go 版本管理器)

1. 安装 g:

bash

curl -sSL https://git.io/g-install | sh -s

2. 配置 PATH:~/.zshrc 中添加:

bash

export GOPATH=$HOME/go
export PATH="$GOPATH/bin:$PATH"
export G_MIRROR=https://golang.google.cn/dl/  # 可选:使用国内镜像

3. 安装最新版 Go:

bash

g install latest
g set latest

方法四:使用 gvm(Go Version Manager)

1. 安装 gvm:

bash

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

2. 重新加载 shell:

bash

source ~/.zshrc

3. 安装最新版 Go:

bash

gvm install go1.21.5 -B  # 替换为最新版本号
gvm use go1.21.5 --default

验证安装和配置

1. 检查版本:

bash

go version

2. 检查环境变量:

bash

go env GOPATH
go env GOROOT

3. 创建测试项目:

bash

mkdir -p $GOPATH/src/hello
cd $GOPATH/src/hello

创建 hello.go 文件:

go

package mainimport "fmt"func main() {fmt.Println("Hello, Go!")
}

4. 运行测试:

bash

go run hello.go

常用 Go 工具安装

安装一些常用的 Go 开发工具:

bash

# 代码格式化
go install golang.org/x/tools/cmd/goimports@latest# 代码检查
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest# 调试工具
go install github.com/go-delve/delve/cmd/dlv@latest# 热重载
go install github.com/cosmtrek/air@latest# 依赖管理可视化
go install github.com/KyleBanks/depth/cmd/depth@latest

完整的 ~/.zshrc 配置示例

bash

# Go 环境配置
export GOPATH=$HOME/go
export GOROOT=/opt/homebrew/lib/go  # Apple Silicon
# export GOROOT=/usr/local/go       # 官网安装或Intel Mac
export PATH=$PATH:$GOPATH/bin:$GOROOT/bin# Go 代理配置(可选,提高下载速度)
export GOPROXY=https://goproxy.cn,direct
export GOSUMDB=sum.golang.google.cn# Go 模块配置
export GO111MODULE=on

升级 Go 版本

使用 Homebrew:

bash

brew upgrade go

使用 g:

bash

g install latest
g set latest

使用 gvm:

bash

gvm install go1.21.5  # 新版本
gvm use go1.21.5 --default

我推荐使用 Homebrew 方法,因为它简单可靠,易于管理。如果你需要管理多个 Go 版本,可以选择 g 或 gvm。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90189.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(十九)深入了解 AVFoundation-编辑:使用 AVMutableVideoComposition 实现视频加水印与图层合成(上)——理论篇

一、引言在短视频、Vlog、剪辑工具日益流行的今天&#xff0c;给视频添加 Logo、水印、时间戳或动态贴纸&#xff0c;已经成为非常常见的功能需求。这类效果看似简单&#xff0c;其实背后都涉及到“图层合成”的处理&#xff1a;如何将一个静态或动态的图层&#xff08;如文字、…

Android NDK与JNI深度解析

核心概念定义&#xff1a;NDK (Native Development Kit): 是什么&#xff1a; 一套由 Google 提供的工具集合。目的&#xff1a; 允许 Android 开发者使用 C 和 C 等原生&#xff08;Native&#xff09;语言来实现应用程序的部分功能。包含内容&#xff1a; 交叉编译器&#xf…

Golang各版本特性

1. Go各版本特性 | FeelingLife 2. https://chatgpt.com/share/68808f58-ae5c-800a-8153-5358098f301b 3.https://tonybai.com/2024/11/14/go-map-use-swiss-table/

HTML 转 Word API 接口

HTML 转 Word API 接口 支持网页转 Word&#xff0c;高效转换为 Word&#xff0c;提供永久链接。 1. 产品功能 超高性能转换效率&#xff1b;支持将传递的 HTML 转换为 Word&#xff0c;支持 HTML 中的 CSS 格式在 Word 文档中的呈现&#xff1b;支持传递网站的 URL&#xff…

Lucid Search: 极简、隐私友好的问答式搜索引擎技术解析

Lucid Search: 极简、隐私友好的问答式搜索引擎技术解析 产品定位与价值主张 Lucid Search 是一款革命性的问答式搜索引擎&#xff0c;其核心价值在于&#xff1a; 极简体验&#xff1a;无账户、无广告、前端完全静态隐私保护&#xff1a;不写入 Cookie、不记录 IP、无追踪即…

卷积神经网络:模型评估标准

一、分类模型评价指标在模型评估中&#xff0c;有多个标准用于衡量模型的性能&#xff0c;这些标准包括准确率&#xff08;Accuracy&#xff09;、精确率&#xff08;Precision&#xff09;、召回率&#xff08;Recall&#xff09;、F1 分数&#xff08;F1-Score&#xff09;等…

【前端工程化】前端开发中想做好发布管理可以从哪些方面着手?

在企业级后台系统中&#xff0c;发布管理是整个开发流程的最终环节&#xff0c;也是最为关键的一环。它不仅涉及代码构建完成后的部署操作&#xff0c;还包括版本控制、灰度发布、回滚机制等保障系统稳定性的措施。 本文主要围绕发布流程设计、版本控制、部署方式、灰度策略和回…

替分布式=成本下降50% !

在数字化转型的浪潮中&#xff0c;数据库作为医疗信息系统的“心脏”&#xff0c;其稳定性与效率直接关乎医疗服务的质量。2024年10月30日&#xff0c;绵阳市第三人民医院集成平台的CDR数据库成功从分布式数据库Citus切换为国产集中式数据库KingbaseES&#xff0c;并稳定运行至…

【Linux系统编程】基础指令

基础指令1. adduser指令&&passwd指令2. userdel指令3. pwd指令4. ls指令5. cd指令6. tree指令7. touch指令8. mkdir指令9. rmdir指令&&rm指令10. man指令11. cp指令12. mv指令13. cat指令14. more指令15. less指令16. head指令17. tail指令18. date指令19. cal…

区块链之以太坊Hardhat开发框架——部署在windows为例

Hardhat 提供了一个灵活且易于使用的开发环境&#xff0c;可以轻松地编写、测试和部署智能合约。Hardhat还内置了Hardhat 网络&#xff08;Hardhat Node&#xff09;&#xff0c;它是为开发而设计的本地以太坊网络。 下面是hardhat的官方文档 https://hardhat.org/hardhat-ru…

Ubuntu 1804 编译ffmpeg qsv MediaSDK libva 遇到的问题记录

之前都是 用的xeon服务器的cpu 不支持intel QSV 硬件加速 最近把自己的 14年买的pc机装上了ubuntu 1804 然后准备开启ffmpeg qsv 硬件加速功能 CPU i3-4170 内存DDR3 16G 硬盘机械盘500G 主板ASUS B85M-G首先安装vainfo工具apt install vainfo装完提示如下出错了 网上说是…

Elasticsearch(ES)介绍和安装

目录 一、Elasticsearch(ES)介绍 1.为什么需要单独的搜索服务 2.全文检索 3.Elasticsearch简介 1.Elasticsearch的特点 2.应用场景 3.ElasticSearch数据的存储和搜索原理 二、Elasticsearch(ES)安装 1、拉取镜像 2、创建目录并给目录赋权 3、创建并编辑配置文件 4、…

html结构解析

<!DOCTYPE html>&#xff1a;声明为 HTML5 文档 <html lang"zh-CN">&#xff1a;根元素&#xff0c;指定页面语言为中文 <meta charset"UTF-8">&#xff1a;设置字符编码&#xff0c;确保中文正常显示 <meta name"viewport"…

面试150 最大子数组和

思路 贪心法&#xff1a;设定最小标志result为float(‘-inf’),遍历一次数组元素进行求和&#xff0c;如果当前元素大于result&#xff0c;则更新result的值&#xff0c;如果sum小于0&#xff0c;则重新置0进行计算&#xff0c;最后返回result class Solution:def maxSubArray(…

MyBatis动态SQL实战:告别硬编码,拥抱智能SQL生成

MyBatis动态SQL实战&#xff1a;告别硬编码&#xff0c;拥抱智能SQL生成在电商平台的用户管理模块中&#xff0c;需要面对多种不同的用户查询组合条件。当使用传统的硬编码SQL方式时&#xff0c;代码膨胀到了2000多行&#xff0c;维护成本极高。而引入MyBatis动态SQL后&#xf…

Web前端开发:JavaScript遍历方法详解与对比

1. 传统 for 循环const arr [10, 20, 30]; for (let i 0; i < arr.length; i) {console.log(索引 ${i}: 值 ${arr[i]}); } // 输出&#xff1a; // 索引 0: 值 10 // 索引 1: 值 20 // 索引 2: 值 30特点&#xff1a;最基础的循环&#xff0c;可通过索引精准控制适用场景&…

Python 爬虫(一):爬虫伪装

目录 1 简介2 伪装策略 2.1 Request Headers 问题2.2 IP 限制问题 3 总结 1 简介 对于一些有一定规模或盈利性质比较强的网站&#xff0c;几乎都会做一些防爬措施&#xff0c;防爬措施一般来说有两种&#xff1a;一种是做身份验证&#xff0c;直接把虫子挡在了门口&#xff…

TODAY()-WEEKDAY(TODAY(),2)+1

这个Excel公式 TODAY()-WEEKDAY(TODAY(),2)1 用于计算 当前周的周一日期。下面详细解释它的逻辑和用法&#xff1a;公式解析TODAY()返回当前日期&#xff08;例如今天是2023年12月20日&#xff0c;则 TODAY() 2023/12/20&#xff09;。WEEKDAY(TODAY(), 2)计算当前日期是星期几…

Fast Frequency Estimation Algorithm by Least Squares Phase Unwrapping

I. 引言 单个含噪正弦信号的频率估计是一个研究已久的问题&#xff0c;并有多种应用[1]。在高斯白噪声假设下&#xff0c;最大似然(ML)频率估计器是Rife和Boorstyn [2]中提出的周期图估计器&#xff0c;其中傅里叶变换用于搜索周期图的最大值。周期图估计器被广泛认为是单频估计…

C语言常见的预定符号常量

C语言常见的预定符号常量C 语言提供了丰富的预定义符号常量&#xff0c;分布在不同头文件中&#xff0c;用于获取编译信息、数值范围、浮点特性等关键信息。以下是常见预定义符号常量的分类总结&#xff1a;一、预定义宏&#xff08;编译时信息&#xff09;由编译器自动定义&am…