Homebrew 个人使用记录
XiaO / 2020-06-11
安装
xcode-select —install # 安装 macOS 上的集成开发工具
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" # 安装 homebrew
基础使用
brew update # 更新 homebrew 各个 tap 中的 formulae 信息
brew install wget # 安装 homebrew/core 的软件
brew uninstall wget # 卸载 homebrew/core 的软件
brew list # 列出以安装软件
brew outdated # 查看可更新的软件
brew upgrade # 更新所有软件
brew upgrade wget # 更新指定软件
brew search wget # 依次从核心库到三方库查找 wget 软件信息
brew info # 查看某个软件的具体信息
Homebrew 会把在核心库中有记录的软件安装到 /usr/local/Cellar
,并且通过创建软链链接 (Symbolic link)的方式将其链接到 /usr/local/bin
以便我们可以在 shell 中直接使用,因为 /usr/local/bin
天然在 PATH 变量中,而 /usr/local/Cellar
则不在。
所有从核心库安装好的软件都放在 /usr/local/Cellar
路径下,就像酒存储在地窖 (cellar) 里一样。而 keg (小桶)里装的是也是存放在地窖 (Celler) 里的酒(某个软件),只不过这些软件不会被软链链接到 /usr/local/bin
,而可能只是一些其他软件的依赖程序。
我们可以通过 brew unlink
和 brew link
删除或创建链接。
brew unlink wget # 删除符号链接,但保留程序本身。即程序依旧存在 /usr/local/Cellar 目录中
brew link wget # 创建符号链接,重新启用该该程序
关于 tap(仓库)
Homebrew 基于 Git 进行软件的管理(安装,卸载,版本控制等)。tap 其实就是 Git 的 repository (仓库),仓库里存放着如何安装某个软件的描述方案 (formulae)。
- Homebrew 的默认仓库 (tap):
- homebrew/core # 核心库,有 shell 软件的安装描述方案
- homebrew/cask # 图形界面软件库,有图形界面软件的安装描述方案
- homebrew/services
- homebrew/bundle
brew tap 列出当前启用的仓库
brew tap <user>/<repo> # 在本地对存放在 Github 上的仓库 https://github.com/user/repo 浅度克隆,而后可如同操作核心库一样对这个仓库中的的软件安装描述方案进行操作
brew tap <user>/<repo> URL # 在本地对 URL 所在仓库 https://example.com/user/repo 浅度克隆,URL 所在仓库 可以是任何位置和任何协议,而不一定在 Github 上。
brew untap <user>/<repo> # 移除某个仓库,不再对其进行跟踪管理
- Tap (仓库)的命名
- 存放在 Github 上并以 Homebrew-something 命名的仓库,可直接用
brew tap <user>/<somthing>
的短命令直接克隆启用,其为brew tap <user>/<Homebrew-something>
的简写,即省略了前缀 Homebrew-。 - 对于存放在 Github 上不以 Homebrew-something 命名的仓库或者不是存放在 GitHub 上的仓库,它们的启用则需要
brew tap <user>/<repo> URL
的全命令形式。 - 通过
brew tap
克隆启用的仓库,其操作命令和核心库的操作一样。但通过brew install formula
安装某个软件的时候,Homebrew 会先查找核心库,当核心库不存在该软件的时候,才会查找其他通过brew tap
克隆启用的仓库。当遇到某个软件在第三方库和核心库中的名字相同时候,brew install formula
就会默认安装核心库中的软件。此时,我们可以通过指定该软件所在仓库的方式来安装三方库中的软件brew install user/repo/formular
。 - homebrew 的 tap 都存放在
/usr/local/Homebrew/Library/Taps/
路径下,并以<user>/<repo>
的文件夹形式分开。比如核心库存放在:
- 存放在 Github 上并以 Homebrew-something 命名的仓库,可直接用
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core # homebrew 核心库位置
brew install username/repo/formula # installs from your custom repo
关于 cask
我们还可以通过 cask (木桶) 来安装图形界面 (GUI) 应用或者字体等。通过 cask 安装的图形界面应用或者字体等,安装在 /usr/local/Caskroom
路径下。而后软件本身会被移动到 /Applications/
中,字体则被移动到 ~/Library/Fonts/
文件夹中,以便使用。Caskroom 中的信息则供 Homebrew 管理该软件或字体使用。
brew tap homebrew/cask # 克隆启用 cask 软件仓库,仅需启用一次
brew cask install formula # 安装 homebrew/cask 中的软件
brew tap homebrew/cask-fonts # 克隆启用cask 字体仓库,仅需启用一次
brew cask install font-fira-code # 安装某个字体
其他使用
brew install --build-from-source /Path/to/formula.rb # 本地编译
brew ls --full-name | cat # 单行列出所有的软件及其所属仓库
brew ls --full-name | grep '^your/tap/' | xargs brew uninstall # 删除某个在某仓库里安装的所有软件