首页 > 其他分享 >Homebrew

Homebrew

时间:2024-04-16 13:12:31浏览次数:15  
标签:-- cask homebrew brew Homebrew 安装

Homebrew 的概念

一款 Mac OS 平台下用 Ruby 脚本GIT 管理来实现的软件包管理工具,现在由 GitHub 上的软件工程师 Mike McQuaid 维护开源代码。

主要从下载的源码包解压(包含相关依存库),同时自动配置好各种环境变量,并且 Homebrew 会自动为你解决软件包的依赖问题。可以一条命令完成软件的安装、升级、卸载等操作。

通过 Homebrew 下载安装的软件全部来自对应的软件官网,无需担心下载源的安全问题。如果是原本要付费的应用也仍旧是要购买的,并不是用 Homebrew 就能绕过付费的门槛。

brew 专有名词解释

术语 意译 说明
formula 配方 表示安装包的描述文件。复数为 formulae。
cask 木桶 装酒的器具,表示具有 GUI 界面的原生应用。
keg 小桶 表示某个包某个版本的安装目录,比如 /usr/local/Cellar/foo/0.1。
Cellar 地窖 存放酒的地方,表示包的安装目录,比如 /usr/local/Cellar
Caskroom 木桶间 表示类型为 Cask 的包的安装目录,比如:/usr/local/Caskroom。
tap 水龙头 表示包的来源,也就是镜像源。(third-party-repositories)就是第三方存储库
bottle 瓶子 表示预先编译好的包,下载好直接使用。

brew 组成

名称 说明
brew Homebrew 源代码仓库
homebrew-core Homebrew Core 仓库(核心源)
homebrew-cask Homebrew Cask 仓库,提供 macOS 应用和大型二进制文件的安装
homebrew-bottles Homebrew 预编译二进制软件包与软件包元数据文件
homebrew-cask-versions Homebrew Cask 其他版本 (alternative versions) 软件仓库,提供使用人数多的、需要的版本不在 Cask 仓库中的应用。
homebrew-services 与 brew services 有关的文件,用于在 macOS (launchctl) 与 Linux (systemctl) 上管理 brew 安装的服务。

Homebrew安装

前置安装:Command Line Tools for Xcode

默认安装路径:/opt/homebrew(ARM架构)或/usr/local(x86架构)

Homebrew 的文件路径说明

  • Homebrew :brew 程序所在路径,homebrew 的仓库位置默认位于/usr/local/Homebrew或/opt/homebrew下

  • Cellar :文件夹存放的是所有包安装所在路径,包括二进制,文档和配置文件,按照这样 Cellar/包名/版本号/ 的形式来安放。

  • keg:具体某个包所在的目录,是 cellar 的子目录。

  • bin :所有包安装之后二进制都会链接到这个路径下

  • share :所有包安装之后的文档都会链接到这个路径下

  • etc :同上,所有包的配置文件

  • lib :同上,所有包相关库文件

常用变量

  • HOMEBREW_AUTO_UPDATE_SECS:在一些命令前每HOMEBREW_AUTO_UPDATE_SECS秒运行一次brew update

  • HOMEBREW_NO_AUTO_UPDATE:禁用brew自动更新(若使用此设置需确保每次使用brew时手动运行brew update命令)

  • HOMEBREW_BOTTLE_DOMAIN:指定二进制软件包下载镜像URL

Homebrew 升级指南

自 4.0 起,有一些变化:

  • 默认使用从 Formulae.brew.sh 下载的 JSON 文件进行包的安装,而不是本地 homebrew/corehomebrew/cask 源。可以考虑使用 brew untap homebrew/corebrew untap homebrew/cask 来节省一些空间(除非你正在开发包)。

Homebrew 源切换

安装后,如果使用 brew installbrew upgradebrew update 较慢,可以考虑切换为国内的镜像源,比如:

如果使用 4.x 最新的 JSON API 安装方式(推荐),添加以下环境变量配置:

echo '
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/bottles"
' >> ~/.zshrc

如果使用 4.0 之前版本,或者使用 4.x 但又想用此前的安装方式,添加以下环境变量配置:

echo '
export HOMEBREW_NO_INSTALL_FROM_API=1
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/bottles"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
export HOMEBREW_CASK_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-cask.git"
'>> ~/.zshrc

若要重置为官方镜像源,移除以上环境变量即可。

Homebrew 自动更新

默认情况下,在执行 brew installbrew upgradebrew tap 之前,每隔第一段时间会自动执行 brew update 以获取最新的 Homebrew 版本。

在 4.0 起自动执行频率为 24h,如果开启了 HOMEBREW_NO_INSTALL_FROM_API=1 频率为 5min。可通过以下环境变量完全禁用、设置时间间隔。

echo '
export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_AUTO_UPDATE_SECS=86400
' >> ~/.zshrc

这就是每次安装/更新包时,先出现 Downloading https://formulae.brew.sh/api/formula.jws.json 的原因。这个 JSON 文件有 4M 多,如果加上默认的镜像源,不慢才怪。

网速不好再加上 HOMEBREW 执行命令时会自动更新,所以使用 Homebrew 安装软件可能会长时间卡在Updating Homebrew 这个步骤,最好有学术上网。

如果卡了就按住control + c 组合键之后命令行会显示 ^C,就代表已经取消了 Updating Homebrew 操作,大概不到 1 秒会重新去执行原本所操作的命令,此法是一次性的(推荐使用)

永久性的方法有两个:

  1. 更改成国内的 Homebrew 镜像源加速安装下载命令,也就是换个软件服务器下载。homebrew 是托管于 github,如果你可以访问这个网站就不需要换了。如果不能访问就更改下载源,相当于给你的 git 仓库换一个远程地址。
  2. 可以用环境变量禁用命令来禁用每次安装前的自动更新:HOMEBREW_NO_AUTO_UPDATE=1

Homebrew Cask和Homebrew的区别

可以简单地将 Homebrew 的包分为命令行工具、GUI 应用两类。

如安装的是 GUI 应用,加上 --cask 参数。比如 brew install docker --cask
如需强制卸载,加上 --force 参数。

使用 brew search 命令可以看到「Formulae」和「Casks」两类:

  • Formulae:一般是那些命令行工具、开发库、字体、插件等不含 GUI 界面的软件。
  • Casks:是指那些含有 GUI 图形化界面的软件,比如 Chrome、FireFox 等。
$ brew search google

==> Formulae
aws-google-auth                          google-sparsehash
google-authenticator-libpam              google-sql-tool
google-benchmark                         googler
google-go                                googletest
google-java-format

==> Casks
google-ads-editor
google-analytics-opt-out
google-backup-and-sync
...

Homebrew 偏向于开发,主要用于在终端使用命令行的软件。我们只需要知道,除了在终端使用的软件,如果你只是想要管理 App Store 的软件的话,只需使用 Homebrew Cask 就足够了。

Homebrew Cask:是 Homebrew 附带的扩展、用来安装和管理 GUI 的 macOS app 的工具,作为已经编译好了的应用包 (.dmg/.pkg),统一放在目录 /opt/homebrew-cask/Caskroom 中,brew cask 可以看作是苹果官方 app store 的补充。

有很多好用免费 的 Mac 软件没有在 App Store 上架,一般我们都要去软件所在的官网下载安装,这样太麻烦了。使用 Cask 就可以通过一行命令从软件官方网站直接下载软件包,在终端后台安装。

通过 Cask 安装的软件也会在应用程序里显示,跟从 App Store 安装的软件没啥区别,Cask 安装只是比普通安装方法节省了时间和步骤,还可以统一更新升级管理所有的应用软件。

Cask 安装

终端输入 brew install cask 命令行,注意网速很重要,不然会安装失败,失败了就重新执行命令,它能断点安装。这个安装命令有点慢,估计要两个小时以上。

然后输入 brew cask 验证命令完整性,如果没有安装成功,会开始克隆 Github 上的 caskroom/cask 库到本机 。如果 CASK 安装成功了,会出现”no subcommand given”找不到子命令这种错误

Cask 常用命令

​ 如果卡在更新,不要用取消命令,等待就好。

#安装软件命令
brew cask install 软件名

#卸载 brew 下载的应用,不要从 App Store 直接删除,不然数据会被保留。
brew cask uninstall 软件名

#最干净的卸载,完整地抹掉一个应用。
brew cask zap 软件名

#查找相关软件的信息
brew cask info 软件名

#列出通过 Homebrew Cask 安装的包
brew cask list

#升级 Homebrew Cask
brew cask upgrade

#可显示所有其他的 commands 命令
brew cask help

Homebrew 常用命令

# Homebrew文档
brew --help  # 帮助文档
man brew  # man文档
brew docs  # 在线文档

# Homebrew主页
brew home|homepage

# 检查Homebrew:用于检查 Homebrew 当前配置是否合理,或者某些包存在的问题等
brew doctor|dr

# 自动添加环境变量(配置文件脚本中常用)
/opt/homebrew/bin/brew shellenv

# 查看Homebrew配置信息
brew config|--config

brew -v | --version  # 显示Homebrew版本
brew --repo  # 显示Homebrew本地的Git仓库
brew --prefix  # 显示Homebrew安装路径
brew --cellar  # 显示Homebrew Cellar路径
brew --caskroom  # 显示Homebrew Caskroom路径
brew --cache  # 显示Homebrew缓存路径

# 更新Homebrew本地仓库索引
brew update

# 更新软件列表(不带软件名就升级 brew 自身。)
brew upgrade
brew upgrade <package>  # 更新指定包
brew upgrade --cask <package>  # 更新指定GUI应用
brew upgrade --cask --greedy <package>  # 启用贪婪模式

# 搜索包:可以用正则表达式命令搜索。如:brew search /^vi/表示只能是 vi 开头brew search /^vi\\w$/表示只能是 vi 开头并且只有三个字母
brew search <keyword>

# 列出已安装的包
brew list|ls  # 所有已安装的包,包括formulae和casks
brew list --formula  # 所有已安装的formulae
brew formulae  # 所有已安装的formulae
brew list --cask  # 所有已安装的casks
brew casks  # 所有已安装的cask
brew list <package>  # 列出指定包的详细信息

# 安装指定包:安装指令并非只支持名字,也可以用文件安装包括网络文件和本地文件。brew install 文件包.rb # 本地 或 brew install 网址# 远程
brew install <package>  # 默认安装最新版本
brew install --cask <package>  # 安装指定GUI应用
brew install <package>@<version>  # 安装指定版本的包

# 列出可更新的包(更新过时的包):不带包名,就会更新所有的包
brew outdated  # 所有可更新的包,包括formulae和casks
brew outdated --formula  # 所有可更新的formulae
brew outdated --cask  # 所有可更新的casks

# 锁定某个不想更新的包
brew pin <package-name>       # 锁定指定包
brew unpin <package-name>     # 取消锁定指定包

# 卸载指定包
brew uninstall|remove|rm <package>  # 默认卸载最新版本
brew uninstall --cask <packafe>  # 卸载指定GUI应用
brew uninstall <package>@<version>  # 卸载指定版本的包
brew uninstall --ignore-dependencies <package>  # 即使该包是其他包的依赖也会卸载

# 卸载依赖包
brew autoremove
brew autoremove -n|--dry-run  # 预览将要被卸载的依赖包

# 重装指定包
brew reinstall <package>
brew reinstall <package>@<version>  # 重装指定版本的包

# 切换指定包的版本
brew switch <package> <version>

# 清理旧包
brew cleanup  # 清理所有旧版本的包
brew cleanup <package>  # 清理指定的旧版本包
brew cleanup -n  # 查看可清理的旧版本包

# 查看包信息
brew info  # 显示安装的软件数量,文件数量以及占用空间
brew info <package>  # 显示某个包信息,默认只显示该包最高版本的信息(即使该包未安装)

# 服务管理
brew services start <service_name>  # 启动服务并开启登录自启
brew services run <service_name>  # 启动服务并取消登录自启
brew services stop <service_name>  # 停止服务
brew services restart <service_name>  # 重启服务
brew services kill <service_name>  # 强制杀死服务进程
brew services list  # 显示所有已启动的服务
brew services cleanup  # 清理无用服务


关于brew tap命令

Taps 本身指的是第三方仓库。

简单的理解是:除了自带的两个仓库「Formulae」与「Casks」,使用tap指令可以添加更多的仓库。这些仓库默认从 Homebrew 自己的 Github 仓库添加,但也可以是第三方的仓库「甚至可以是你自己的仓库」。

有更多的仓库,就收录了更多的软件包,也就能通过 Homebrew 安装更多的内容。

使用brew tap查看当前所有的仓库:

~ > brew tap
beeftornado/rmtree  # 循环移除指令的仓库
homebrew/cask  # 「Casks」
homebrew/cask-fonts  # 字体仓库
homebrew/cask-versions  # 历史版本软件包仓库
homebrew/core  # 「Formulae」
homebrew/services  # 服务指令仓库

不带参数的话,将会列出当前所有仓库,比如自带的 CORE 仓库

如果装了 CASK 扩展,就会显示 CASK 仓库。可以添加多个 tap formulae 。如果你在核心仓库没有找到你需要的软件,那么你就需要安装第三方的仓库去安装你需要的软件。tap 命令的仓库源默认来至于 Github,但也不限制于这一个地方。

你也可以用官网的命令自己去创建 Homebrew 包、自制 TAP、 cask 。

Homebrew Taps 添加更多仓库马克

标签:--,cask,homebrew,brew,Homebrew,安装
From: https://www.cnblogs.com/niehao/p/18137858

相关文章

  • 常用的 Homebrew 命令
    常用的Homebrew命令Homebrew是macOS上一个流行的包管理器,用于安装和管理软件包。基础命令以下是一些常用的Homebrew命令:安装Homebrew:/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install.sh)"安装软件包:brewinst......
  • MacOs下homebrew使用brew install 下载卡住
    1解决方案在~/.bash_profile中引入国内镜像源exportHOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"exportHOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"exportHOMEBREW_BREW_GIT_REMOT......
  • MacOS安装Homebrew教程
    安装Homebrew是在MacOS上管理软件包的一种流行方法。以下是安装Homebrew的步骤:打开终端:在Spotlight搜索栏中键入“终端”,然后按下回车键打开终端应用程序。或者,你可以在“应用程序”文件夹中找到“实用工具”文件夹,并在其中找到终端。复制并粘贴以下命令到终端中,并按下回车......
  • MAC 安装 Homebrew (使用国内镜像源)
    首次安装Homebrew首先,需要确保系统中安装了bash、git和curl(对于macOS用户,系统自带bash、git和curl),对于macOS用户需额外要求安装CommandLineTools(CLT)forXcode。在命令行输入xcode-select--install安装CLTforXcode即可。接着,在终端输入以下几行命令......
  • install Homebrew and gradle
    homebrew: /bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" gradle: brewinstallgradle          配置环境:https://www.youtube.com/watch?v=hYCf8HhpaSM(startfrom2:17,这个视频记载了这个......
  • 查看 Homebrew 管理的服务的日志
    首先,使用Homebrew启动服务时你会看到一条类似如下的信息:Createdsymlink/home/ecs-user/.config/systemd/user/default.target.wants/homebrew.frps.service→/home/ecs-user/.config/systemd/user/homebrew.frps.service.==>Successfullystarted`frps`(label:homebre......
  • 解决mac下 php 提示dyld: Library not loaded: /opt/homebrew/opt/icu4c/lib/icui18n.
    产生原因是使用brewupdate后icu4c更新到了最新的版本导致php依赖的版本不一致,进入到/opt/homebrew/opt/icu4c/lib目录下查看没有icui18n.69.dylib文件 解决方法:网上下载icu4c69版本重新编译安装下载地址:https://github.com/unicode-org/icu/releases/tag/release-69-1只需......
  • Homebrew 卸载 Wireshark 报错
    我在使用Homebrew安装Wireshark的时候,Homebrew要求我输入密码。此时我又不想安转Wireshark了,于是我没有输入密码并且按下了Ctrl+C。后来,我又尝试安装Wireshark,但此时Homebrew提示我已经安装了Wireshark:$brewinstallwireshark--caskWarning:Notupgradingwir......
  • Homebrew 换源
    使用镜像源自brew4.0.0(2023年2月16日)起,HOMEBREW_INSTALL_FROM_API会成为默认行为,无需设置。大部分用户无需再克隆homebrew-core仓库,故无需为homebrew-core仓库换源。设置git远程仓库,使用清华源:#brewgit-C"$(brew--repo)"remoteset-urloriginhttps:......
  • Homebrew
    1.介绍Homebrew是一款包管理工具,目前支持macOS和Linux系统。主要有四个部分组成:brew、homebrew-core、homebrew-cask、homebrew-bottles。2.安装2.1执行安装脚本执行/bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)",镜像选......