查看安裝的包
查看已經(jīng)安裝的包
brew list
更新 Homebrew
要獲取最新的包的列表,首先得更新 Homebrew 自己。這可以用 brew update 辦到。
brew update
完后會(huì)顯示可以更新的包列表,其中打鉤的是已經(jīng)安裝的包。
更新包 (formula)
更新之前,我會(huì)用 brew outdated 查看哪些包可以更新。
brew outdated
然后就可以用 brew upgrade 去更新了。Homebrew 會(huì)安裝新版本的包,但舊版本仍然會(huì)保留
brew upgrade # 更新所有的包
brew upgrade $FORMULA # 更新指定的包
清理舊版本
新版本安裝了,舊版本就不需要了。我會(huì)用 brew cleanup 清理舊版本和緩存文件。Homebrew 只會(huì)清除比當(dāng)前安裝的包更老的版本,所以不用擔(dān)心有些包沒(méi)更新但被刪了。
brew cleanup # 清理所有包的舊版本
brew cleanup $FORMULA # 清理指定包的舊版本
brew cleanup -n # 查看可清理的舊版本包,不執(zhí)行實(shí)際操作
現(xiàn)在該更新的都更新了,舊版本也被清理。
對(duì)于Homebrew來(lái)說(shuō),如果沒(méi)有卸載掉軟件包的所有版本,那么Homebrew會(huì)繼續(xù)嘗試安裝這個(gè)軟件包的最新版本。要想徹底卸載某個(gè)軟件包,需要執(zhí)行命令:
brew uninstall formula_name --force
鎖定不想更新的包
如果經(jīng)常更新的話,brew update 一次更新所有的包是非常方便的。但我們有時(shí)候會(huì)擔(dān)心自動(dòng)升級(jí)把一些不希望更新的包更新了。數(shù)據(jù)庫(kù)就屬于這一類(lèi),尤其是 PostgreSQL 跨 minor 版本升級(jí)都要遷移數(shù)據(jù)庫(kù)的。我們更希望找個(gè)時(shí)間單獨(dú)處理它。這時(shí)可用 brew pin 去鎖定這個(gè)包,然后 brew update 就會(huì)略過(guò)它了。
brew pin $FORMULA # 鎖定某個(gè)包
brew unpin $FORMULA # 取消鎖定
其他幾個(gè)常用命令
brew info 可以查看包的相關(guān)信息,最有用的應(yīng)該是包依賴(lài)和相應(yīng)的命令。比如 Nginx 會(huì)提醒你怎么加 launchctl ,PostgreSQL 會(huì)告訴你如何遷移數(shù)據(jù)庫(kù)。這些信息會(huì)在包安裝完成后自動(dòng)顯示,如果忘了的話可以用這個(gè)命令很方便地查看。
brew info $FORMULA # 顯示某個(gè)包的信息
brew info # 顯示安裝了包數(shù)量,文件數(shù)量,和總占用空間
brew deps 可以顯示包的依賴(lài)關(guān)系,我常用它來(lái)查看已安裝的包的依賴(lài),然后判斷哪些包是可以安全刪除的。
brew deps --installed --tree # 查看已安裝的包的依賴(lài),樹(shù)形顯示