【问题标题】:How do I update only *minor* version-bumps of installed Homebrew packages?如何仅更新已安装 Homebrew 软件包的 *minor* version-bumps?
【发布时间】:2020-12-28 18:25:01
【问题描述】:
我想过滤brew upgrade(默认情况下,将所有已安装的软件包升级到最新版本)以仅自动更新“箔条” - 任何出现轻微颠簸的软件包,用于我懒得阅读变更说明或担心。
这个功能是由 Homebrew 团队proposed but rejected 提供的;这里的目标是在 Homebrew 外部编写脚本,因此不需要上游兴趣。
【问题讨论】:
标签:
macos
sh
homebrew
versioning
semantic-versioning
【解决方案1】:
我正在使用这个 shell 脚本来为我处理它。它需要 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 (semver --range '~'$current $new >/dev/null);
then >&2 echo "${formula}: $current --> $new"; echo "$formula"; fi
done
)
如果没有要升级的次要软件包,我的解决方案将调用裸brew upgrade,这将更新其他所有内容;小心!