我想过滤
brew upgrade
(默认情况下,将所有安装的软件包升级到最新版本)以仅自动更新“chaff” - 任何出现轻微障碍的软件包,我懒得阅读更改注释或担心。
此功能由 Homebrew 团队提出但遭到拒绝;这里的目标是在 Homebrew 外部编写此脚本,因此不需要上游兴趣。
jq (brew install jq
) 和 npm 中的semver 包。
brew upgrade $(
brew outdated --json | \
jq -r '(.formulae[] | [.name, .installed_versions[-1], .current_version]) | join(" ")' | \
while read -r formula current new; do
if (npx semver --range '~'$current $new >/dev/null);
then >&2 echo "${formula}: $current --> $new"; echo "$formula"; fi
done
)
如果没有要升级的小软件包,我的解决方案将调用裸brew upgrade
,这将更新其他所有内容;小心!