【homebrew安装】踩坑爬坑教程

news/2024/9/20 23:24:50/

homebrew官网,有安装教程提示,但是在实际安装时,由于待下载的包的尺寸过大,本地git缓存尺寸、超时时间的限制,会报如下错误:

error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly:CANCEL
error: RPC failed; curl 18 transfer closed with outstanding read data remaining

一、安装

执行命令:

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

二、git设置

macos在安装时可能会遇到如上述的报错,可以增加以下设置

1. 增加 git 的缓冲区大小

增大 Git 缓冲区可以帮助解决传输中断问题:

git config --global http.postBuffer 524288000

2. 调整 Git 的传输超时

可以通过增加 Git 的超时时间来防止网络不稳定引起的中断:

git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999

3. 使用浅克隆

如果你在克隆 Homebrew 的仓库,可以使用浅克隆来减少传输的数据量:

git clone --depth=1 https://github.com/Homebrew/brew.git

设置完成后,git配置如下:

4. 尝试使用镜像源

执行上述安装脚本时,走到Updating brewing时,可能会出现如下报错:

Error: Failed to download https://formulae.brew.sh/api/formula.jws.json!

看到这个报错时,基础功能已经安装成功,可能是网络问题,连接 Homebrew 官方服务器可能不稳定,特别是在中国等网络环境受限的地区。可以尝试使用国内镜像源。

设置国内源(例如清华大学的镜像):

git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git

1、如果提示brew命令行不存在,那么请先按照下面第2节,配置brew的bin文件到环境变量Path中,brew命令行就能生效。然后再执行上述命令,去修改源。

2、如果报如下错:fatal: cannot change to '/opt/homebrew/Library/Taps/homebrew/homebrew-core': No such file or directory,则表示Homebrew 核心库(homebrew-core)没有正确安装,可以先手动安装:

# 创建 Homebrew taps 目录
mkdir -p "$(brew --repo)/Library/Taps/homebrew"# 克隆 homebrew-core 仓库到本地
git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git "$(brew --repo)/Library/Taps/homebrew/homebrew-core"

3、如果报如下错:fatal: cannot change to '/opt/homebrew/Library/Taps/homebrew/homebrew-cask': No such file or directory,则表示Homebrew 核心库(homebrew-cask)没有正确安装,可以先手动安装:

# 创建 Homebrew Taps 目录
mkdir -p "$(brew --repo)/Library/Taps/homebrew"# 克隆 homebrew-cask 仓库到本地
git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git "$(brew --repo)/Library/Taps/homebrew/homebrew-cask"

2. 确认 Homebrew 安装路径

如果安装成功,但 brew 命令依然无法找到,可能是 Homebrew 的路径没有正确配置。首先,检查 Homebrew 是否已经安装并找到安装路径。

在 Apple Silicon Mac 上,Homebrew 通常会安装在 /opt/homebrew,而在 Intel Mac 上,通常会安装在 /usr/local. 你可以手动添加 Homebrew 的路径到你的 PATH 环境变量中。

2.1. (M1/M2) 芯片Mac:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

2.2. Intel 芯片Mac:

echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/usr/local/bin/brew shellenv)"

然后,重新启动终端或执行以下命令以重新加载配置:

source ~/.zprofile

3. 验证 Homebrew 安装

在重新安装并配置 PATH 之后,运行以下命令检查 Homebrew 是否安装成功:

brew --version

如果你看到 Homebrew 的版本信息,说明安装成功并配置正确。

成功后,显示如下:
在这里插入图片描述


http://www.ppmy.cn/news/1528125.html

相关文章

SpringCloud系列之一---搭建高可用的Eureka注册中心

前言 本篇文章主要介绍的是SpringCloud相关知识、微服务架构以及搭建服务注册与发现的服务模块(Eureka)以及Eureka集群。 GitHub源码链接位于文章底部。 什么是SpringCloud Spring Cloud 是一系列框架的有序集合。 它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设…

【数据结构】什么是二叉搜索(排序)树?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 📌二叉搜索(排序)树的概念 📌二叉搜索(排序)树的操作 🎏二叉搜索树的查找 🎏二叉搜索树的插入 🎏二叉搜索树的…

MYSQL面试知识点手册

第一部分:MySQL 基础知识 1.1 MySQL 简介 MySQL 是世界上最流行的开源关系型数据库管理系统之一,它以性能卓越、稳定可靠和易用性而闻名。MySQL 主要应用在 Web 开发、大型互联网公司、企业级应用等场景,且广泛用于构建高并发、高可用的数据…

SDL 2.0视频数据渲染到窗口上播放流程

在 SDL 2.0 中,将视频数据渲染到窗口上涉及几个步骤,包括创建窗口和渲染器、加载视频帧数据、将其绘制到纹理上以及更新显示。以下是一个基本的示例,演示了如何使用 SDL 2.0 渲染视频帧到窗口: 基本步骤 初始化 SDL:…

【结构型】树形结构的应用王者,组合模式

目录 一、组合模式1、组合模式是什么?2、组合模式的主要参与者: 二、优化案例:文件系统1、不使用组合模式2、通过组合模式优化上面代码优化点: 三、使用组合模式有哪些优势1、统一接口,简化客户端代码2、递归结构处理方…

【大模型入门】零基础入门AI大模型应用开发,你需要一个系统的入门路径!

随着大模型技术的飞速发展,我们正站在一个全新的技术前沿,探索着如何将这些强大的工具应用于实际问题的解决。如果你对AI大模型应用开发充满热情,那么你可以读一下这篇文章——一个系统全面的入门指南,专为渴望深入AI世界的你设计…

贪心算法day31|56. 合并区间、738. 单调递增的数字(整数与字符串的转换)、贪心刷题总结

贪心算法day31|56. 合并区间、738. 单调递增的数字、贪心刷题总结 56. 合并区间738. 单调递增的数字贪心刷题总结 56. 合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 …

ffmpeg实现视频的合成与分割

视频合成与分割程序使用 作者开发了一款软件,可以实现对视频的合成和分割,界面如下: 播放时,可以选择多个视频源;在选中“保存视频”情况下,会将多个视频源合成一个视频。如果只取一个视频源中一段视频…