Mac 优化 Homebrew

60次阅读
没有评论

共计 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 添加到 PATHHOMEBREW_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 能否解决这个问题。若不能,则建议使用修改上游源地址的方式来重新安装软件,见下文。

修改仓库上游源地址

若需要修改源地址,则如下仓库的上游地址均需修改:

按如下命令修改仓库源地址:

  1. 设置 HOMEBREW_BREW_GIT_REMOTEHOMEBREW_CORE_GIT_REMOTEHOMEBREW_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
  1. 更新仓库源地址
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
  1. 执行 brew update 重新远程拉取

还原仓库的上游源地址

若需要还原上游仓库的源地址,按如下步骤操作:

  1. 删除 ~/.zshrc 中关于 Homebrew 的配置

    sed -i "" '/homebrew/d' ~/.zshrc
    source ~/.zshrc
  2. 还原仓库源地址

    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
  3. 执行 brew update 重新远程拉取

卸载

执行命令 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" 即可卸载。

正文完
 0
管理员
版权声明:本站原创文章,由 管理员 于2022-03-21发表,共计2739字。
转载说明:除特殊说明外本站文章皆由 CC-4.0 协议发布,转载请注明出处。
评论(没有评论)