安装任意包
$ brew install <packageName>
示例:安装 node
$ brew install node
卸载任意包
$ brew uninstall <packageName>
示例:卸载 git
$ brew uninstall git
查询可用包
$ brew search <packageName>
查看已安装包列表
$ brew list
查看任意包信息
$ brew info <packageName>
更新 Homebrew
$ brew update
查看 Homebrew 版本
$ brew -v
Homebrew 帮助信息
$ brew -h
启停某个服务
brew services restart|stop|start php@7.2
查看运行的服务列表
brew services list
搜索软件
brew search [TEXT|/REGEX/] 用于搜索软件,支持使用正则表达式进行复杂的搜索。
例如,查询静态博客生成工具 hugo:
➜ study brew search hugo
==> Formulae
hugo
查看包相关信息
brew info 可以查看包的相关信息,最有用的应该是包依赖和相应的命令。比如 Nginx 会提醒你怎么加 launchctl ,PostgreSQL 会告诉你如何迁移数据库。这些信息会在包安装完成后自动显示,如果忘了的话可以用这个命令很方便地查看。
brew info $FORMULA # 显示某个包的信息
brew info # 显示安装了包数量,文件数量,和总占用空间
brew deps 可以显示包的依赖关系,我常用它来查看已安装的包的依赖,然后判断哪些包是可以安全删除的。
brew deps --installed --tree # 查看已安装的包的依赖,树形显示
更新包 (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 doctor 诊断当前 brew 存在哪些问题,并给出解决方案
仓库管理
brew tap 已安装的仓库列表
brew tap [--full] user/repo [URL] 添加仓库
brew untap tap 移除仓库