如何更新 Mac 上的所有应用
Mac 应用可能来自 App Store、开发者官网、Homebrew 或企业管理系统,不同来源有不同的签名、回退和自动更新规则,更新前先确认安装渠道,避免丢失授权,或让同一应用出现两个分别受管理的副本。
| 安装来源 | 权威更新入口 | 不要随意替换成 |
|---|---|---|
| Mac App Store | App Store 的更新 | 覆盖商店托管副本的厂商下载包 |
| 开发者网站 | 应用内更新器或厂商下载页 | 未明确迁移就改用 App Store 或 Homebrew |
| Homebrew formula 或 cask | brew outdated 与 brew upgrade |
Homebrew 管版本时改用应用自更新 |
| 企业管理 | 组织的管理门户 | 本地管理员绕过方案 |
App Store 应用
App Store 只更新通过商店安装的应用,打开 App Store,在侧边栏选择“更新”,自动应用更新位于 App Store > 设置,与 macOS 的“软件更新”分开,Apple 的 App Store 更新说明列出了这两个入口。
安装了第三方命令行工具 mas 时,可以查看它识别出的商店应用:
mas list
应用没有出现在结果中,不足以证明它并非来自 App Store,收据、账号权限和工具限制都可能影响识别。
从开发者网站下载的应用
官网直装应用可能使用 Sparkle、Electron 更新器、自建服务,也可能只提供下载页,许多应用会在菜单中提供“检查更新”,有些只在运行时检查,有些会安装登录项或后台辅助程序,具体行为要看应用自己的更新设置。
Homebrew 应用
先查看过期项目,再升级指定软件包或全部项目:
brew outdated
brew upgrade wget
把 wget 换成 brew outdated 返回的 formula 或 cask 名称,不带名称执行 brew upgrade 会升级所有过期项目。
Homebrew 会刷新软件包元数据,但只有执行升级时才会修改已安装内容,部分 cask 中的图形应用也有自己的更新器。根据 Homebrew 常见问题,Homebrew 能比较一部分 cask 的应用版本,标记为 version :latest 或内容难以判断的 cask 可能会被跳过,重要服务和开发工具链升级前,先查看 brew info 与不兼容变更。
更新 macOS 本身
macOS 系统更新使用独立渠道,先在终端列出可用更新:
softwareupdate -l
也可以打开 系统设置 > 通用 > 软件更新,macOS 更新不会替你更新所有第三方应用,安装前先备份,并确认驱动、虚拟化软件、音频工具和其他系统级软件兼容,Apple 的 macOS 更新说明也建议先备份。
安全地更新,而不只是尽快更新
- 确认近期备份可以恢复,并为关键工具保留安装包或归档
- 阅读发布说明,关注兼容性、数据库迁移和最低系统版本
- 确认官网下载来自厂商,应用已有代码签名或公证
- 先更新少量非关键应用,检查启动、文档、插件和后台服务后再继续
- 除非准备迁移管理权,否则保持原来的安装渠道
回退可靠、兼容记录稳定的应用适合自动更新,生产工具链、插件宿主、驱动和维护窗口很窄的电脑,更适合分批手动更新。
为什么 macOS 没有一个能更新所有应用的按钮
App Store 依靠 Apple 收据管理软件,Sparkle 使用开发者发布的 appcast,配置正确时会同时校验 EdDSA 签名和 Apple 代码签名,具体机制见 Sparkle 的安全说明,Electron 应用和厂商更新器使用各自的订阅源,Homebrew 则按 formula 与 cask 升级。
这些渠道彼此独立,统一列表需要保留应用来源和安装规则。
统一更新清单有什么用
Mole 的“软件”页面把多种渠道汇总到一份清单,并保留每款应用的来源,它省去了逐个寻找入口的时间,但不会把所有更新变成同一种操作。
更新时按这个顺序
列出应用来源,通过对应渠道检查更新,阅读兼容说明并备份关键状态,再分批安装,每批完成后,用原来的文档和工作流复测,无需一次把所有版本号变成最新,先保住可用环境。
每一批更新后,打开应用,从“关于”面板或 bundle 版本确认真正启动的副本,不要假定安装器一定覆盖成功。再验证一个与你工作有关的真实文档、插件、设备或后台服务,最后回到原更新渠道复查。仍显示过期,往往意味着磁盘上有两份应用,或更新器替换的不是你启动的那个 bundle。