brew cask でインストールされているアプリを全てアップデートする


homebrew-cask で upgradeコマンドがあるが、最新バージョンがアップデートされない。
いちいちformula名を指定するとアップデートできる場合もあるが、一つ一つ指定するのは面倒臭い。

そんな時は、--greedyを引数にするそうです。
(他の方法で今までやってたんですが、@dotさんの情報で、--greedy すれば良いことがわかりました。)

% brew cask upgrade --greedy

ただし上記コマンドだと、Warning: Calling brew cask upgrade is deprecated! Use brew upgrade --cask instead.と警告が出るようになりました。

今後は以下のようにするべきでしょうか。

% brew upgrade --cask --greedy

man cask upgradeでも書かれてましたね。

--greedy
              Upgrade casks with auto_updates or version :latest

因みに、普通にbrew cask upgrade で最新バージョンにアップデートできないソフトウェアがある理由ですが、ソフトウェア自体でアップデート機能を持つものは、ソフトウェア自体に任せるスタンスらしいです。

まあ、個人的にはバージョン管理もbrew上で合わせたいので、このコマンドで強制的にアップグレードした方がいいかな・・・

ということで、以下の情報は間違いです! まあ動くけど・・










???まてよ「単純にformula名リストを指定すればいいんじゃね?」

~~## formula名リストを指定して、brew cask upgrade

$ brew cask upgrade `brew cask list`

補足:もちろんグレイヴ・アクセントではなく、xargを利用してもいいと思う。

$ brew cask list | xargs brew cask upgrade

ただし、この方法だと強制的にアップデートしてしまうので、以下のコマンドで事前にチェックした方が良さげ。

アップデートする前にチェックだけする

$ brew cask upgrade --dry-run `brew cask list`

結果: アップデートなしの場合

==> No Casks to upgrade

結果: アップデートありの場合

==> Would upgrade 2 outdated packages:
skype 8.51.0.72 -> 8.51.0.92, thunderbird 60.8.0 -> 68.0

事前にアップデートをチェックできれば安心。(なぜbrew cask upgradeだけではこの情報がピックアップできないのか謎)

以上