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
だけではこの情報がピックアップできないのか謎)
以上