XiaO

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 unlinkbrew link 删除或创建链接。

brew unlink wget # 删除符号链接,但保留程序本身。即程序依旧存在 /usr/local/Cellar 目录中

brew link wget # 创建符号链接,重新启用该该程序

关于 tap(仓库

Homebrew 基于 Git 进行软件的管理(安装,卸载,版本控制等)。tap 其实就是 Git 的 repository (仓库),仓库里存放着如何安装某个软件的描述方案 (formulae)。

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> # 移除某个仓库,不再对其进行跟踪管理
/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 # 删除某个在某仓库里安装的所有软件