Mac 安装 homebrew

news/2024/4/25 21:41:40/文章来源:https://blog.csdn.net/xixihahalelehehe/article/details/129151854

在这里插入图片描述

文章目录

    • 1. 简介
    • 2. 安装
      • 2.1 官方安装
    • 2.2 安装 ARM 版 Homebrew
    • 2.3 安装 X86 版 Homebrew
      • 2.4 多版本共存
    • 3. 设置镜像
      • 3.1 初次安装brew后配置中科大 zsh
      • 3.2 换源配置中科大 zsh
      • 3.3 换源清华大学 zsh
    • 4. 问题

1. 简介

omebrew是一款包管理工具,目前支持macOS和linux系统。主要有四个部分组成: brew、homebrew-core 、homebrew-cask、homebrew-bottles。

名称说明
brewHomebrew 源代码仓库
homebrew-coreHomebrew 核心源
homebrew-cask提供 macOS 应用和大型二进制文件的安装
homebrew-bottles预编译二进制软件包## 官方安装

2. 安装

2.1 官方安装

参考地址:https://brew.sh/

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

2.2 安装 ARM 版 Homebrew

ARM版Homebrew需要安装在/opt/homebrew路径下,早期的时候需要手动创建目录执行命令,目前使用最新脚本不需要手动操作。

直接执行:

/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"

然后还需设置环境变量,具体操作步骤如下,一定要仔细阅读。

PS: 终端类型根据执行命令echo $SHELL显示的结果:

/bin/bash => bash => .bash_profile
/bin/zsh => zsh => .zprofile

如果遇到环境变量无效问题,建议回过头来查看终端类型,再做正确的设置。

macOS Catalina(10.15.x) 版开始,Mac使用zsh作为默认Shell,使用.zprofile,所以对应命令:

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

如果是macOS Mojave 及更低版本,并且没有自己配置过zsh,使用.bash_profile

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

2.3 安装 X86 版 Homebrew

为目前很多软件包没有支持ARM架构,我们也可以考虑使用x86版的Homebrew。

在命令前面添加arch -x86_64,就可以按X86模式执行该命令,比如:

arch -x86_64 /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"

2.4 多版本共存

如果你同时安装了ARMX86两个版本,那你需要设置别名,把命令区分开。

同样是.zprofile或者.bash_profile里面添加:

至于操作哪个文件,请参考前文关于终端类型的描述,下文如有类似文字,保持一样的操作。

alias abrew='arch -arm64 /opt/homebrew/bin/brew'
alias ibrew='arch -x86_64 /usr/local/bin/brew'

abrew、ibrew可以根据你的喜好自定义。

然后再执行source ~/.zprofilesource ~/.bash_profile命令更新文件。

3. 设置镜像

brewhomebrew/core是必备项目,homebrew/caskhomebrew/bottles按需设置。

通过 brew config 命令可以查看相关配置信息。

3.1 初次安装brew后配置中科大 zsh

# 1.执行安装脚本
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"# 2.安装完成后设置
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/bottles' >> ~/.zprofile
source ~/.zprofile

3.2 换源配置中科大 zsh

# 脚本
git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
brew updateecho 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/bottles' >> ~/.zprofile
source ~/.zprofile

3.3 换源清华大学 zsh

# 脚本
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
brew updateecho 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/bottles' >> ~/.zprofile
source ~/.zprofile

更多配置镜像细节请参考。

4. 问题

raw.githubusercontent.com地址不稳定,导致无法访问官方安装脚本install.sh

curl: (7) Failed to connect to raw.githubusercontent.com port 443: Operation timed out

解决方案就是托管到jsdelivr,通过CDN加速访问。

另外也可以采用写入hosts的方式,可以一定程度解决GitHub资源无法访问的问题。

设置方案请阅读 GitHub 访问加速指南

参考:

  • https://brew.idayer.com/guide
  • https://brew.sh/

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

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

相关文章

「TCG 规范解读」第10章 TPM工作组 保护你的数字环境

可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alli…

【春秋云境】CVE-2022-28512

靶标介绍: ​ Fantastic Blog (CMS)是一个绝对出色的博客/文章网络内容管理系统。它使您可以轻松地管理您的网站或博客,它为您提供了广泛的功能来定制您的博客以满足您的需求。它具有强大的功能,您无需接触任何代码即可启动并运行您的博客。…

IDEA工具系列之连接Linux

我们在开发的时候,用IDEA开发程序,用XSHELL来管理服务器,这两个工具切换比较麻烦。有没有用IDEA来连接Linux。当然有,下面有实践步骤: 首先:连接Linux 打开IDEA->Tools->Start SSH Session 其中1&…

REDIS09_LBS出现背景、GEO算法介绍、算法步骤、剖析、邻近网格位置推算

文章目录①. LBS出现的背景②. 重新认识经纬度③. 感性认识GeoHash④. Geohash算法介绍⑤. Geohash算法步骤⑥. 更深入剖析GeoHash⑦. 邻近网格位置推算①. LBS出现的背景 ①. 移动互联网时代LBS应用越来越多,所在位置附近三公里的药店、交友软件中附近的小姐姐、外卖软件中附近…

stm32f407探索者开发板(二十)——独立看门狗实验

文章目录一、独立看门狗概述1.1 独立看门狗二、常用寄存器和库函数配置2.1 独立看门狗框图2.2 键值寄存器IWDG_KR2.3 预分频寄存器IWDG_PR2.4 重装载寄存器IWDG_RLR2.5 状态寄存器IWDG_SR2.6 IWDG独立看门狗操作库函数三、手写独立看门狗实验3.1 操作步骤3.2 iwdg.c3.3 iwdg.h3…

NLP学习笔记(九) 分词(上)

大家好,我是半虹,这篇文章来讲分词算法 1 概述 分词是自然语言处理领域中的基础任务,是文本预处理的重要步骤 简单来说,就是将文本段落分解为基本语言单位,亦可称之为词元 ( token\text{token}token ) 按照粒度的不…

[Flink]概述day1第4个视频完

一、概述什么是Flink是一种大数据计算引擎,用于对无界(流数据)和有界(批数据)数据进行有状态计算。特点1)批流一体:统一批处理、流处理2)分布式:Flink程序可以运行在多台…

python小基础-更多请自学,或者某某教程-2023-2-21 小扒菜的自学之路【1】

python基础 基础学习 自己跟着菜鸟教程看的一些基础,会java或者js的话,1个半小时就可以over 好久没更新博客了,现在慢慢来发吧,基础内容不太多,自己理解会很快的(下面是一段个人的小经历,大家也可以看看,嘻嘻) 假期看了灵魂摆渡几部电视剧,无聊中收到了一个python爬虫公开课穷,…

单Buffer的缺点与改进方法

单Buffer的缺点与改进方法 文章目录单Buffer的缺点与改进方法一、 单Buffer的缺点二、 使用多Buffer来改进三、 内核驱动程序、APP互相配合使用多buffer致谢参考资料 内核自带的LCD驱动程序 IMX6ULL驱动源码:Linux-4.9.88\drivers\video\fbdev\mxsfb.c 一、 单Buf…

I/O多路复用模型实现——epoll

epoll IO多路复用模型实现机制I/O多路复用epollepoll_create(int size)epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout)epoll eventepoll流程I/O多路复用 I/O 多路复用的本质…

Java使用MD5加盐对密码进行加密处理,附注册和登录加密解密处理

前言 在开发的时候,有一些敏感信息是不能直接通过明白直接保存到数据库的。最经典的就是密码了。如果直接把密码以明文的形式入库,不仅会泄露用户的隐私,对系统也是极其的不厉,这样做是非常危险的。 那么我们就需要对这些铭文进…

MyBatis分页插件

目录 分页插件 Mybatis插件典型适用场景 实现思考 第一个问题 第二个问题 自定义分页插件 分页插件使用 添加pom依赖 插件注册 调用 代理和拦截是怎么实现的 PageHelper 原理 分页插件 MyBatis 通过提供插件机制,让我们可以根据自己的需要去增强MyBati…

去中心化开源社交平台Misskey

本文是应网友 anthony084 的要求写的; 什么是 Misskey ? Misskey 是一个开源、去中心化的社交媒体平台,发帖方式类似于微博和推特。 去中心化则意味着一个 Misskey 实例可以与其他 Misskey 实例进行相互连接,在 Fediverse (Activi…

广义学习矢量量化(GLVQ)分类算法介绍和代码实现

广义学习矢量量化(Generalized Learning Vector Quantization,GLVQ)是一种基于原型的分类算法,用于将输入数据分配到先前定义的类别中。GLVQ是LVQ(Learning Vector Quantization)的一种扩展形式&#xff0c…

性能分析之vmstat工具

vmstat 工具的使用 命令:vmstat 1 60> /tmp/cpu.txt 说明:每秒采样 1 次,共采集 100 次 格式化显示:cat /tmp/cpu.txt|column -t (1)procs r: 表示运行和等待 CPU 时间片的进程数&#xff0…

go进阶(1) -深入理解goroutine并发运行机制

并发指的是同时进行多个任务的程序,Web处理请求,读写处理操作,I/O操作都可以充分利用并发增长处理速度,随着网络的普及,并发操作逐渐不可或缺 一、goroutine简述 在Golang中一个goroutines就是一个执行单元&#xff…

多种调度模式下的光储电站经济性最优储能容量配置分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Crafting interpreters 中文翻译(全),持续修正

本书在线地址 http://craftinginterpreters.com/ 感谢作者 作者用近 4 年的时间持续创作和改进本书,并把其 Web 版本公开在网上。这本纸质书于今年 7 月出版,立刻在 Hacker News 等网络媒介上引起关注和讨论。 书中作者首先定义了一个动态类型的语言 …

23年PMP真的值得考吗?分析+资料分享

我觉得,如过是真的想学习项目管理,或者工作要求考PMP,招聘要求又的确“PMP证书”优先,那考一个是划算的,毕竟在项目管理这一块,PMP是专业和知名度最高的证书了。 它是由美国项目管理协会(PMI)在全球范围内推…

数组-二分查找-搜索插入位置/在排序数组中查找元素的第一个和最后一个位置/x 的平方根/有效的完全平方数

二分查找 35搜索插入位置 https://leetcode.cn/problems/search-insert-position/submissions/ class Solution:def searchInsert(self, nums: List[int], target: int) -> int:l 0r len(nums)-1# // 整数除法 int /浮点数除法while(l<r):mid l (r - l)//2if nums…