MacOS上Homebrew 安装、配置、更改国内镜像源及使用教程

Homebrew笔记

在这里插入图片描述

1. 介绍

官网:https://brew.sh/

对于习惯了使用命令来完成一切的程序员来说,安装软件这种小事,自然是能够用命令解决,就不用图形界面选择。但是在 Linux 中,我们有 yumaptdnfpkg等命令来完成软件的安装,macOS 却并未为我们提供一个好用的包管理器,帮助我们更好的使用 macOS

好在,虽然官方没有提供,我们却可以使用 Homebrew 这一神器,来完成类似的工作,就如同 Homebrew 的 Slogan :“The missing package manager for macOS (or Linux)”

Homebrew 由开发者 Max Howell 开发,并基于 BSD 开源,是一个非常方便的包管理器工具。在早期, Homebrew 仅有 macOS 的版本,后续随着用户的增多,Homebrew 还提供了 Linux 的版本,帮助开发者在 Linux 同样使用 Homebrew 来配置环境。

1.1 组成部分

Homebrew 是一款包管理工具,目前支持 macOSlinux 系统。主要有四个部分组成: brewhomebrew-corehomebrew-caskhomebrew-bottles

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

1.2 核心概念

在正式介绍 Homebrew 的使用之前,我先为你介绍一下 Homebrew 中的一些核心的概念,了解这些概念,就可以帮助你更好的去使用 Homebrew

词汇含义
formula (e)安装包的描述文件,formulae 为复数
cellar安装好后所在的目录
keg具体某个包所在的目录,keg 是 cellar 的子目录
bottle预先编译好的包,不需要现场下载编译源码,速度会快很多;官方库中的包大多都是通过 bottle 方式安装
tap下载源,可以类比于 Linux 下的包管理器 repository
cask安装 macOS native 应用的扩展,你也可以理解为有图形化界面的应用。
bundle描述 Homebrew 依赖的扩展

其中,最关键的是 tapcask,我们在后续会经常用到。

2. 安装

复制下方命令到终端一键执行即可,我这里用的第一个,是一个知乎博主分享的。

苹果电脑 常规安装脚本(推荐 完全体 几分钟安装完成)

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

苹果电脑 极速安装脚本(精简版 几秒钟安装完成):

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" speed

苹果电脑 卸载脚本:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"

常见错误去下方地址查看

https://gitee.com/cunkai/HomebrewCN/blob/master/error.md

Linux电脑 安装脚本:

rm Homebrew.sh ; wget https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh ; bash Homebrew.sh

Linux电脑 卸载脚本:

rm HomebrewUninstall.sh ; wget https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh ; bash HomebrewUninstall.sh

3. 更换为国内镜像源

本教程以更改中科大源为例。

中科大源地址:https://mirrors.ustc.edu.cn/

  • Homebrew 源使用帮助 http://mirrors.ustc.edu.cn/help/brew.git.html
  • Homebrew Core 源使用帮助 http://mirrors.ustc.edu.cn/help/homebrew-core.git.html
  • Homebrew Cask 源使用帮助 http://mirrors.ustc.edu.cn/help/homebrew-cask.git.html
  • Homebrew Bottles 源使用帮助 http://mirrors.ustc.edu.cn/help/homebrew-bottles.html

最终效果查看,最下面的两行 origin 表示,按照 3.1 教程演示即可

# 切换当前工作目录到 Homebrew 的仓库目录
cd "$(brew --repo)" 

#显示当前工作目录的路径
pwd

# 查看当前 Git 仓库所配置的远程仓库的详细信息
git remote -v

在这里插入图片描述

git remote -v 命令用于查看当前 Git 仓库的远程仓库信息。

输出结果显示 origin https://mirrors.ustc.edu.cn/brew.git (fetch)origin https://mirrors.ustc.edu.cn/brew.git (push) 。这表明当前 Homebrew 仓库的远程源(名为origin)的 URLhttps://mirrors.ustc.edu.cn/brew.git(fetch)表示从这个 URL 拉取代码更新,(push)表示向这个 URL 推送代码更改。

以上为最终效果,大家最后有时间看就行

3.1 更换 brew.git 源

执行下方命令,并看到 ORIGNN 地址已经更新

# 切换到 Homebrew 的仓库目录
cd "$(brew --repo)"

# 设置 Homebrew 仓库的远程源 URL 为中国科学技术大学的镜像地址
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

# 显示当前 Homebrew 的配置信息,如各种配置参数,如版本号、安装路径、镜像地址等
brew config

在这里插入图片描述

重置为官方镜像:

cd "$(brew --repo)"

git remote set-url origin https://github.com/Homebrew/brew.git

3.2 更换 homebrew-core.git 源

通过下方命令发现错误,这个错误信息表明 Git 认为在 “/opt/homebrew/Library/Taps/homebrew/homebrew-core” 这个路径下的仓库所有权存在可疑情况。这通常是由于安全机制引起的,Git 可能担心该仓库不是在安全的环境下或者可能存在恶意操作的风险。

cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"

git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

在这里插入图片描述

按照要求执行命令,这个命令会将指定的目录添加到 Git 的安全目录列表中,告诉 Git 这个目录是安全的,可以进行操作。这样,在后续执行与这个仓库相关的 Git 操作时,就不会再出现这个错误了。

git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core

git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

在这里插入图片描述

# 重置为官方地址:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core

默认不安装 cask 有需要的可以替换(Homebrew cask 软件仓库,提供 macOS 应用和大型二进制文件),这个我没弄,我就不演示了。

cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
# git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-cask.git

# 重置为官方地址:
cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask
git remote set-url origin https://github.com/Homebrew/homebrew-cask

3.3 替换 Homebrew-bottles 源

用以下命令查看终端使用的是 Bash 还是 Zsh

echo $SHELL

在这里插入图片描述

  • bash 用户
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile

source ~/.bash_profile
  • zsh 用户
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc

source ~/.zshrc

brew4.x 系列有个 api 加速环境变量,是如下命令。阿里云镜像是上下两个变量HOMEBREW_BOTTLE_DOMAINHOMEBREW_API_DOMAIN 都有的,只需要吧里面的 ustc 换成 aliyun即可 。然后这里我使用中科大 api 加速。后续 Homebrew 在使用 API 时会通过中科大的镜像加速地址来提高访问速度。

  • bash 用户
echo 'export HOMEBREW_API_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/api'>>~/.bash_profile

source ~/.bash_profile
  • zsh 用户
echo 'export HOMEBREW_API_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/api'>>~/.zshrc

source ~/.zshrc

4. 常用命令

4.1 安装卸载软件

  1. brew --version 或者 brew -v 显示 brew 版本信息
  2. brew install <formula> 安装指定软件
  3. brew uninstall <formula> 卸载指定软件
  4. brew list 显示所有的已安装的软件
  5. brew search text 搜索本地远程仓库的软件,已安装会显示绿色的勾
  6. brew search /text/ 使用正则表达式搜软件
  7. brew info <formula> 显示指定软件信息
  8. brew reinstall <formula> 重新安装指定软件,先卸载后安装
  9. brew install <formula> --build-from-source 源码安装指定软件,可以给定指定参数
  10. brew commands 列出所有可用命令

4.2 升级软件相关

  1. brew update 自动升级 homebrew (从 github 下载最新版本)
  2. brew outdated 检测已经过时的软件
  3. brew upgrade 升级所有已过时的软件,即列出的以过时软件
  4. brew upgrade <formula> 升级指定的软件
  5. brew pin <formula> 禁止指定软件升级
  6. brew unpin <formula> 解锁禁止升级
  7. brew upgrade --all 升级所有的软件包,包括未清理干净的旧版本的包
  8. brew edit <formula> 编辑软件,不会的情况下慎用
  9. brew tap 列出本地资源仓库,其中 homebrew 是默认仓库,其它都是第三方仓库
  10. brew tap <user/repo> 添加第三方仓库,命名的规则按照 github 来定的。使用
  11. brew untap <user/repo> 删除仓库
  12. brew deps <formula> 查看指定软件依赖于哪些软件
  13. brew uses <formula> 查看指定软件被哪些软件所依赖

4.3 清理相关

homebrew 再升级软件时候不会清理相关的旧版本,在软件升级后我们可以使用如下命令清理

  1. brew cleanup -n 列出需要清理的内容
  2. brew cleanup <formula> 清理指定的软件过时包
  3. brew cleanup 清理所有的过时软件
  4. brew unistall <formula> 卸载指定软件
  5. brew unistall <fromula> --force 彻底卸载指定软件,包括旧版本

通过 brew 安装的文件会自动设置环境变量,所以不用担心命令行不能启动的问题。
比如安装好了 gradle,即可运行 gradle -v

4.4 管理后台服务

macOS 使用 launchctl 命令加载开机自动运行的服务,brew service 可以简化 lauchctl 的操作。

<font style="color:#ECAA04;">MySQL</font> 为例,使用 <font style="color:#ECAA04;">launchctl</font> 启动:

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

如使用 brew service 可以简化为:

brew services start mysql
  • services 常用命令
  1. brew services list # 查看使用brew安装的服务列表
  2. brew services run formula|–all # 启动服务(仅启动不注册)
  3. brew services start formula|–all # 启动服务,并注册
  4. brew services stop formula|–all # 停止服务,并取消注册
  5. brew services restart formula|–all # 重启服务,并注册
  6. brew services cleanup # 清除已卸载应用的无用的配置
  • 配置文件目录
/Library/LaunchDaemons # 开机自启,需要sudo
~/Library/LaunchAgents # 用户登录后自启

homebrew.mxcl.kafka.plist 为例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.kafka</string>
    <key>WorkingDirectory</key>
    <string>/usr/local</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/opt/kafka/bin/kafka-server-start</string>
      <string>/usr/local/etc/kafka/server.properties</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/usr/local/var/log/kafka/kafka_output.log</string>
    <key>StandardOutPath</key>
    <string>/usr/local/var/log/kafka/kafka_output.log</string>
  </dict>
</plist>

在这里可以找到服务路径、启动参数、日志路径等

4.5 brew cask

Homebrew CaskHomebrew 的扩展,借助它可以方便地在 macOS 上安装图形界面程序,即我们常用的各类应用。Homebrew 中文含义为自制、自酿酒,Cask 中文含义为桶、木桶,桶装酒是一种成品,也就是说每一个 homebrew cask 都可以直接使用的,比如 AtomCask 名称为 atom,那么就可以使用如下命令安装:

brew cask install atom

甚至也可以提交新的 Cask,比如假设有桌面客户端少数派,则用 brew cask create sspai 创建新的名称为 sspaiCask,当然还要提供官网下载链接、官方主页、应用版本等信息,可以参照 官方教程,此处就不再细说。

安装 Homebrew Cask【以后新版不需要安装】
安装好 brew 后,就可以执行命令 brew tap caskroom/cask 获取 Homebrew Cask。

注意:
Caskroom 的 Git 地址在 2018 年 5 月 25 日从 https://github.com/caskroom/homebrew-cask 迁移到了 https://github.com/Homebrew/homebrew-cask
所以,以后就不需要安装 Homebrew Cask

4.6 使用 Homebrew Cask

github 使用:https://github.com/Homebrew/homebrew-cask/blob/master/USAGE.md

  1. brew cask install <formula> 安装指定图形界面软件
  2. brew cask uninstall <formula> 卸载软件
  3. brew cask uninstall --force <formula> 卸载软件,带参数
  4. brew cask search text 搜索软件
  5. brew cask list 列出所有通过 cask 安装的软件
  6. 其它可以参考:https://github.com/Homebrew/homebrew-cask/blob/master/USAGE.md

举例可安装的软件

# 安装chrome
brew cask install google-chrome

# 安装LaunchRocket
brew cask install launchrocket

5. 图像化工具 cakebrew

官方地址:https://www.cakebrew.com/

Github 仓库地址:https://github.com/brunophilipe/Cakebrew

在这里插入图片描述

点击上方导航栏的 Download,再点击 Download Now 就下载安装包,然后解压的程序拖到应用程序即可。

在这里插入图片描述

或者通过 Homebrew 命令安装:

brew install --cask cakebrew

打开后,有点不太稳定,显示不了界面

在这里插入图片描述

大家可以到网上搜搜使用教程,比命令行方便些。

参考

  1. https://zhuanlan.zhihu.com/p/111014448 安装
  2. https://sspai.com/post/56009#! 1.2 核心概念、3
  3. https://blog.csdn.net/Amio_/article/details/109694893 1.1 组成部分
  4. https://cloud.tencent.com/developer/article/1867824
  5. https://zhuanlan.zhihu.com/p/366354601 介绍 Homebrew 图形化工具 cakebrew

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

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

相关文章

LeetCode 热题 100之链表1

1.相交链表 思路分析&#xff08;直接上双指针&#xff09;&#xff1a; 初始化两个指针&#xff0c;分别指向两个链表的头节点 headA 和 headB遍历两个链表&#xff0c;当指针到达链表的末尾时&#xff0c;将指针移动到另一个链表的头部 如果链表相交&#xff0c;两个指针会在…

【含开题报告+文档+PPT+源码】基于SSM的旅游与自然保护平台开发与实现

开题报告 围场县拥有丰富的自然景观和野生动植物资源&#xff0c;同时面临着旅游业发展和自然保护之间的平衡问题&#xff0c;通过强调自然保护&#xff0c;这个平台可以教育游客如何尊重和保护当地的生态环境。同时&#xff0c;平台还可以提供关于生态保护的信息&#xff0c;…

立仪光谱共焦在玻璃上奥秘与应用

在现代工业和科学研究中&#xff0c;玻璃因其透明、坚硬和易加工的特性被广泛应用于各个领域。然而&#xff0c;玻璃的厚度测量一直是困扰业界的一大难题。传统的千分尺或电容式传感器虽然在一定程度上能满足生产需求&#xff0c;但在精度、效率以及适用范围上存在明显的局限。…

中航资本:市盈率静和动分别是什么意思?市盈率静和动看哪个准?

市盈率静和动别离是什么意思&#xff1f; 市盈率静就是指静态市盈率&#xff0c;是以最新一期的年报为核算根据&#xff0c;其数据核算公式为&#xff1a;总市值最新一期的年报的净利润&#xff0c;年报的净利润可所以作用快报或作用预告发布的数据。 市盈率动就是动态市盈率…

动态规划 - 背包问题 - 完全背包

完全背包物品数量无限制&#xff0c;可以使用多次的实现方式&#xff1a;背包正序遍历 0-1背包&#xff1a;先物品后背包&#xff0c;物品正序、背包倒序&#xff08;保证每个物品只用一次&#xff09; 完全背包&#xff1a;先后顺序都可以&#xff0c;物品正序、背包正序 如果…

基于卷积神经网络的苹果病害识别与防治系统,resnet50,mobilenet模型【pytorch框架+python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示&#xff1a; 苹果病害识别与防治系统&#xff0c;卷积神经网络&#xff0c;resnet50&#xff0c;mobilenet【pytorch框架&#xff0c;python源码】_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积…

appium+mumu模拟器 嚼碎菜鸟教程

1、android sdk 下载安装 下载地址&#xff1a;https://www.androiddevtools.cn/index.html# 选择版本&#xff1a;android sdk【sdk tools:installer_r24.4.1-windows.exe】 参考步骤&#xff1a;https://blog.csdn.net/2401_83004375/article/details/139300339 2、jdk 安装…

day11:磁盘管理

一&#xff0c;磁盘概述 磁盘概述 磁盘是一种持久性存储设备&#xff0c;用于存储操作系统、应用程序和数据。磁盘通常分为**机械硬盘&#xff08;HDD&#xff09;和固态硬盘&#xff08;SSD&#xff09;**两种&#xff0c;HDD 基于旋转的磁性盘片&#xff0c;而 SSD 基于闪存…

【WRF数据处理】基于GIS4WRF插件将geotiff数据转为tiff(geogrid,WPS所需数据)

【WRF数据处理】基于GIS4WRF插件将geotiff数据转为tiff&#xff08;geogrid&#xff0c;WPS所需数据&#xff09; 数据准备&#xff1a;以叶面积指数LAI为例QGis实操&#xff1a;基于GIS4WRF插件将geotiff数据转为tiff警告&#xff1a;GIS4WRF: Input layer had an unexpected …

ES8JC-ASEMI超快恢复二极管ES8JC

编辑&#xff1a;ll ES8JC-ASEMI超快恢复二极管ES8JC 型号&#xff1a;ES8JC 品牌&#xff1a;ASEMI 封装&#xff1a;SMC 安装方式&#xff1a;贴片 批号&#xff1a;最新 恢复时间&#xff1a;35ns 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;8A 最大循…

ECCV 2024论文分享┆Agent Attention: Softmax注意力和线性注意力的高效融合

简介 本推文主要介绍了由清华大学黄高老师团队发表在ECCV 2024上的一篇论文《Agent Attention: On the Integration of Softmax and Linear Attention》&#xff0c;文中提出了一种新型的代理注意力&#xff08;Agent Attention&#xff09;。近年来&#xff0c;Transformer在…

Github 2024-10-29Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-10-29统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10TypeScript项目1gpt4free存储库:强大语言模型的集合 创建周期:300 天开发语言:Python协议类型:GNU General Public License v3…

【Java】逻辑控制 —— 三大结构 和 猜数字游戏

目录 1. 顺序结构 2. 分支结构【与C略有不同】 2.1 if语句 2.2 switch语句 注意事项【与C不同】 3. 循环结构【与C略有不同】 3.1 while循环 * break和continue 3.2 for循环 3.3 do while循环 * 输入的判断&#xff08;hasNext&#xff09; 4. 猜数字游戏 1. 顺序结…

大文件秒传,分片上传,断点续传

大文件分片上传 一 功能描述 1.文件通过web端分片多线程上传到服务端&#xff0c;然后web端发起分片合并&#xff0c;完成大文件分片上传功能 2.上传过的大文件&#xff0c;实现秒传 3.上传过程中&#xff0c;服务异常退出&#xff0c;实现断点续传 二 流程图 三 代码运行…

【含开题报告+文档+PPT+源码】基于Java的社会公益平台

开题报告 随着社会的不断进步和人们公益意识的日益增强&#xff0c;社会公益事业在全球范围内得到了广泛的关注和参与。然而&#xff0c;传统的公益模式往往受到信息不对称、资源分散、管理效率低下等问题的困扰&#xff0c;导致公益活动的效果有限&#xff0c;难以满足社会的…

【C语言】C语言入门--函数

文章目录 前言一、函数的概念一、pandas是什么&#xff1f;二、库函数 1.标准库和头文件2.库函数的使用方法3.库函数文档的一般格式三、自定义函数四、形参和实参五、return语句六、数组做函数参数七、嵌套调用和链式访问 1.嵌套调用2.链式访问八、函数的声明和定义 1.单个文件…

C++在实际项目中的应用第二节:C++与区块链

第五章&#xff1a;C在实际项目中的应用 第二课&#xff1a;C与区块链 区块链技术因其去中心化、不可篡改和透明性而受到广泛关注。在这门课程中&#xff0c;我们将深入探讨区块链的基本原理、智能合约的开发以及实际应用的案例分析&#xff0c;重点使用 C 作为实现语言&…

微服务之网关、网关路由、网关登录校验

简介&#xff1a;来源&#xff1a;SpringCloud微服务开发与实战&#xff0c;java黑马商城项目微服务实战开发&#xff08;涵盖MybatisPlus、Docker、MQ、ES、Redis高级等&#xff09; 认识网关 前端请求不能直接访问微服务&#xff0c;而是要请求网关&#xff1a; 网关可以做…

服务环境的搭建

一、基础环境搭建 1、python3 准备相关的jar包 Index of /ftp/python/3.7.9/ scp Python-3.7.9.tgz root192.168.1.245:/opt/dockerinstall/python3/ yum -y install gcc yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel…

【语音转文本新体验】Windows部署Whisper Web结合内网穿透轻松远程转录——“cpolar内网穿透”

文章目录 前言1.本地部署Whisper Web1.1 安装git1.2 安装Node.js1.3 运行项目 2. Whisper Web使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 公网访问测试6. 配置固定公网地址 前言 OpenAI开源的 Whisper 语音转文本模型效果都说还不错&#xff0c;今天就给大家推荐 GitHub…