scfhao 的个人博客

安装 Homebrew 的一些注意事项

Homebrew 是 macOS 上最常使用的软件包管理工具。因为一些众所周知的原因,在国内使用 Homebrew 会有一点慢,本文要介绍的就是如何让你的 Homebrew 更快更丝滑。本文可作为 macOS 初始安装 Homebrew 时的参考。

本文只讲安装与配置,关于 Homebrew 的具体用法,可以自行查询。

安装

默认安装命令

我们可以在 Homebrew 的官网上找到这个安装命令:

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

但是这个命令会使用 curl 工具从raw.githubusercontent.com下载安装脚本,国内访问raw.githubusercontent.com不稳定,常因超时或连接被重置而失败。

从镜像站安装 Homebrew

本文使用清华源、科大源、阿里源为例,对应软件源的帮助文档可以参考:清华源Homebrew文档科大源Homebrew文档阿里源Homebrew文档

1. 配置环境变量(安装前)

~/.zshrc文件中(如果没有则新建此文件)添加如下命令设置环境变量:

# 清华大学镜像
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"
export HOMEBREW_PIP_INDEX_URL="https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
# 中科大镜像
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"
export HOMEBREW_PIP_INDEX_URL="https://pypi.mirrors.ustc.edu.cn/simple/"
# 阿里镜像
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/brew.git"
export HOMEBREW_API_DOMAIN="https://mirrors.aliyun.com/homebrew-bottles/api"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.aliyun.com/homebrew/homebrew-bottles"
export HOMEBREW_PIP_INDEX_URL="https://mirrors.aliyun.com/pypi/simple/"

你可能会在其他地方看到配置HOMEBREW_CORE_GIT_REMOTE环境变量,在 Homebrew 4 版本之后已经不需要配置这个环境变量了,所以本文就没有列出这个变量。

以上环境变量写入 ~/.zshrc 后可以持久生效;如果只是临时使用,也可以直接在终端中执行上述 export 命令,但重启终端后会失效。写入 ~/.zshrc 后,执行 source ~/.zshrc 让其立即生效(新开一个终端窗口也能达到同样效果)。

配置了这几个环境变量后,brew updatebrew upgradebrew install等命令就会从镜像站读取资源。

有关环境变量的知识,可以阅读《随便说说之环境变量》

2. 从镜像站下载安装脚本

在终端中执行以下命令:

git clone --depth=1 https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install.git brew-install
/bin/bash brew-install/install.sh
rm -rf brew-install

3. 配置环境变量(安装后)

安装完成后,在~/.zshrc文件中添加如下命令设置环境变量:

eval "$(/opt/homebrew/bin/brew shellenv)"
# 如果你的 mac 是 intel 版本,则使用下面这个命令
# eval "$(/usr/local/bin/brew shellenv)"

使用体验

不建议使用清华源

本人最初是设置了清华镜像源,使用清华源时,运行brew install命令时竟然输出了排队信息remote: Waiting in queue... (Position: 53),排队位次是一百多,在网上搜了一下,看到 v2ex 上有网友排队位置在 946 位,这就有点离谱。后面切换到科大源后,就没有遇到这个问题了,阿里源应该也没这种问题。

切换镜像源

如果在使用过程中想切换镜像源(比如从清华源换到科大源),只需修改 ~/.zshrc 中对应的 export 行,然后执行 source ~/.zshrc 让其生效即可,无需重新安装 Homebrew。

查看当前使用的源

执行 brew config 可以查看 Homebrew 的配置信息,其中 HOMEBREW_BREW_GIT_REMOTEHOMEBREW_BOTTLE_DOMAIN 等字段反映了当前生效的镜像源:

brew config

临时使用官方源

如果镜像源临时不可用,可以在单条命令前清空对应的环境变量,让本次命令回退到官方源:

HOMEBREW_BOTTLE_DOMAIN= brew install wget

后记

写这篇博客是因为我自己作为一个十几年的 Mac 用户,之前一直没有为 Homebrew 配置镜像站。访问不到raw.githubusercontent.com,我就通过 ssh 协议从 Github 把安装脚本下载下来安装。brew install失败的时候,我就多次执行安装命令,多执行几次总会成功的。这十几年也就这样过来了。

为了方便以后的使用,我写这篇博客记录下安装 Homebrew 的一些注意事项。