Homebrew のパッケージの更新に昔は brew update; brew upgrade; brew cleanup と 3 コマンドを使っていましたが、今は brew upgrade --cleanup だけでよくなっています。

2019-09-15 追記

しばらく変化がないか、経過を待っていましたが、 結局 brew upgrade だけで 30 日以上古いものが自動削除されるというのがデフォルトということで、 普通はその挙動に任せればよくなった、という状態で決定のようです。

つまり brew upgrade --cleanup があった頃のようにすぐに古いものを消したければ brew upgrade の後に brew cleanup も実行する必要がある状態に戻ったようです。

自動削除を止めたければ HOMEBREW_NO_INSTALL_CLEANUP=1 で止めることもできます。

2018-01-18 追記

Homebrew 2.0.0 から brew cleanup の自動実行がデフォルトになる予定らしく、 Homebrew 1.9.0 から

Warning: Calling 'brew upgrade --cleanup' is deprecated! Use 'HOMEBREW_INSTALL_CLEANUP' instead.

というメッセージが出るようになっているので、メッセージが不要なら代わりに

env HOMEBREW_INSTALL_CLEANUP=1 brew upgrade

と実行するとか、シェルの設定ファイルに

export HOMEBREW_INSTALL_CLEANUP=1

などと設定すると良いでしょう。

確認バージョン

  • Homebrew 1.1.13

brew update

Debian 系で使われている aptsudo apt-get update に相当するパッケージ情報を更新するサブコマンドです。 基本的には git で更新しているだけなので、こけたら git コマンドを直接使ってなおす必要がありそうです。

今は他のサブコマンドを実行した時に情報が古ければ自動で更新されるので不要になっています。

brew upgrade

パッケージを更新するサブコマンドです。

古いバージョンも残るので、 gem update に近いような気がします。

brew cleanup

古いバージョンを消したり、ダウンロードしたファイルのキャッシュを消したりします。

brew upgrade --cleanup のように upgrade サブコマンドに --cleanup オプションをつけると upgrade 中に削除してくれるようです。 (例えば 2 個更新があった時に、更新、削除、更新、削除になる。)

後から brew cleanup するのと違って upgrade 中に削除してくれるので、何が削除されたのかの確認はしにくくなったり、問題が起きた時に戻しにくくなったりという欠点はありますが、一時的に空き容量が減るのが緩やかになったり、消し忘れがなくなるなどの利点があると思います。

まとめ

brew update; brew upgrade; brew cleanup と 3 コマンドを連続で使っている人は、 brew upgrade --cleanup だけに置き換えると便利です。

Disqus Comments

Kazuhiro NISHIYAMA

Ruby のコミッターとかやってます。 フルスタックエンジニア(って何?)かもしれません。 About znzに主なアカウントをまとめました。

znz znz


Published