Homebrew更换国内镜像

Homebrew replace mirrors

Posted by alovn on September 30, 2022

使用Homebrew下载程序的时候,会经常遇到因为网络问题而卡死的情况。于是查了下是否有国内镜像可以使用。找到了清华和阿里云两个相对比较好用的Homebrew镜像。

1
2
https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
https://mirrors.aliyun.com/homebrew/brew.git

不过阿里云的镜像文档很久没有更新过了,比较推荐使用清华提供的镜像。

替换镜像

若是在macOS上初次安装Homebrew,需要确保系统中已经安装了 git 和 curl。若未安装的话可以在命令行输入 xcode-select --install 安装 Command Line Tools for Xcode 即可。

下面是切换为清华镜像过程,首先需要设置几个环境变量:

1
2
3
echo 'export HOMEBREW_BREW_GIT_REMOTE=https://mirrors.aliyun.com/homebrew/brew.git' >> ~/.zshrc 
echo 'export HOMEBREW_CORE_GIT_REMOTE=https://mirrors.aliyun.com/homebrew/homebrew-core.git' >> ~/.zshrc 
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.zshrc

我这里使用的zsh,若使用的是bash,直接将上面的 ~/.zshrc 替换为 ~/.bashrc 即可。

然后执行brew update即可。

复原镜像

若是想要复原为官方的镜像,应该删除设置的环境变量 HOMEBREW_BOTTLE_DOMAIN、HOMEBREW_BREW_GIT_REMOTE 和 HOMEBREW_CORE_GIT_REMOTE 以免下次运行 brew update 时远程再次被更换。

然后执行以下命令修改为默认远程仓库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
unset HOMEBREW_BREW_GIT_REMOTE
git -C "$(brew --repo)" remote set-url origin https://github.com/Homebrew/brew

# 以下针对 macOS 系统上的 Homebrew
unset HOMEBREW_CORE_GIT_REMOTE
BREW_TAPS="$(BREW_TAPS="$(brew tap 2>/dev/null)"; echo -n "${BREW_TAPS//$'\n'/:}")"
for tap in core cask{,-fonts,-drivers,-versions} command-not-found; do
    if [[ ":${BREW_TAPS}:" == *":homebrew/${tap}:"* ]]; then  # 只复原已安装的 Tap
        brew tap --custom-remote "homebrew/${tap}" "https://github.com/Homebrew/homebrew-${tap}"
    fi
done

# 重新拉取远程
brew update

文档参考

具体可以参考官方安装文档: