如何安全更新 Mac 上的所有应用
Mac 应用可能来自 App Store、开发者官网、Homebrew、企业管理系统或其他软件包渠道。每种来源都有自己的信任、回退和自动更新规则。检查更新时,第一步应是确认当前应用从哪里安装,再选择对应的升级方式。跨渠道直接替换,可能丢失授权,也可能让一款应用同时出现两个受不同系统管理的副本。
App Store 应用
App Store 只更新通过这个渠道安装的应用。打开 App Store,在侧边栏选择「更新」。自动应用更新位于「App Store > 设置」,它与 macOS 的「软件更新」彼此独立。Apple 的 App Store 更新说明列出了这两条路径。
如果你安装了第三方命令行工具 mas,可以查看它识别出的商店应用:
mas list
没有出现在 mas list 中,不足以证明应用并非来自 App Store。收据状态、账号权限和工具本身的限制,都可能影响结果。
从开发者网站下载的应用
从开发者网站下载的应用可能使用 Sparkle、Electron 更新器、自建服务,也可能只提供手动下载页面。许多应用会在菜单中提供「检查更新」。有些只在应用打开时检查,有些则会安装登录项或后台辅助程序。
直接查看应用自己的更新设置,不要因为下载来源相同,就假定它们拥有相同的更新行为。
Homebrew 应用
Homebrew 管理的 formula 和 cask 会在执行升级命令时发生变化,不过部分通过 cask 安装的图形应用也有自己的更新器。先查看 Homebrew 认为哪些软件已经过期,再升级指定软件包或全部软件包:
brew outdated
brew upgrade wget
把 wget 替换为 brew outdated 返回的 formula 或 cask 名称。也可以不带名称执行 brew upgrade,升级所有过期项目。
Homebrew 会在日常命令前后按自身规则刷新软件包元数据,但已安装的软件只有在请求升级时才会改变。当前的 Homebrew 常见问题还说明了一个与应用自更新有关的边界:Homebrew 能比较部分 cask 的已安装版本,并安全地把它们纳入升级;标记为 version :latest 或安装内容不明确的 cask,可能会被跳过,除非明确使用更激进的选项。
对重要服务和开发工具链进行大范围升级前,先查看 brew info 和不兼容变更说明。
更新 macOS 本身
系统更新与应用更新是两条独立渠道:
softwareupdate -l
也可以打开「系统设置 > 通用 > 软件更新」。让 macOS 保持更新对安全很重要,但它不会替你更新所有第三方应用。
安装前先备份,并确认驱动、虚拟化软件、音频工具和其他系统级软件是否兼容。Apple 的 macOS 更新说明介绍了同一条系统更新渠道,也建议先备份再安装。
安全地更新,而不只是尽快更新
开始大范围更新前:
- 确认有近期且可恢复的备份,并为关键工具保留安装包或归档。
- 阅读发布说明,关注兼容性变化、数据库迁移和最低系统版本调整。
- 确认直接下载来自厂商官网,并且应用已进行代码签名或公证。
- 先更新少量非关键应用,观察启动、文档、插件和后台服务是否正常,再继续下一批。
- 除非你准备主动迁移管理权,否则保持原来的安装渠道。
对于回退机制可靠、兼容记录稳定的应用,自动更新能更及时地带来安全修复。生产工具链、插件宿主、驱动,以及只有固定维护窗口的电脑,更适合分阶段手动更新。
为什么 macOS 没有一个能更新所有应用的按钮
macOS 没有一套覆盖所有第三方应用的统一系统更新服务。App Store 使用 Apple 收据管理商店软件。Sparkle 是官网直装应用常用的更新框架,开发者发布 appcast,应用比较版本,配置正确时还会用 EdDSA 和 Apple 代码签名进行双重验证。Sparkle 的安全说明详细介绍了这两层验证。
Electron 应用和厂商自建更新器使用各自的订阅源。Homebrew 则在 formula 与 cask 中跟踪版本,并根据命令升级。每个渠道都有不同的来源证明和安装规则,所以统一视图必须保留应用来源,而不能把所有更新都压成同一种操作。
统一更新清单有什么用
Mole 的「软件」页面把多种更新渠道汇总到一份清单中,并保留每款应用的来源。它能节省逐个寻找更新入口的时间,但每种更新器仍要遵守应用自己的签名、回退和所有权模型。
统一列表不代表所有更新可以互换,也不代表它们都适合自动执行。
更新时按这个顺序
列出每款应用的安装来源,通过相应渠道检查更新,阅读兼容说明,备份关键状态,再分批更新。每批完成后,用原来的文档和工作流复测。不必一次把所有版本号变成最新,先保证已知可用的环境不被破坏,再逐步补上安全性和兼容性更新。