macOS:brew upgrade 不会升级过时的软件

macOS:brew upgrade 不会升级过时的软件

我习惯使用 Debian。但现在我必须时不时地使用装有 macOS 10.14.6(全新安装)的 MacBook。

MacOS 没有 apt-get。因此我下载并安装了 brew。

我安装了如下软件:

brew cask install firefox
brew cask install iterm2

(还有一些其他的东西)

软件运行正常。几天后:

brew update

给了我一份新版本的软件列表。

brew upgrade

升级 iproute2mac 1.2.2 -> 1.2.3

我认为这应该与“apt-get update & upgrade”一样:一切都应该是最新的。那天晚些时候,我发现了新闻“iterm2 < 3.3.6 未保存”(CVE-2019-9535)。我以为“我已经升级了。一切都应该没问题”,事实证明我错了:

brew cask info iterm2 iterm2: 3.3.6 (自动更新) https://www.iterm2.com/ /usr/local/Caskroom/iterm2/3.3.2 (64B)

它已经过时且易受攻击:-(

修复:

brew cask 重新安装 iterm2

作品。

检查火狐浏览器:

> brew cask info firefox
firefox: 70.0 (auto_updates)
https://www.mozilla.org/firefox/
/usr/local/Caskroom/firefox/68.0.1 (64B)

另一个过时的软件 :-(

让我们检查一下更新 Firefox:

> brew cask outdated
(no results)

brew 检查过时的软件不起作用。brew upgrade 不起作用。它没有注意到旧的 iterm2,它们都没有注意到旧的 Firefox。我也在 GUI 中检查了软件更新(苹果徽标 > 关于这台 Mac)。但那里只列出了 Safari。

我如何让“brew upgrade”检测并升级所有过时的软件?

附加问题:在 Debian 下,当软件过期时,我会在 GUI 中收到通知。如何在 macOS 下接收 Firefox、iterm2 和其他软件的此类通知?

答案1

使用 brew 来更新软件包需要单独更新每个已安装的软件包。

最后我找到了解决这个问题的方法。有一个名为“brew-cask-upgrade”的工具可以更好地处理更新:https://github.com/buo/homebrew-cask-upgrade

安装该工具后,您只需要一个简单的命令,该工具将:

  • 更新 brew
  • 搜索(并查找!)过时的软件包
  • 更新那些包

这是一个关于如何使用它以及它如何工作的小例子:

$ brew cu
==> Options
Include auto-update (-a): false
Include latest (-f): false
==> Updating Homebrew
Already up-to-date.
...
==> Found outdated apps
     Cask                       Current        Latest        A/U    Result
1/3  libreoffice                6.3.2          6.3.4              [OUTDATED]
2/3  libreoffice-language-pack  6.3.2          6.3.4              [OUTDATED]
3/3  virtualbox                 6.0.14,133895  6.1.0,135406       [OUTDATED]

Do you want to upgrade 3 apps or enter [i]nteractive mode [y/i/N]? y
==> Upgrading libreoffice to 6.3.4
==> Downloading ...

答案2

我今天在使用 docker 桌面时遇到了同样的问题,发现了这一点:https://docs.brew.sh/FAQ#why-arent-some-apps-included-during-brew-upgrade

因此,如果您正在使用以下latest版本的软件(或者)使用自己的更新功能,您要么需要

  • 使用内置更新功能(firefox、iterm2、docker、telegram 等)
  • 使用brew upgrade <cask>
  • 使用brew upgrade --greedy

我认为使用另一个工具来执行此操作是不必要的,但这取决于你。

相关内容