[TOC] #### 1. 前言 --- Homebrew 是 Mac OS 上的一款软件包管理工具,可以通过 brew 命令来更新安装的软件包,在更新软件时,我们需要了解本文记录的几个命令,只有掌握了这几个命令,当想要更新软件版本时才会更加得心用手 ```bash # 检查更新 brew outdated # 升级版本 brew upgrade # 清理旧版本 brew cleanup ``` #### 2. outdated --- `brew outdated` 命令用于查看哪些软件有新版本可以升级,它不会做任何修改操作(只读) + 作用:检查更新,列出所有已安装的软件包中有新版本的包 + 场景:想确认是否需要升级,避免盲目升级(生产环境很重要) ```bash # 查看所有可升级的包 brew outdated # 只检查某一个软件是否有更新(以 git 为例) brew outdated git # 只看 cask(GUI 软件) brew outdated --cask # 只看 formula(命令行工具) brew outdated --formula # 显示更详细信息 brew outdated --verbose ``` ```plaintext $ brew outdated ✔︎ JSON API formula.jws.json Downloaded 32.0MB/ 32.0MB ✔︎ JSON API cask.jws.json Downloaded 15.4MB/ 15.4MB nvm (0.39.7) < 0.40.4 redis (7.2.3) < 8.6.2 nginx (1.25.3) < 1.29.8 ``` #### 3. upgrade --- `brew upgrade` 命令用于真正执行软件升级,也就是执行更新软件版本操作 ```bash # 更新所有软件包的版本 brew upgrade # 更新指定软件包的版本(以 nvm 为例) brew upgrade nvm ``` 使用示例:升级 `nvm` ```plaintext $ brew upgrade nvm ==> Upgrading 1 outdated package: nvm 0.39.7 -> 0.40.4 ==> Fetching downloads for: nvm ✔︎ Bottle nvm (0.40.4) Downloaded 53.3KB/ 53.3KB ==> Upgrading nvm 0.39.7 -> 0.40.4 ==> Pouring nvm-0.40.4.all.bottle.tar.gz ==> Caveats ...... ==> Summary 🍺 /opt/homebrew/Cellar/nvm/0.40.4: 10 files, 214.4KB ==> Running `brew cleanup nvm`... Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`. Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`). Removing: /opt/homebrew/Cellar/nvm/0.39.7... (9 files, 198.8KB) ``` 安装新版本后,默认会执行以下命令将旧版本的安装包删除,如下图所示 ```plaintext brew cleanup <package> ``` 在输出结果的最后可以看到两句话 ```plaintext Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). ``` 如果你是 `zsh` 终端,将以下内容放入 `~/.zshrc` 文件,然后重启终端生效 ```bash # 关闭自动清理旧版本包(不建议使用) export HOMEBREW_NO_INSTALL_CLEANUP=true # 隐藏提示(建议使用) export HOMEBREW_NO_ENV_HINTS=true ```