We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Homebrew 是 macOS 和 Linux 上非常流行的开源包管理器,可以理解为一个命令行版本的应用商店。它是相对安全的,如果你知道自己正在下载什么。起码目前 Homebrew 上不存在恶意包(All Formulae)。
Homebrew complements macOS (or your Linux system).
讲真的,Homebrew 术语有点羞涩难懂,本身有自制酿酒之意,诸如 Formula、Cask 等也是与酿酒相关的。
/usr/local/Cellar/foo/0.1
/usr/local/Cellar
/usr/local/Caskroom
Related Link: Homebrew Terminology, Simplifying Homebrew terminology.
Homebrew 由以下几部分组成。
本文以 macOS 为例。
复制以下命令,粘贴到「终端」应用回车执行,等待完成即可。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
如果没有 🪜 下载很慢的话,可以使用国内的安装脚本。
$ /bin/bash -c "$(curl -fsSL https://mirrors.ustc.edu.cn/misc/brew-install.sh)"
如果此前没有安装过 Xcode Command Line Tools,上述过程会提示安装,按回车耐心等待安装完成。
Related link: macOS Requirements.
==> The Xcode Command Line Tools will be installed. Press RETURN/ENTER to continue or any other key to abort:
也可先自行安装 Xcode Command Line Tools,再安装 Homebrew。
$ xcode-select --install
完成后可使用 brew -v 命令,若有输出版本号,表示已安装成功,可忽略以下环境变量配置步骤。
brew -v
$ brew -v Homebrew 4.1.22 Homebrew/homebrew-core (git revision a58688396f3; last commit 2023-12-02)
如果出现如下问题,则需要配置环境变量。
$ brew -v brew:command not found
执行 which $SHELL 确认你的 macOS 的默认 Shell 是哪个?
which $SHELL
$ which $SHELL /bin/zsh
通常是 zsh 或 bash,对应的配置文件为 ~/.zshrc 或 ~/.bash_profile。
zsh
bash
~/.zshrc
~/.bash_profile
从 macOS Catalina 开始,Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shell,详见。
下文以 zsh 为例,如果你使用其他 Shell,涉及到 .zshrc 请自行调整为你的配置文件名称。
.zshrc
# 添加环境变量至 .zshrc $ echo 'export PATH="/usr/local/bin:/usr/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"' >> ~/.zshrc # 刷新环境变量 $ source ~/.zshrc
完了之后,再执行 brew -v 应该就能正常输出版本号了。
如果首次安装,可忽略本节内容。
自 4.0 起,有一些变化:
默认使用从 Formulae.brew.sh 下载的 JSON 文件进行包的安装,而不是本地 homebrew/core 和 homebrew/cask 源。可以考虑使用 brew untap homebrew/core 和 brew untap homebrew/cask 来节省一些空间(除非你正在开发包)。
homebrew/core
homebrew/cask
brew untap homebrew/core
brew untap homebrew/cask
可以考虑将 HOMEBREW_NO_INSTALL_FROM_API 移除(如果设置过)。
HOMEBREW_NO_INSTALL_FROM_API
可以考虑将 HOMEBREW_API_DOMAIN 设为指定镜像源(如果使用新的安装方式)。
HOMEBREW_API_DOMAIN
自动运行 brew update 的频率由 5min 改为 24h。可以重新考虑是否需要设置 HOMEBREW_NO_AUTO_UPDATE、HOMEBREW_AUTO_UPDATE_SECS 了(如果设置过)。
brew update
5min
24h
HOMEBREW_NO_AUTO_UPDATE
HOMEBREW_AUTO_UPDATE_SECS
如果想安装了 4.0 及更新版本,又想沿用以前的安装方式,可以设置环境变量:
$ echo 'export HOMEBREW_NO_INSTALL_FROM_API=1' >> ~/.zshrc
如果你使用 3.3.0 ~ 3.6.0 之间的版本,想要使用全新的 JSON API 来安装包,可以设置环境变量:
$ echo 'export HOMEBREW_INSTALL_FROM_API=1' >> ~/.zshrc
自 4.0 起为默认行为,无需设置。
Related Link:
安装后,如果使用 brew install、brew upgrade、brew update 较慢,可以考虑切换为国内的镜像源,比如:
brew install
brew upgrade
以 USTC 镜像源为例。
如果使用 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 收集匿名数据,可以通过设置环境变量关闭:
$ echo 'export HOMEBREW_NO_ANALYTICS=1' >> ~/.zshrc
Related Link: Anonymous Analytics.
默认情况下,在执行 brew install、brew upgrade、brew tap 之前,每隔第一段时间会自动执行 brew update 以获取最新的 Homebrew 版本。
brew tap
在 4.0 起自动执行频率为 24h,如果开启了 HOMEBREW_NO_INSTALL_FROM_API=1 频率为 5min。可通过以下环境变量完全禁用、设置时间间隔。
HOMEBREW_NO_INSTALL_FROM_API=1
$ 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 多,如果加上默认的镜像源,不慢才怪。
Downloading https://formulae.brew.sh/api/formula.jws.json
相关命令
# 显示 Homebrew 本地的 Git 仓库 $ brew --repo # 显示 Homebrew 安装路径 $ brew --prefix # 显示 Homebrew Cellar 路径 $ brew --cellar # 显示 Homebrew Caskroom 路径 $ brew --caskroom # 缓存路径 $ brew --cache
Homebrew 默认安装路径如下:
/opt/homebrew
/usr/local
Related Link: Discussion: longterm Homebrew prefix on Apple Silicon Macs
以 brew install git 为例:
brew install git
Homebrew 将 git 下载至 /usr/local/Cellar/git/<version>/ 目录下,其二进制文件在 /usr/local/Cellar/git/<version>/bin/git。
/usr/local/Cellar/git/<version>/
/usr/local/Cellar/git/<version>/bin/git
Homebrew 为 /usr/local/Cellar/git/<version>/bin/git 创建了一个软链文件至 /usr/local/bin 里。
/usr/local/bin
macOS ARM 的路径对应是:
/opt/homebrew/Cellar/git/<version>/
/opt/homebrew/Cellar/git/<version>/bin/git
/opt/homebrew/bin
这也是 macOS ARM 要将 /opt/homebrew/bin 添加到 PATH 环境变量的原因。
PATH
当执行 brew uninstall 时,会将 /usr/local/Cellar 下对应包目录删除,对应的链接关系也会移除。 当执行 brew cleanup 时,会将 /usr/local/Cellar 所有包里的旧版本,只保留最新版本。
brew uninstall
brew cleanup
可以简单地将 Homebrew 的包分为命令行工具、GUI 应用两类。
$ brew install <package-name> # 安装 $ brew uninstall <package-name> # 卸载 $ brew reinstall <package-name> # 重装
如安装的是 GUI 应用,加上 --cask 参数。比如 brew install docker --cask。
--cask
brew install docker --cask
如需强制卸载,加上 --force 参数。
--force
使用 brew search 命令可以看到「Formulae」和「Casks」两类:
brew search
$ 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 ...
Related Link: Homebrew Cask
用于检查 Homebrew 当前配置是否合理,或者某些包存在的问题等。
$ brew doctor
支持模糊搜索。
$ brew search <keyword>
$ brew upgrade # 更新所有已安装的包 $ brew upgrade <package-name> # 更新指定包
$ brew list # 所有的软件,包括 Formulae 和 Cask $ brew list --formulae # 所有已安装的 Formulae $ brew list --cask # 所有已安装的 Casks $ brew list <package-name> # 列举某个 Formulate 或 Cask 的详细路径
$ brew outdated
$ brew pin <package-name> # 锁定指定包 $ brew unpin <package-name> # 取消锁定指定包
$ brew cleanup # 清理所有旧版本的包 $ brew cleanup <package-name> # 清理指定的旧版本包 $ brew cleanup -n # 查看可清理的旧版本包
$ brew deps --installed --tree
$ brew info <package> # 显示某个包信息 $ brew info # 显示安装的软件数量、文件数量以及占用空间
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Homebrew 是什么?
Homebrew 是 macOS 和 Linux 上非常流行的开源包管理器,可以理解为一个命令行版本的应用商店。它是相对安全的,如果你知道自己正在下载什么。起码目前 Homebrew 上不存在恶意包(All Formulae)。
术语
讲真的,Homebrew 术语有点羞涩难懂,本身有自制酿酒之意,诸如 Formula、Cask 等也是与酿酒相关的。
/usr/local/Cellar/foo/0.1
。/usr/local/Cellar
。/usr/local/Caskroom
。组成
Homebrew 由以下几部分组成。
Homebrew 安装
复制以下命令,粘贴到「终端」应用回车执行,等待完成即可。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
如果没有 🪜 下载很慢的话,可以使用国内的安装脚本。
$ /bin/bash -c "$(curl -fsSL https://mirrors.ustc.edu.cn/misc/brew-install.sh)"
如果此前没有安装过 Xcode Command Line Tools,上述过程会提示安装,按回车耐心等待安装完成。
也可先自行安装 Xcode Command Line Tools,再安装 Homebrew。
完成后可使用
brew -v
命令,若有输出版本号,表示已安装成功,可忽略以下环境变量配置步骤。$ brew -v Homebrew 4.1.22 Homebrew/homebrew-core (git revision a58688396f3; last commit 2023-12-02)
如果出现如下问题,则需要配置环境变量。
执行
which $SHELL
确认你的 macOS 的默认 Shell 是哪个?$ which $SHELL /bin/zsh
通常是
zsh
或bash
,对应的配置文件为~/.zshrc
或~/.bash_profile
。完了之后,再执行
brew -v
应该就能正常输出版本号了。Homebrew 升级指南
自 4.0 起,有一些变化:
默认使用从 Formulae.brew.sh 下载的 JSON 文件进行包的安装,而不是本地
homebrew/core
和homebrew/cask
源。可以考虑使用brew untap homebrew/core
和brew untap homebrew/cask
来节省一些空间(除非你正在开发包)。可以考虑将
HOMEBREW_NO_INSTALL_FROM_API
移除(如果设置过)。可以考虑将
HOMEBREW_API_DOMAIN
设为指定镜像源(如果使用新的安装方式)。自动运行
brew update
的频率由5min
改为24h
。可以重新考虑是否需要设置HOMEBREW_NO_AUTO_UPDATE
、HOMEBREW_AUTO_UPDATE_SECS
了(如果设置过)。如果想安装了 4.0 及更新版本,又想沿用以前的安装方式,可以设置环境变量:
如果你使用 3.3.0 ~ 3.6.0 之间的版本,想要使用全新的 JSON API 来安装包,可以设置环境变量:
Related Link:
Homebrew 源切换
安装后,如果使用
brew install
、brew upgrade
、brew update
较慢,可以考虑切换为国内的镜像源,比如:如果使用 4.x 最新的 JSON API 安装方式(推荐),添加以下环境变量配置:
如果使用 4.0 之前版本,或者使用 4.x 但又想用此前的安装方式,添加以下环境变量配置:
另外,如不希望 Homebrew 收集匿名数据,可以通过设置环境变量关闭:
Homebrew 自动更新
默认情况下,在执行
brew install
、brew upgrade
、brew tap
之前,每隔第一段时间会自动执行brew update
以获取最新的 Homebrew 版本。在 4.0 起自动执行频率为
24h
,如果开启了HOMEBREW_NO_INSTALL_FROM_API=1
频率为5min
。可通过以下环境变量完全禁用、设置时间间隔。Homebrew 相关路径
相关命令
Homebrew 默认安装路径如下:
/opt/homebrew
/usr/local
以
brew install git
为例:Homebrew 将 git 下载至
/usr/local/Cellar/git/<version>/
目录下,其二进制文件在/usr/local/Cellar/git/<version>/bin/git
。Homebrew 为
/usr/local/Cellar/git/<version>/bin/git
创建了一个软链文件至/usr/local/bin
里。macOS ARM 的路径对应是:
/opt/homebrew/Cellar/git/<version>/
/opt/homebrew/Cellar/git/<version>/bin/git
/opt/homebrew/bin
这也是 macOS ARM 要将
/opt/homebrew/bin
添加到PATH
环境变量的原因。当执行
brew uninstall
时,会将/usr/local/Cellar
下对应包目录删除,对应的链接关系也会移除。当执行
brew cleanup
时,会将/usr/local/Cellar
所有包里的旧版本,只保留最新版本。Homebrew Cask 的区别
可以简单地将 Homebrew 的包分为命令行工具、GUI 应用两类。
使用
brew search
命令可以看到「Formulae」和「Casks」两类:Homebrew 常用命令
检查
用于检查 Homebrew 当前配置是否合理,或者某些包存在的问题等。
搜索
支持模糊搜索。
更新包
列出已安装的包
列出可更新的包
锁定某个不想更新的包
清理旧包
查看已安装包的依赖
查看包的信息
References
The text was updated successfully, but these errors were encountered: