brew install 无法从ghcr.io/v2/homebrew/core下载安装,兴奋解决

news2025/1/18 3:21:26

痛苦的经历

使用mac的同学都会经常使用brew 工具安装,我本来是需要安装一下ffmpeg来着,我就执行以下命令

brew install py3cairo ffmpeg
==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/blobs/sha256:32da4055066fca85ebd5057718d0ec5c80eb162f796
#############           12.2%
#############           12.4%
#############           12.5%
#############           12.6%
#############           12.6%
#############           12.6%
#############           12.7%
#############           12.7%
#################  	    16.1%

这种情况还是好的,是安装慢,但是啊,好不容易下载完成后面伴有下面这种提示

Warning: formula.jws.json: update failed, falling back to cached version.

安装失败,死活也安装不了。。。

冷静分析

注意啦,这个事情很重要,主要原因是,我一开始碰到这种也是百度,也会指导说配置一个镜像之后下载就飞起。但是这种时候就是会发现有的时候起作用,有的时候又不灵,这就是少了一步冷静分析。

其实我们使用brew install 往往伴随以下过程

校验系统版本->校验brew版本->检查库的版本

  1. 首先如果是老版本系统会提示不支持的情况,或者失效,哎估计一贯以来苹果的策略吧,希望用户升级到新系统,相差几个版本的话就来个不支持,一定要搞到最新才行。这种情况就老实升级系统吧。
    在这里插入图片描述
  2. brew版本太低了
    这个是每次安装的时候会做检查,也可以主动触发,就是我们熟悉的brew update操作,这玩意吧,其实是在github上面的,由于国内网络环境确实比较差,所以这一步劝退了很多人
  3. brew管理的软件包下载失败,这种就是真正的下载软件包的动作,但是这个内部也存在库迁移的现象,类似如下的情况
brew install 无法从ghcr.io/v2/homebrew/core下载安装,怎么解决?
brew install 安装失败,http://homebrew.bintray.com失效,全部从ghcr.io/v2/homebrew/core 下载

系统更新

我们针对问题去解决,这样子才能做得彻底
系统更新就直接更新就好,我自己使用的家庭网络,也可以更新,没啥大问题

brew版本与仓库的更新

brew其实是保存在github仓库里面的,大凡没找到合适的科学上网的话确实比较困难,一般是推荐使用国内镜像,重新认识一下brew,全称是Homebrew,主要有四个部分组成: brew、homebrew-core 、homebrew-cask、homebrew-bottles,具体功能如下:

名称说明默认地址
brewHomebrew 源代码仓库HOMEBREW_BREW_GIT_REMOTE
homebrew-coreHomebrew 核心源HOMEBREW_CORE_GIT_REMOTE
homebrew-cask提供 macOS 应用和大型二进制文件的安装HOMEBREW_API_DOMAIN
homebrew-bottles预编译二进制软件包HOMEBREW_BOTTLE_DOMAIN

注意啦,当我们试着去解决brew源码仓库或者brew自身软件源的时候,其实我们就是去解决git远程仓库问题,Git Remote Mirroring,后面具体的软件包的时候其实是在解决软件包的源问题,其实是两趴事情

解决远程仓库Git Remote Mirroring

直接替换git仓库地址即可,网上也容易搜索到

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"

好,这种信息我怎么知道呢,要学会查询官网,点击文档地址,找到下面的位置
在这里插入图片描述
其实比较清楚的啦,如果你是碰到链接github.com方面的问题,其实就可以使用git镜像替换,然后下面给出环境变量设置方式,这不就对应上了。

更多的环境变量参数

其实brew很多都是可以通过环境变量来控制的,比如说前面列出来的HOMEBREW_API_DOMAIN和HOMEBREW_BOTTLE_DOMAIN是怎么来的呢,其实是翻到了下面的内容:

HOMEBREW_BOTTLE_DOMAIN
Use this URL as the download mirror for bottles. If bottles at that URL are temporarily unavailable, the default bottle domain will be used as a fallback mirror. 
For example, HOMEBREW_BOTTLE_DOMAIN=http://localhost:8080 will cause all bottles to download from the prefix http://localhost:8080/. If bottles are not available at HOMEBREW_BOTTLE_DOMAIN they will be downloaded from the default bottle domain.
Default: https://ghcr.io/v2/homebrew/core.

HOMEBREW_API_DOMAIN
Use this URL as the download mirror for Homebrew JSON API. If metadata files at that URL are temporarily unavailable, the default API domain will be used as a fallback mirror.

HOMEBREW_BOTTLE_DOMAIN
使用这个url从bottles下载镜像包,如果这个链接暂时不能用的话,就会回退到默认的地址了。其实也就是字面上的意思,大家有时候发现下载不了之后会去尝试另外的地址,就是这么来的。

HOMEBREW_API_DOMAIN
这个是表示Homebrew JSON API的镜像地址
到了这一步,如果访问不了的话就调整镜像地址即可

export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/bottles"

这些都是哪里查询的,请大家关注 官网的地址

授人以渔

我其实不会喜欢直接改变系统原有的配置,所以我每次是在环境变量上面配置一下,临时性使用,因为我比较喜欢主动控制的感觉,以及出问题之后我需要逐步调整,并不喜欢一个命令下去就结束了,虽然运气好的时候确实是会成功,但是下一次的话就不好说。

另外我上面给到了一些镜像地址,网上其实可以搜到的,但是我查询到一个不错的助手网站,帮忙生成命令还能切换,可以用一波。里面其他信息也不错的。
文档地址
在这里插入图片描述

后记

就这些了,困恼我比较久的按照软件问题好了很多~~

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

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

相关文章

Java | Leetcode Java题解之第467题环绕字符串中唯一的子字符串

题目&#xff1a; 题解&#xff1a; class Solution {public int findSubstringInWraproundString(String p) {int[] dp new int[26];int k 0;for (int i 0; i < p.length(); i) {if (i > 0 && (p.charAt(i) - p.charAt(i - 1) 26) % 26 1) { // 字符之差为…

Java 多线程(一)—— 线程的创建与属性

线程的创建 方式一&#xff1a;继承 Thread 类&#xff0c;重写 run 方法 class MyThread extends Thread {Overridepublic void run() {System.out.println("hello Thread");} }方式二&#xff1a;实现 Runnnable 接口&#xff1a; class MyRunnable implements …

Spring Boot知识管理系统:敏捷开发实践

3系统分析 3.1可行性分析 通过对本知识管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本知识管理系统采用JAVA作为开发语言&#xff0c;Spring Boot框…

通过OpenCV实现 Lucas-Kanade 算法

目录 简介 Lucas-Kanade 光流算法 实现步骤 1. 导入所需库 2. 视频捕捉与初始化 3. 设置特征点参数 4. 创建掩模 5. 光流估计循环 6. 释放资源 结论 简介 在计算机视觉领域&#xff0c;光流估计是一种追踪物体运动的技术。它通过比较连续帧之间的像素强度变化来估计图…

开发一款陪玩系统所需成本,做线下家政服务需要多少预算?

开发陪玩系统所需的预算因多种因素而异&#xff0c;包括开发成本、功能复杂度、系统规模以及定制需求等。以下是对陪玩系统开发预算的详细分析&#xff1a; 一、开发成本 基础功能开发 如果只需要支持简单的语音或文字聊天和游戏匹配功能&#xff0c;开发成本可能相对较低。这…

倾斜摄影切片教程:快速上手,简单又高效!

倾斜摄影是一种从多个角度&#xff08;通常是垂直、斜45度&#xff09;拍摄地面或建筑物的影像技术&#xff0c;通过结合这些不同视角的照片&#xff0c;可以生成具有真实感的三维模型。倾斜摄影通常用于城市建模、地形勘测和测绘等领域&#xff0c;能够准确还原建筑物和地形的…

谷歌浏览器主题和皮肤设置教程

谷歌浏览器是一款功能强大且广受欢迎的网络浏览器。除了提供快速、安全的浏览体验外&#xff0c;谷歌浏览器还允许用户通过自定义主题和皮肤来个性化自己的浏览器界面。本文将详细介绍如何设置谷歌浏览器的主题和皮肤&#xff0c;并介绍一些相关的实用技巧。 &#xff08;本文…

【牛客刷题实战】BC120 争夺前五名

大家好&#xff0c;我是小卡皮巴拉 文章目录 目录 牛客题目&#xff1a; BC120 争夺前五名 题目描述 输入描述&#xff1a; 输出描述&#xff1a; 示例1 示例2 解题思路&#xff1a; 具体思路&#xff1a; 题目要点&#xff1a; 完整代码&#xff1a; 兄弟们共…

UE4 材质学习笔记07(叶子摇晃着色器/雨水潮湿着色器/材质函数/雨滴着色器)

一.叶子摇晃着色器 现实世界中叶子的晃动十分复杂&#xff0c;这次我们将实现每个叶子都动起来&#xff0c;来接近现实世界的效果 先让它整体动起来&#xff0c;可以用time节点&#xff0c;然后用sin节点限制移动的范围 接下来就是找到一个方法&#xff0c;把这条树枝上的单个…

MySQL中的增查操作:探索数据的奥秘,开启数据之门

本节&#xff0c;我们继续深入了解MySQL&#xff0c;本章所讲的基础操作&#xff0c;针对的是表的增删查改&#xff01; 一、Create 新增 1.1、语法 INSERT [INTO] table_name[(column [, column] ...)] VALUES(value_list) [, (value_list)] ... value_list: value, [, va…

WIFI(1)

WIFI&#xff08;1&#xff09; 目录 WIFI&#xff08;1&#xff09; 回顾 WIFI模块 -- 1、AP模式&#xff1a;&#xff08;服务器&#xff09;应用&#xff1a;主要是用来让用户设置自身的wifi密码 -- 2、STA模式&#xff1a;可以获取时间获取天气 应用&#xff1a; 代…

暴力破解案例

暴力破解 1 概述 暴力破解&#xff0c;是一种针对密码的破译方法&#xff0c;将密码进行逐个推算直到找出真正的密码为止。 2 爆破HTTP协议 第一步:实验性发送请求成功 import requests url "http://192.172.0.100:8080/woniusales/user/login"data {"use…

CUDA - nvprof 性能刨析

nvprof 是一个可执行文件&#xff0c;使用everything搜索可以看到它在&#xff1a; 执行命令&#xff1a; nvprof exe_name 如何在windows 下使用&#xff0c;可以参看: windows下使用nvcc和nvprof。 示例 #include <cuda_runtime.h> #include <device_launch_par…

YOLOv8实战水果识别【数据集+YOLOv8模型+源码+PyQt5界面】

本文采用YOLOv8作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv8以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对水果数据集进行训练和优化&#xff0c;该数据集包含丰富的水果图像样本&#xf…

Merlion笔记(二):单变量时间预测

1 简单示例 我们首先导入Merlion的TimeSeries类和M4数据集的数据加载器。然后&#xff0c;我们可以将该数据集中的特定时间序列划分为训练集和测试集。 from merlion.utils import TimeSeries from ts_datasets.forecast import M4time_series, metadata M4(subset"Hou…

ClickHouse入库时间与实际相差8小时问题

原因一&#xff1a;服务端未修改默认时区 解决方案&#xff1a; 1、找 ClickHouse 配置文件 config.xml&#xff0c;通常位于 /etc/clickhouse-server/ 目录。 2、编辑 config.xml 文件&#xff0c;找到 标签。如果标签不存在&#xff0c;需要手动添加。 3、修改 标签的内容为 …

docker部署dvwa靶场

一、简述前情 最近差不多又是网安专业的同学搭建靶场的时候了&#xff0c;DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是安全入门者们最为熟知的练习靶场&#xff0c;它能够帮助小白对常见的安全问题进行理解&#xff0c;并且随着理解问题的深入自主调整靶场…

Redis-02 数据持久化

redis持久化即将数据从内存写入磁盘&#xff0c;Redis提供了两种持久化的方式&#xff1a;RDB和AOF。 1.RDB RDB持久化&#xff1a;Redis可以将内存中的数据定期快照保存到磁盘上的一个二进制文件中。RDB持久化是一种比较紧凑的文件格式&#xff0c;适用于备份和灾难恢复。通过…

vue3中监视 Reactive对象中的属性

watch 的第一个参数可以是不同形式的“数据源”&#xff1a;它可以是一个 ref (包括计算属性)、一个响应式对象、一个 getter 函数、或多个数据源组成的数组 一、框架&#xff1a; <template><div class"divBox"><h2>姓名&#xff1a;{{ person.…

【深圳大学/大学物理实验2】超声探伤实验 实验前预习题答案参考

一、单选题 共 6 小题 共 31 分 1. (5分)电偶极矩的单位是&#xff08; &#xff09; 学生答案&#xff1a;B √ A. B. C. D. 2. (5分)本实验中产生超声波的方法是&#xff08; &#xff09; 学生答案&#xff1a;D √ A. 热电效应 B. 光电效应 C. 电磁效应 D. 压电效…