macOS 中 softwareupdate 命令可静默检查并安装系统更新及命令行工具:sudo softwareupdate -i -a 安装所有推荐/必需更新,sudo softwareupdate -i "Command Line Tools for Xcode" 单独升级 CLI 工具,需 sudo 权限、稳定网络,不安装 beta 版,企业环境可能受限。

在 macOS 中,softwareupdate 是系统自带的命令行工具,用于检查、下载和安装 macOS 系统更新(包括 macOS 本体、安全更新、命令行工具等)。所谓“静默升级”,是指不弹出图形界面、不依赖 App Store、全程通过终端自动完成更新操作。
静默检查并安装所有可用更新
执行以下命令可跳过交互提示,自动下载并安装所有标记为“推荐”或“必需”的更新(含系统更新和命令行工具):
-
sudo softwareupdate -i -a—— 安装所有可用更新(需管理员密码) -
sudo softwareupdate -i -a --restart-application—— 安装后自动重启相关应用(如 Xcode)
注意:-i 表示 install,-a 表示 all。该操作不会强制重启系统,但部分系统级更新安装后会提示需手动重启。
仅升级命令行工具(Xcode Command Line Tools)
开发者常用场景:不升级整个系统,只更新 xcode-select --install 所依赖的 CLI 工具包。可通过以下方式静默完成:
- 先查看是否已有待更新的 CLI 工具:
softwareupdate -l | grep -i "command line" - 若存在匹配项(如 Command Line Tools for Xcode),直接安装:
sudo softwareupdate -i "Command Line Tools for Xcode" - 若名称含空格或版本号变化,可用通配符(macOS 12.3+ 支持):
sudo softwareupdate -i "$(softwareupdate -l | grep -i "command line" | awk -F'*' '{print $2}' | sed 's/^[[:space:]]*//; s/[[:space:]]*$//')"
成功安装后,运行 xcode-select --version 可验证版本是否更新。
静默模式下的关键注意事项
静默升级并非完全“无感”,需留意以下限制与行为:
- 必须使用
sudo,否则权限不足,命令会失败 - 网络需稳定,大更新(如 macOS 版本升级)可能耗时较长,建议在后台运行或配合
nohup -
softwareupdate -i -a不会安装 beta 或开发者预览版,除非已配置对应软件更新频道(如通过defaults write com.apple.SoftwareUpdate CatalogURL ...) - 部分企业环境或 MDM 管理设备可能禁用命令行更新,此时会提示 "No updates are available",即使系统显示有更新
自动化脚本中安全调用建议
若将 softwareupdate 写入部署脚本,推荐增加判断逻辑避免误操作:
- 先检查是否有更新:
softwareupdate -l,再决定是否执行安装 - 添加超时控制(如用
timeout 600 softwareupdate -i -a防卡死) - 记录日志:
sudo softwareupdate -i -a 2>&1 | tee /var/log/softwareupdate.log - 安装后校验:
softwareupdate --history | tail -5查看最近安装记录
不复杂但容易忽略:每次运行前建议先 sudo softwareupdate -l 确认当前状态,避免重复安装或遗漏依赖。










