loading
Homebrew 替换国内镜像源

Homebrew 替换国内镜像源

网速不是用来考验耐心的

Tutorials / Tools

2020.05.15

0 #brew #mirror #git

在国内使用 brew 的速度真心不敢恭维,尤其是在 brew update 的时候经常卡住不动。

换用 brew update --verbose 你会发现是 git fetch 的速度超级慢导致的,所以还是要看本地网络连接 GitHub 的速度咯。

这段时间被迫宅在家,brew 用得越多越不爽,只能试试换国内镜像源的方法,用后才知道这确实是一剂可行的药。

下面整理几个可用的开源镜像,主要针对的是 mac OS 上的 Homebrew,用得着的时候再来看看。

清华镜像

我最先找到的就是清华大学开源软件镜像,这个启发了我挨个去试哪个好用。

使用 git 替换 Homebrew 的原仓库地址就行:

# brew 程序本身
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

# 以下针对 mac OS 系统上的 Homebrew
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git
git -C "$(brew --repo homebrew/cask-fonts)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask-fonts.git
git -C "$(brew --repo homebrew/cask-drivers)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask-drivers.git

# 更换后测试工作是否正常
brew update

清华镜像也支持 Linuxbrew,如有需要请移步👉https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/

如果网络支持 IPv6,也可以使用 https://mirrors6.tuna.tsinghua.edu.cn (仅支持 IPv6),或许会更快些。

最近北外开源软件镜像站也启用了,和清华 TUNA 如出一辙,有兴趣的可以试试,只需替换上面的相关地址为:https://mirrors.bfsu.edu.cn。

中科大镜像

中科大镜像也挺有名的,以前我还使用过他们家反带的 Google Fonts。

# brew 程序本身
git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git

# 以下针对 mac OS 系统上的 Homebrew
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git

# 更换后测试工作是否正常
brew update

支持的 Tap 比清华的要少些,不过我在广东的连接速度还是挺快的。IPv6 的地址是 ipv6.mirrors.ustc.edu.cn,有时间试试。

阿里巴巴镜像

# brew 程序本身
git -C "$(brew --repo)" remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git

# 以下针对 mac OS 系统上的 Homebrew
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git

# 更换后测试工作是否正常
brew update

唉,比上面又少了 cask~

腾讯软件源

# brew 程序本身
git -C "$(brew --repo)" remote set-url origin https://mirrors.cloud.tencent.com/homebrew/brew.git

# 以下针对 mac OS 系统上的 Homebrew
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.cloud.tencent.com/homebrew/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.cloud.tencent.com/homebrew/homebrew-cask.git
git -C "$(brew --repo homebrew/cask-fonts)" remote set-url origin https://mirrors.cloud.tencent.com/homebrew/homebrew-cask-fonts.git
git -C "$(brew --repo homebrew/cask-drivers)" remote set-url origin https://mirrors.cloud.tencent.com/homebrew/homebrew-cask-drivers.git

# 更换后测试工作是否正常
brew update

腾讯倒是很全呢,良心出品,当然有需要才会去用嘛。

Homebrew Bottles 源

Homebrew 安装的软件都在 /usr/local/Cellar 目录中,其中 Cellar 意为酒窖,而 Hombrew 官方与预编译好的软件 (二进制软件包) 叫做 Bottle。Homebrew 把安装一个软件到文件夹叫作把一个酒瓶子 (Bottle) 倒入(pour) 酒窖 (Cellar),Bottles 存放在 https://bintray.com/homebrew/bottles 网站中,国内连接速度也不理想吧。当所要安装的软件不在 bintray 中或从 bintray 下载失败时,Homebrew 会尝试从软件原始地址下载源文件再编译安装,这有时候比安装 Homebrew 预编译好的慢太多了。

上面提到的几个镜像站都提供 bottles 的镜像,所以不妨换上他们的源提高下载速度。

替换的方法都一样,只是提供的源地址不同罢了,这里就先以腾讯软件源作例子吧。

临时替换

export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.cloud.tencent.com/homebrew-bottles

长期替换

bash 用户替换方法

echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.cloud.tencent.com/homebrew-bottles' >> ~/.bash_profile

source ~/.bash_profile

zsh 用户替换方法

echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.cloud.tencent.com/homebrew-bottles' >> ~/.zshrc

source ~/.zshrc

源地址

  1. https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
  2. https://mirrors.ustc.edu.cn/homebrew-bottles
  3. https://mirrors.aliyun.com/homebrew/homebrew-bottles
  4. https://mirrors.cloud.tencent.com/homebrew-bottles

选一个喜欢的替换上面的 HOMEBREW_BOTTLE_DOMAIN 就行。

我目前用的腾讯的 Bottles 源,速度还可以呢。

换回 Homebrew 官方源

# brew 程序本身
git -C "$(brew --repo)" remote set-url origin https://github.com/Homebrew/brew.git

# 以下针对 mac OS 系统上的 Homebrew
git -C "$(brew --repo homebrew/core)" remote set-url origin https://github.com/Homebrew/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://github.com/Homebrew/homebrew-cask.git
git -C "$(brew --repo homebrew/cask-fonts)" remote set-url origin https://github.com/Homebrew/homebrew-cask-fonts.git
git -C "$(brew --repo homebrew/cask-drivers)" remote set-url origin https://github.com/Homebrew/homebrew-cask-drivers.git

# 更换后测试工作是否正常
brew update

Homebrew Bottles 还原的话,只需删除 .bash_profile.zshrc 中相应的那行就行。

林宏

Frank Lin

Hey, there! This is Frank Lin (@flinhong), one of the 1.4 billion 🇨🇳. This 'inDev. Journal' site holds the exploration of my quirky thoughts and random adventures through life. Hope you enjoy reading and perusing my posts.

YOU MAY ALSO LIKE

First taste of Heroku, h5ai for file indexer

Tutorials

2017.04.20

First taste of Heroku, h5ai for file indexer

I've known Heroku for a long time, but never have a try to build with it. This time, I found a beautiful file indexer h5ai that requires PHP 5.5+, and Heroku is a perfect platform to build and host it.

Get your anaconda ready after brew install

Tutorials

2018.01.27

Get your anaconda ready after brew install

Just add the anaconda into PATH after installing it with Homebrew. If no .bash_profile, you can append the "/usr/local/anaconda3/bin" to the paths file as well.