共计 2739 个字符,预计需要花费 7 分钟才能阅读完成。
Homebrew 用来管理 macOS 缺失的软件包,由于该工具使用起来很简单,因此使用非常广泛,可以说 Homebrew 是 macOS 中必备的工具之一。
安装#
国内用户在下载安装前,最好先将 Homebrew 的 git 镜像地址设置为国内的镜像源以加快安装速度:
echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"' >> ~/.zshrc
echo 'export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"' >> ~/.zshrc
source ~/.zshrc
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装完成后,根据提示执行 shellenv 命令,将 Homebrew 添加到 PATH
、HOMEBREW_PREFIX
等变量中:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
安装地址如下:
- x86:
/usr/local/Homebrew/
- Apple M1:
/opt/homebrew
优化#
国内用户使用 brew
安装软件时,会发现速度慢的惊人。我们可以通过增加 --verbose
参数来查看具体卡在哪,不过一般说来都是因为下载速度慢导致的,对此可通过如下两种方式优化,两种方式二选一即可。
设置代理#
若本地有代理,可通过 ALL_PROXY=socks5://127.0.0.1:1080
(假设代理端口为 1080
)让 brew
走代理来加快下载速度,如 ALL_PROXY=socks5://127.0.0.1:1080 brew install ghostscript
。
本方式适用有代理服务器的用户。
报错#
执行 ALL_PROXY=socks5://127.0.0.1:1080 brew install imagemagick
时报错如下:
curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to ghcr.io:443
在执行命令前,尝试先执行 export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles
能否解决这个问题。若不能,则建议使用修改上游源地址的方式来重新安装软件,见下文。
修改仓库上游源地址#
若需要修改源地址,则如下仓库的上游地址均需修改:
- brew: Homebrew 源代码仓库
- homebrew-core: Homebrew 核心软件仓库。对于常用的一些工具包,Homebrew 提供了预编译的二进制包,以加快安装速度,这种方式称为 bottles。
- homebrew-cask: 扩展了 Homebrew,用来优化 macOS GUI 应用的安装和管理。相关仓库还有 homebrew-cask-fonts, homebrew-cask-drivers, homebrew-cask-versions。
按如下命令修改仓库源地址:
- 设置
HOMEBREW_BREW_GIT_REMOTE
、HOMEBREW_CORE_GIT_REMOTE
和HOMEBREW_BOTTLE_DOMAIN
为中科大镜像源,若已设置则此步可跳过。
echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"' >> ~/.zshrc
echo 'export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"' >> ~/.zshrc
echo 'export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"' >> ~/.zshrc
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
- 更新仓库源地址
for tap in core cask{,-versions} ; do
brew tap --custom-remote --force-auto-update "homebrew/${tap}" "https://mirrors.ustc.edu.cn/homebrew-${tap}.git"
done
若某个仓库更新太慢,可直接手动下载。如 homebrew-core 下载太慢,通过如下方式下载:
cd "$(brew --repo)/Library/Taps/homebrew"
rm -rf homebrew-core
git clone git://mirrors.ustc.edu.cn/homebrew-core.git
- 执行
brew update
重新远程拉取
还原仓库的上游源地址#
若需要还原上游仓库的源地址,按如下步骤操作:
-
删除
~/.zshrc
中关于 Homebrew 的配置sed -i "" '/homebrew/d' ~/.zshrc source ~/.zshrc
-
还原仓库源地址
BREW_TAPS="$(BREW_TAPS="$(brew tap 2>/dev/null)"; echo -n "${BREW_TAPS//$'\n'/:}")" for tap in core cask{,-fonts,-drivers,-versions} ; do if [[ ":${BREW_TAPS}:" == *":homebrew/${tap}:"* ]]; then # 只复原已安装的 Tap brew tap --custom-remote --force-auto-update "homebrew/${tap}" "https://github.com/Homebrew/homebrew-${tap}" fi done
-
执行
brew update
重新远程拉取
卸载#
执行命令 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
即可卸载。