解决国内Homebrew安装/更新/下载软件太慢问题:配置镜像源与终端代理的完整指南

解决国内Homebrew安装/更新/下载软件太慢问题:配置镜像源与终端代理的完整指南

Homebrew是macOS系统上的包管理器,它可以让我们轻松安装、更新和管理软件包。作为开发,brew是我们必备的开发工具之一。默认官方的安装源都是存放在GitHub上的,这也是中国大陆用户访问缓慢的原因,例如下面安装obs,好几分钟才下载1.1%。

所以在大陆使用一般我们需要修改镜像源,我们会更倾向选择国内提供的更新源,在此推荐中国科大或者清华大学提供的更新源。

一、基本概念

在开始配置之前,我们先来了解几个概念:

Bottles

定义: 在 Homebrew 中,bottle 是指预编译好的软件包。它包含了一个已经构建好、准备好安装的二进制文件。

作用: 使用 bottles 可以省去从源代码编译软件的时间,直接下载并安装二进制包。这样用户无需等待编译过程,可以快速完成软件的安装。

示例: 当你运行 brew install 时,Homebrew 会优先选择下载与操作系统兼容的 bottle,如果没有合适的 bottle,则会从源代码进行编译。

优点: 使用 bottle 安装软件可以大大加速安装过程,因为它避免了长时间的编译。

Core

定义: core 是 Homebrew 的核心部分,包含了最基本、最常用的命令和公式(formula),这些公式通常是从源代码编译安装的,涵盖了大多数常见的开源软件。

作用: core 仓库中包括了 Homebrew 默认的公式和包管理功能。所有的公式都存储在 homebrew-core 仓库中,这些公式包括了 Linux 和 macOS 系统下的大多数开源软件。

示例: 当你运行 brew install python 时,Homebrew 会从 homebrew-core 仓库中获取 Python 公式并进行安装。

Cask

定义: cask 是 Homebrew 中的一个扩展,用于管理图形界面应用程序(如浏览器、IDE、音频播放器等),这些应用通常是以 .dmg、.pkg 等格式发布的。

作用: Homebrew Cask 允许你通过命令行安装和管理 macOS 应用程序,尤其是那些不通过标准的 Homebrew 公式发布的应用程序。

特点: Cask 的软件包通常是预编译的二进制文件(比如 .dmg、.app),不像 core 中的软件包那样从源代码编译。Cask 可以自动化应用程序的下载和安装过程,免去了手动安装图形应用程序的麻烦。

示例: 安装 Google Chrome:brew install –cask google-chrome,它会下载 .dmg 文件并将应用程序安装到 /Applications 文件夹。

自 brew 4.0.0 (2023 年 2 月 16 日) 起,HOMEBREW_INSTALL_FROM_API 会成为默认行为。大部分用户无需再克隆 homebrew-core 和 homebrew-cask仓库,故无需对core和cask额外设置。 因此下面的设置主要是针对Bottles。

二、首次安装

如果你安装HOMEBREW本身的时候就遇到速度慢,无法安装的情况,可以使用使用科大源安装 Homebrew

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"

export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"

export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"

export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"

之后在命令行运行 Homebrew 安装脚本:

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

二、 设置 Bottles

请在运行 brew 前设置环境变量 HOMEBREW_BOTTLE_DOMAIN,以中科大为例,值为

https://mirrors.ustc.edu.cn/homebrew-bottles。

将设置写入终端配置,根据你的使用的终端情况 bash/zsh,设置中科大源。

# 对于 bash 用户

echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"' >> ~/.bash_profile

# 对于 zsh 用户

echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"' >> ~/.zshrc

此外,brew 4.0 及之后的版本使用新的元数据 JSON API 接口,因此还需要设置环境变量 HOMEBREW_API_DOMAIN,值为 https://mirrors.ustc.edu.cn/homebrew-bottles/api。

# 对于 bash 用户

echo 'export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"' >> ~/.bash_profile

echo 'export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"' >> ~/.bash_profile

# 对于 zsh 用户

echo 'export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"' >> ~/.zshrc

echo 'export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"' >> ~/.zshrc

对于core和cask 大部分情况都不需要金额额外设置。

如果确实需要,可以参考以下设置:

临时替换 core为中科大源

export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"

brew update

将环境变量 HOMEBREW_CORE_GIT_REMOTE 加入 shell 的 profile 设置中。

# 对于 bash 用户

echo 'export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"' >> ~/.bash_profile

# 对于 zsh 用户

echo 'export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"' >> ~/.zshrc

重置为官方地址

unset HOMEBREW_CORE_GIT_REMOTE

brew tap --custom-remote homebrew/core https://github.com/Homebrew/homebrew-core

三、配置iterm 使用代理

有些情况,即使我们配置了国内源,下载安装软件还是很慢,我们可以配置我们的终端工具使用代理,以zsh 和clashx为例,根据你的代理软件不同,代理端口不同,可以通过你的代理软件查看。clashx的代理端口是7890.

# 编辑zsh的配置

vi ~/.zshrc

添加下面的配置

# 设置代理

function proxy {

export http_proxy=http://127.0.0.1:7890

export https_proxy=hppts://127.0.0.1:7890

export all_proxy=socks5://127.0.0.1:7890

export no_proxy="localhost,127.0.0.1"

}

# 取消代理

function unproxy {

unset http_proxy

unset https_proxy

unset all_proxy

unset no_proxy

}

或者使用别名配置

alias proxy="

export http_proxy=http://127.0.0.1:7890

export https_proxy=https://127.0.0.1:7890

export all_proxy=socks5://127.0.0.1:7890

export no_proxy='localhost,127.0.0.1'"

alias unproxy="

unset http_proxy

unset https_proxy

unset all_proxy

unset no_proxy"

你可以修改 proxy/unproxy 为你喜欢的单词 proxy_start/proxy_stop 等等。

当使用代理的时候,我们在iterm中输入

proxy

就开启了代理。

开启了代理后,同样是下载obs,速度是非常快的。

如果取消代理,则输入

unproxy

就取消代理。

四、总结与建议

通过以上配置,我们可以显著提升 Homebrew 在国内的使用体验。总的来说,我们有两种主要的加速方案:

使用国内镜像源:这是最基础也是最推荐的方案,通过配置 HOMEBREW_BOTTLE_DOMAIN 和 HOMEBREW_API_DOMAIN 环境变量,将下载源切换到中科大或清华镜像站。这种方式适合大多数用户,无需额外的代理设置。

终端代理:当镜像源仍无法满足需求时,可以通过配置终端代理来进一步提升下载速度。这种方式特别适合那些已经有稳定代理服务的用户。

在实际使用中,建议:

首先尝试配置国内镜像源

如果镜像源速度仍不理想,再配置终端代理

定期更新 Homebrew 以获取最新的包信息:brew update

如果遇到访问问题,可以尝试切换不同的镜像源

使用 brew doctor 命令检查配置是否正常

通过合理配置,我们可以充分发挥 Homebrew 这一强大包管理工具的优势,提升开发效率。记住在不需要时及时关闭代理,保持良好的使用习惯。

关注我获取更多资讯

📢 公众号

💬 个人号

本文链接地址:https://blog.eimoon.com/p/speed-up-homebrew-installation-in-china/

作者:eimoon.com

分享转载说明:本文由作者原创,转载请注明出处。

关键点

Homebrew是macOS系统上的包管理器,它可以让我们轻松安装、更新和管理软件包。作为开发,brew是我们必备的开发工具之一。默认官方的安装源都

相关文章