Homebrew 命令詳細介紹
Homebrew 命令詳細介紹
搜尋軟體
brew search [TEXT|/REGEX/] 用於搜尋軟體,支援使用正則表示式進行復雜的搜尋。
例如,查詢靜態部落格生成工具hugo:
$ brew search hugo ==> Searching local taps... hugo ✔ ==> Searching taps on GitHub... ==> Searching blacklisted, migrated and deleted formulae...
檢視安裝的包
檢視已經安裝的包
brew list
檢視包相關資訊
brew info 可以檢視包的相關資訊,最有用的應該是包依賴和相應的命令。比如 Nginx 會提醒你怎麼加 launchctl ,PostgreSQL 會告訴你如何遷移資料庫。這些資訊會在包安裝完成後自動顯示,如果忘了的話可以用這個命令很方便地檢視。
brew info $FORMULA# 顯示某個包的資訊 brew info# 顯示安裝了包數量,檔案數量,和總佔用空間 brew deps 可以顯示包的依賴關係,我常用它來檢視已安裝的包的依賴,然後判斷哪些包是可以安全刪除的。 brew deps --installed --tree # 檢視已安裝的包的依賴,樹形顯示
更新 Homebrew
要獲取最新的包的列表,首先得更新 Homebrew 自己。這可以用 brew update 辦到。
brew update
完後會顯示可以更新的包列表,其中打鉤的是已經安裝的包。
更新包 (formula)
更新之前,我會用 brew outdated 檢視哪些包可以更新。
brew outdated
然後就可以用 brew upgrade 去更新了。Homebrew 會安裝新版本的包,但舊版本仍然會保留
brew upgrade
# 更新所有的包
brew upgrade $FORMULA
# 更新指定的包
清理舊版本
新版本安裝了,舊版本就不需要了。我會用 brew cleanup 清理舊版本和快取檔案。Homebrew 只會清除比當前安裝的包更老的版本,所以不用擔心有些包沒更新但被刪了。
brew cleanup
# 清理所有包的舊版本
brew cleanup $FORMULA
# 清理指定包的舊版本
brew cleanup -n
# 檢視可清理的舊版本包,不執行實際操作
現在該更新的都更新了,舊版本也被清理。
對於Homebrew來說,如果沒有解除安裝掉軟體包的所有版本,那麼Homebrew會繼續嘗試安裝這個軟體包的最新版本。要想徹底解除安裝某個軟體包,需要執行命令:
brew uninstall formula_name --force
鎖定不想更新的包
如果經常更新的話,brew update 一次更新所有的包是非常方便的。但我們有時候會擔心自動升級把一些不希望更新的包更新了。資料庫就屬於這一類,尤其是 PostgreSQL 跨 minor 版本升級都要遷移資料庫的。我們更希望找個時間單獨處理它。這時可用 brew pin 去鎖定這個包,然後 brew update 就會略過它了。
brew pin $FORMULA# 鎖定某個包 brew unpin $FORMULA# 取消鎖定
服務管理
brew services 用於方便的管理 brew 安裝的軟體軟體,類似於 Linux 下的 service 命令。
brew services command: Integrates Homebrew formulae with macOS' launchctl manager. [sudo] brew services list: List all running services for the current user (or root). [sudo] brew services run (formula|--all): Run the service formula without registering to launch at login (or boot). [sudo] brew services start (formula|--all): Start the service formula immediately and register it to launch at login (or boot). [sudo] brew services stop (formula|--all): Stop the service formula immediately and unregister it from launching at login (or boot). [sudo] brew services restart (formula|--all): Stop (if necessary) and start the service formula immediately and register it to launch at login (or boot). [sudo] brew services cleanup: Remove all unused services. If sudo is passed, operate on /Library/LaunchDaemons (started at boot). Otherwise, operate on ~/Library/LaunchAgents (started at login).
檢視配置資訊
brew config 用於檢視 brew 所在環境及相關的配置情況
診斷問題
brew doctor 診斷當前 brew 存在哪些問題,並給出解決方案
倉庫管理
brew tap 已安裝的倉庫列表 brew tap [--full] user/repo [URL] 新增倉庫 brew untap tap 移除倉庫
替換homebrew源
替換homebrew預設源
cd "$(brew --repo)" git remote set-url origin git://mirrors.ustc.edu.cn/brew.git
替換homebrew-core源
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-core.git