HomeBrew簡介
我們在使用Linux系統的時候,都很喜歡 (Debian/Ubuntu)系列的apt包管理系統和(Redhat/Fedora)系列的yum包管理系統。Mac OS X系統下面有apple的官方Mac App Store。但是好多軟件是找不到的,所以我們也向在蘋果下找到一款比較方便的包管理系統,就是Homebrew。
什么是Homebrew呢?Homebrew is the easiest and most flexible way to install the UNIX tools Apple didn’t include with OS X. 官方的解釋非常明了,Homebrew是一個包管理器,用於在Mac上安裝一些OS X沒有的UNIX工具(比如著名的wget),能在Mac中方便的安裝軟件或者卸載軟件,可以說Homebrew就是mac下的apt-get、yum神器。
Homebrew安裝
Homebrew的安裝非常簡單,打開終端,執行以下命令:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
中途需要Press RETURN to continue
,輸入系統密碼等操作就完成了安裝。
Homebrew安裝成功后,會自動創建目錄/usr/local/Cellar 來存放Homebrew安裝的程序,並在 /usr/local/bin 中創建符號鏈接. 在命令行狀態下面就可以使用 brew 命令了.
brew 使用方法
舉個例子,安裝git:
搜索git(此步驟非必須)
brew search git
安裝軟件
brew install git
卸載軟件
brew uninstall git
顯示已經安裝軟件列表
brew list
常用命令
brew list #列出已安裝的軟件
brew update #更新brew
brew home #用瀏覽器打開brew的官方網站
brew info #顯示軟件信息
brew deps #顯示包依賴
brew upgrade #更新某個具體軟件
brew outdated #查看那些包需要更新
卸載brew
cd `brew –prefix` rm -rf Cellar brew prune rm `git ls-files` rm -rf Library .git .gitignore bin/brew rm -rfREADME.mdshare/man/man1/brew rm -rf Library/Homebrew Library/Aliases rm -rf Library/Formula Library/Contributions rm -rf ~/Library/Caches/Homebrew
brew更新源
更新源的機制
Homebrew的更新源由三部分組成:本體(brew.git)、核心(homebrew-core.git)以及二進制預編譯包(homebrew-bottles)。
在很多教程中,只會提及到更換本體,而未涉及到核心與二進制預編譯包的更換。這樣實際上效果是不完全的(盡管這樣也無法做到完全,畢竟有一些軟件包的地址是不被收錄的,只能從它們提供的鏈接處下載)。
從.git的后綴名可以看出,Homebrew的更新源是以Git倉庫的形式存在的,這便是為什么需要用到Git的原因。也正是如此,使得可以對其進行克隆,成為新源。
更新源的選擇
默認官方的更新源都是存放在GitHub上的,這也是中國大陸用戶訪問緩慢的原因,一般來說我們會更傾向選擇國內提供的更新源,在此推薦中國科大以及清華大學提供的更新源,因為它們能夠完整以上源組成的三個部分。並且在此感謝他們為大家提供的服務。
替換更新源
# 替換brew.git: $ cd "$(brew --repo)" # 中國科大: $ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git # 清華大學: $ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git # 替換homebrew-core.git: $ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" # 中國科大: $ git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git # 清華大學: $ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git # 替換homebrew-bottles: # 中國科大: $ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile $ source ~/.bash_profile # 清華大學: $ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile $ source ~/.bash_profile # 應用生效: $ brew update
以上在中國科大和清華大學任選其一即可,在使用其他源的時候,最好先嘗試訪問其鏈接看看是否健在,並且因為歷史原因,最初的brew.git是叫homebrew.git的,而現在部分更新源早已隨官方更名,所以切記要驗證。
並且沒有嚴格規定必須三個組成部分必須是來自同一提供,可隨性發揮。
且Homebrew在早期版本中更新源的是在/usr/local
目錄下的,而現在是在/usr/local/Homebrew
,不過應該都是可以使用"$(brew --repo)"
來自動指向目錄的,所以無需理會。
如果你之前折騰過不少導致你的Homebrew有點問題,那么可以嘗試使用如下方案:
# 診斷Homebrew的問題: $ brew doctor # 重置brew.git設置: $ cd "$(brew --repo)" $ git fetch $ git reset --hard origin/master # homebrew-core.git同理: $ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" $ git fetch $ git reset --hard origin/master # 應用生效: $ brew update
重置更新源
所謂有進則有退,在某些時候也有換回官方源的需求。
# 重置brew.git: $ cd "$(brew --repo)" $ git remote set-url origin https://github.com/Homebrew/brew.git # 重置homebrew-core.git: $ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" $ git remote set-url origin https://github.com/Homebrew/homebrew-core.git
至於homebrew-bottles,本質上作為一個環境變量的存在,之前的命令也只是將其寫入到/usr/.bash_profile中,並且只是在文件尾部添加一行。所以之前的命令不推薦重復執行,在未掌握相關命令技巧的前提下,我推薦直接去修改.bash_profile文件:

當然這里的主題是重置更新源,所以我們直接選擇刪除環境變量HOMEBREW_BOTTLE_DOMAIN,使其成為默認值即可。
當然,最后不要忘記$ brew update進行應用。
以上都是經過本人測試后整理的,自用。
📅20210629 更新:
快速安裝brew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"