[TOC] #### 1. 前言 --- Homebrew 是一款 Mac OS 平台非常流行的软件包管理工具 通过一条简单的指令,就可以软件包管理,比如:安装、升级、更新等操作,这也是它这么流行的主要原因 #### 2. 安装命令 --- 语法格式: ```bash # 安装软件 brew install <package-name> # 安装命令行工具 brew install <package-name> --formula # 安装含有图形化界面的 GUI 应用 brew install <package-name> --cask ``` 查看 Homebrew 的安装路径,以下两种方式都可以(我的电脑是 macOS ARM) ```bash brew --prefix echo $HOMEBREW_PREFIX ``` | 系统 | Homebrew 默认安装路径 | | ------------ | ------------ | | macOS Intel | /usr/local | | macOS ARM | /opt/homebrew | | Linux(Ubuntu) | /home/linuxbrew/.linuxbrew | 使用 Homebrew 安装的软件,其安装位置和配置文件都存放在固定的目录 如果安装的软件是命令行工具(Formulae),Homebrew 会做哪些操作 ? 以安装命令行工具 tree 为例 第一步: + 将 tree 下载到 `$HOMEBREW_PREFIX/Cellar/tree/<version>` 目录下 + 其二进制文件在该目录下的 `bin/tree` ```plaintext $ brew install tree Inspect the formula dependency plan before installing with `brew install --ask`. Enable ask mode by setting `HOMEBREW_ASK=1`. Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`). ==> Fetching downloads for: tree ✔︎ Bottle tree (2.3.2) Downloaded 66.3KB/ 66.3KB ==> Pouring tree-2.3.2.arm64_sequoia.bottle.tar.gz 🍺 /opt/homebrew/Cellar/tree/2.3.2: 9 files, 196.5KB ==> Running `brew cleanup tree`... Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`. Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`). ``` 第二步:给二进制文件创建一个软链文件至 `$HOMEBREW_PREFIX/bin` 目录下 ```plaintext $ ls -al $HOMEBREW_PREFIX/bin | grep tree lrwxr-xr-x 1 liang admin 29 12 13 2023 tree -> ../Cellar/tree/2.1.1/bin/tree ``` #### 3. 卸载命令 --- 可以使用 brew 安装软件,当然也可以用 brew 卸载软件 卸载软件命令格式 ```bash brew uninstall <package-name> brew uninstall <package-name> --cask ``` 卸载命令只会卸载软件包,可能需要手动删除配置文件,以 `wget` 命令为例:  #### 4. 行为控制 --- 当我们使用 `brew install` 安装软件工具时,Homebrew 默认会给一些提示,理解它们表达的意思,可以更好的使用 ```plaintext $ brew install cowsay ✔︎ JSON API formula.jws.json ✔︎ JSON API cask.jws.json Inspect the formula dependency plan before installing with `brew install --ask`. Enable ask mode by setting `HOMEBREW_ASK=1`. Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`). ==> Fetching downloads for: cowsay ✔︎ Bottle cowsay (3.8.4) ==> Pouring cowsay--3.8.4.all.bottle.tar.gz 🍺 /home/linuxbrew/.linuxbrew/Cellar/cowsay/3.8.4: 62 files, 123.9KB ==> Running `brew cleanup cowsay`... Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`. Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`). ``` 输出结果的顶部提示: + 在安装之前可以使用 `brew install --ask` 检查依赖计划 + 配置 `HOMEBREW_ASK=1` 可以启用询问模式 + 可以设置 `HOMEBREW_NO_ENV_HINTS=1` 关闭这个提示 ```plaintext Inspect the formula dependency plan before installing with `brew install --ask`. Enable ask mode by setting `HOMEBREW_ASK=1`. Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`). ``` 输出结果的最底部提示: + 软件安装完成后会自动清理安装包及缓存文件(brew cleanup cowsay) + 通过设置 `HOMEBREW_NO_INSTALL_CLEANUP=1` 可以禁用此行为(设置后就没有这个提示了) + 可以设置 `HOMEBREW_NO_ENV_HINTS=1` 关闭这个提示 ```plaintext ==> Running `brew cleanup cowsay`... Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`. Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`). ``` 上面提到的三个行为控制环境变量,添加到终端配置中生效,比如:修改 `~/.zshrc` + 更多行为控制,查看文章:[Homebrew - MacOS 软件包管理器](https://www.itqaq.com/index/292.html) ```bash # 开启询问模式 export HOMEBREW_ASK=1 # 关闭自动清理旧版本软件包以及缓存文件 export HOMEBREW_NO_INSTALL_CLEANUP=1 # 关闭这些提示 export HOMEBREW_NO_ENV_HINTS=1 ```