如何仅更新已安装 Homebrew 软件包的*次要*版本颠簸?

问题描述

我想过滤 brew upgrade认情况下,将所有已安装的软件包升级到最新版本)以仅自动更新“chaff” - 任何出现小问题的软件包,为此我懒得看更改说明或担心。

功能由 Homebrew 团队 proposed but rejected 提供;这里的目标是在 Homebrew 外部编写此脚本,因此不需要对上游感兴趣。

解决方法

我正在使用这个 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,这将更新其他所有内容;小心!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...