1. 程式人生 > >[Linux實踐] macOS平臺Homebrew更新brew update卡死,完美解決

[Linux實踐] macOS平臺Homebrew更新brew update卡死,完美解決

[Linux實踐] macOS 平臺 Homebrew 更新 brew update 卡死,完美解決

版本2020.01.05

摘要:
使用brew install [軟體包]安裝軟體包時,卡在Updating Homebrew...
或輸入`brew update`更新brew,半天沒反應.產生原因一般是在國內訪問官方
更新源獲取資源太慢,解決方案可以採用更換國內映象更新源.
關鍵詞: Linux; macOS; mac; Homebrew; brew update; 開源軟體映象站;
一. Homebrew 簡介
  1. Homebrew是什麼?

    • Homebrew是macOS或Linux缺失的軟體包的管理器.
  2. 如何安裝Homebrew?
    • 命令列裡執行以下命令即可.
    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    • 參考Homebrew.
  3. Homebrew幾點備註.
    • Homebrew會將軟體包安裝到獨立目錄,一般為/usr/local/Cellar目錄.
    • 然後將檔案軟連線至執行路徑,一般為/usr/local/bin目錄.
二. Homebrew 命令
  • brew install [包名]
  • brew update
  • brew update -verbose
  • brew cleanup
    :清理舊有軟體包.
  • brew doctor:診斷Homebrew的問題.
  • brew update-reset
三. brew update 卡死解決方案
  1. 問題場景.
    • 場景1.使用brew install [軟體包]安裝其他軟體包,卡在Updating Homebrew...
    • 場景2.輸入brew update更新brew,半天沒反應.
  2. 原因分析.
    • 對於場景1我們可以選擇Control-C直接終止當前前臺update程序,然後brew就會接著執行install了.
    • 但這樣並不能"治本",其實造成上述兩種情況的主要原因是資源訪問太慢.
    • 我們知道預設官方更新源在github.com上,因為一些原因,國內訪問不太順暢.
    • 解決方案是我們可以選擇國內映象更新源.
    • 國內映象更新源推薦中國科大開源軟體映象站或清華大學開源軟體映象站.
    • 某些同學可能要有疑問了,"我已經按照網上其他教程替換更新源了呀?怎麼還不行?"
    • 這裡回答是,"可能你並沒有更換徹底".
      • 輸入brew update -verbose我們可以看到brew update工作的具體步驟.
      $ brew update -verbose
      Checking if we need to fetch /usr/local/Homebrew...
      Checking if we need to fetch /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask...
      Fetching /usr/local/Homebrew...
      Checking if we need to fetch /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core...
      Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask...
      Checking if we need to fetch /usr/local/Homebrew/Library/Taps/homebrew/homebrew-services...
      Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core...
      Already up-to-date.
      • 我們可以看到它一共檢查了Homebrew,homebrew-cask,homebrew-core,homebrew-services這幾個檔案.
      • 而網上大部分教程替換更新源時往往只替換了Homebrewhomebrew-core這兩個的源.
      • 出問題,可能就出在homebrew-cask這個檔案上,而我之前執行brew update -verbose顯示卡死也的確是卡在這個地方.
      • 所以知道了原因,我們只要把homebrew-cask這個檔案的更新源也替換一下即可.
      • 具體操作見中國科大映象源:homebrew-cask.
  3. 解決方案,以USTC映象為例.
    • 步驟1.替換Homebrew源.
      shell $ cd "$(brew --repo)" $ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
      • "$(brew --repo)"是用來自動指向Homebrew的目錄的.
      • 參考Homebrew源使用幫助.
    • 步驟2.替換homebrew-core源.
      shell $ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" $ git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
      • 參考Homebrew Core源使用幫助.
    • 步驟3.替換homebrew-cask源.
      shell $ cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask $ git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
      • 參考Homebrew Cask源使用幫助.
    • 補充. 中國科大開源軟體映象站或清華大學開源軟體映象站同時提供的有Homebrew二進位制預編譯包Homebrew-bottles的映象源.
      • 可有選擇的進行替換,這裡不進行演示.
      • 參考Homebrew Bottles 源使用幫助.

THANKS: Homebrew
中國科大開源軟體映象站
清華大學開源軟體映象站
Musoucrow's BLOG
CSDN:瓜而不皮
CSDN:為了積分2018
| 版權宣告:除特別註明外,本部落格所有文章均為博主 T.P原創,轉載請註明出處: https://www.cnblogs.com/tp0829/p/Homebrew.html