僕は仕事でもプライベートでも開発環境としてMacBookを使っているのですが、毎朝 brew upgrade
コマンドを叩いています。今日は何が上がったかな?を確かめるのが日課です。これをせずにbrew installをした日にはたくさんのupgradeが走ってめちゃめちゃ待たされますからね・・・。
で、昨日おもむろに brew upgrade
を叩いたら、やけに長いログが...。
$ brew upgrade ... ==> Upgrading 1 outdated package: typescript 3.2.4 -> 3.3.1 ==> Upgrading typescript ==> Downloading https://homebrew.bintray.com/bottles/typescript-3.3.1.high_sierr ######################################################################## 100.0% ==> Pouring typescript-3.3.1.high_sierra.bottle.tar.gz 🍺 /usr/local/Cellar/typescript/3.3.1: 86 files, 41.0MB ==> `brew cleanup` has not been run in 30 days, running now... ずらずらずら.....
_人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人_
> brew cleanup
has not been run in 30 days, running now... <
 ̄YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY^ ̄
どうやら、30日間brew cleanupしてなかったらbrew upgradeをトリガーに実行されるようになったらしい。
brewはinstallやupgradeするたびに以前のバージョンをキャッシュしておいてくれます。そのお蔭で「アッ、バージョンアップしたら動かない...!」というときにコマンド一つでバージョンを戻すことができます。
brew cleanup
は、そのキャッシュを削除するコマンドです。ずっと前のバージョンを残していると使わない割にディスク食いますからね。
へーおもしろい変更だなと思って調べてみたら、この仕様になったのは brew v1.9.0 からっぽい。
このissueで自動的に brew cleanup
を実行すべきでは?という議論がなされての結果らしい。
PRとしてはこれかな
HOMEBREW_NO_INSTALL_CLEANUPという環境変数でオプトアウトもできるらしい。