【mac】brew 更新

【mac】brew 更新

更新 Homebrew

要获取最新的包的列表,首先得更新 Homebrew 自己。这可以用 brew update 办到。

cpp 复制代码
brew update

完后会显示可以更新的包列表,其中打钩的是已经安装的包。输出类似下面这样:

cpp 复制代码
==> Updating Homebrew...
Updated 1 tap (homebrew/core).
==> Outdated Formulae
ddns-go

You have 1 outdated formula installed.
You can upgrade it with brew upgrade
or list it with brew outdated.

更新包 (formula)

更新之前,我会用 brew outdated 查看哪些包可以更新。

cpp 复制代码
brew outdated

然后就可以用 brew upgrade 去更新了。Homebrew 会安装新版本的包,但旧版本仍然会保留。

cpp 复制代码
brew upgrade             # 更新所有的包
brew upgrade $FORMULA    # 更新指定的包

清理旧版本

一般情况下,新版本安装了,旧版本就不需要了。我会用 brew cleanup 清理旧版本和缓存文件。Homebrew 只会清除比当前安装的包更老的版本,所以不用担心有些包没更新但被删了。

cpp 复制代码
brew cleanup             # 清理所有包的旧版本
brew cleanup $FORMULA    # 清理指定包的旧版本
brew cleanup -n          # 查看可清理的旧版本包,不执行实际操作

这样一套下来,该更新的都更新了,旧版本也被清理了。

锁定不想更新的包

如果经常更新的话,brew update 一次更新所有的包是非常方便的。但我们有时候会担心自动升级把一些不希望更新的包更新了。数据库就属于这一类,尤其是 PostgreSQL 跨 minor 版本升级都要迁移数据库的。我们更希望找个时间单独处理它。这时可用 brew pin 去锁定这个包,然后 brew update 就会略过它了。

cpp 复制代码
brew pin $FORMULA      # 锁定某个包
brew unpin $FORMULA    # 取消锁定

其他几个常用命令

brew info 可以查看包的相关信息,最有用的应该是包依赖和相应的命令。比如 Nginx 会提醒你怎么加 launchctlPostgreSQL 会告诉你如何迁移数据库。这些信息会在包安装完成后自动显示,如果忘了的话可以用这个命令很方便地查看。

cpp 复制代码
brew info $FORMULA    # 显示某个包的信息
brew info             # 显示安装了包数量,文件数量,和总占用空间

brew deps 可以显示包的依赖关系,我常用它来查看已安装的包的依赖,然后判断哪些包是可以安全删除的。

cpp 复制代码
brew deps --installed --tree    # 查看已安装的包的依赖,树形显示

输出如下:

cpp 复制代码
subversion
├── apr
├── apr-util
│   ├── apr
│   └── openssl@3
│       └── ca-certificates
├── gettext
├── lz4
├── openssl@3
│   └── ca-certificates
└── utf8proc

还有很多有用的命令和参数,没事 man brew 一下可以涨不少知识。

相关推荐
sudebao点com1 天前
一次“Google 能打开,FlexTV 打不开”的 DNS 故障排查:从 curl 超时到完整证据链
windows·macos·https·cdn·dns·nslookup·网络排错
EXI-小洲2 天前
MacOS 微服务网关双雄:Nacos + Higress 安装与 Dubbo 配置实战
macos·微服务·nacos·dubbo
EXI-小洲2 天前
MacOS 上使用 IntelliJ IDEA 指定 Main 函数并打包为 JAR 文件
macos·intellij-idea·jar
Albart5753 天前
Docker Desktop最新版安装踩坑全记录(Windows_Mac_Linux)【2026 4.74.0 终版】
linux·windows·macos·docker·环境搭建·踩坑记录
Web Security Loop3 天前
MAC卸载JDK环境
java·macos·jdk
IS6835 天前
视频文案提取技术全景:ASR vs OCR,哪种方案更适合你?
ide·macos·xcode
安且惜5 天前
Windows或mac支持本地抓包
windows·macos
做萤石二次开发的哈哈6 天前
开发者如何调用 ERTC iOS API 完成 SDK 初始化配置?
macos·objective-c·cocoa
AUV11076 天前
Mac 录屏自动缩放怎么设置才不乱跳:自动片段、固定区域与鼠标跟随调试
macos·计算机外设
程序员良辰6 天前
【Mac快速切换JDK】Mac 使用 Homebrew + jenv 快速切换 JDK 版本
java·开发语言·macos