執行 brew install 命令長時間卡在 Updating Homebrew 的解決方法

z__r發表於2018-10-26

在國內的網路環境下使用 Homebrew 安裝軟體的過程中可能會長時間卡在 Updating Homebrew 這個步驟。

例:執行 brew install composer 命令

➜  ~ brew install composer
Updating Homebrew... # 如果碰到長時間卡在這裡,參考以下 2 種處理方法

方法1:按住 control + c 取消本次更新操作

➜  ~ brew install composer
Updating Homebrew...
^C

按住 control + c 之後命令列會顯示 ^C,就代表已經取消了 Updating Homebrew 操作

大概不到 1 秒鐘之後就會去執行我們真正需要的安裝操作了

➜  ~ brew install composer
Updating Homebrew...
^C==> Satisfying dependencies
==> Downloading https://getcomposer.org/download/1.7.2/composer.phar
...

這個方法是臨時的、一次性的

方法2:使用 Alibaba 的 Homebrew 映象源進行加速

平時我們執行 brew 命令安裝軟體的時候,跟以下 3 個倉庫地址有關:

  1. brew.git

  2. homebrew-core.git

  3. homebrew-bottles

透過以下操作將這 3 個倉庫地址全部替換為 Alibaba 提供的地址

###1. 替換/還原 brew.git 倉庫地址

# 替換成阿里巴巴的 brew.git 倉庫地址:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git

#=======================================================

# 還原為官方提供的 brew.git 倉庫地址
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git

###2. 替換/還原 homebrew-core.git 倉庫地址

# 替換成阿里巴巴的 homebrew-core.git 倉庫地址:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git

#=======================================================

# 還原為官方提供的 homebrew-core.git 倉庫地址
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core.git

###3. 替換/還原 homebrew-bottles 訪問地址

這個步驟跟你的 macOS 系統使用的 shell 版本有關係

所以,先來檢視當前使用的 shell 版本

echo $SHELL

# 如果你的輸出結果是 /bin/zsh,參考下方的 zsh 終端操作方式
# 如果你的輸出結果是 /bin/bash,參考下方的 bash 終端操作方式

####3.1 zsh 終端操作方式

# 替換成阿里巴巴的 homebrew-bottles 訪問地址:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc

#=======================================================

# 還原為官方提供的 homebrew-bottles 訪問地址
vi ~/.zshrc
# 然後,刪除 HOMEBREW_BOTTLE_DOMAIN 這一行配置
source ~/.zshrc

####3.2 bash 終端操作方式

# 替換 homebrew-bottles 訪問 URL:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile

#=======================================================

# 還原為官方提供的 homebrew-bottles 訪問地址
vi ~/.bash_profile
# 然後,刪除 HOMEBREW_BOTTLE_DOMAIN 這一行配置
source ~/.bash_profile
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章