モヒカンは正義

プログラマー風林火山で言う「風のエンジニア」になりたい(比較的)若者Webエンジニアの備忘録

30日間brew cleanupしてなかったらbrew upgradeのついでに実行されるようになっていた

僕は仕事でもプライベートでも開発環境として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 からっぽい。

github.com

このissueで自動的に brew cleanup を実行すべきでは?という議論がなされての結果らしい。

github.com

PRとしてはこれかな

github.com

HOMEBREW_NO_INSTALL_CLEANUPという環境変数でオプトアウトもできるらしい。