はじめに

Macで開発環境を整えるなら、今や「Homebrew」は欠かせないツールですよね。

brew install ... とコマンドを一つ叩くだけで、必要なソフトウェアやライブラリを簡単に導入できるのは本当に便利です。

ですが、一度インストールしたパッケージ、そのまま放置していませんか?

実は、Homebrewで管理しているツールを古いまま放置しておくと、

  • セキュリティ上の脆弱性が残ってしまう
  • 新しいバージョンで修正されたはずのバグが修正されない
  • 使われなくなった古いバージョンが溜まり、Macのストレージ容量を圧迫する

といったデメリットがあります。

この記事では、Homebrew環境を常に「安全」かつ「クリーン」な状態に保つためのメンテナンスを習慣化する方法を紹介します。

その鍵となるのが、brew update, brew upgrade, brew cleanup という3つのコマンドです。

「これらの違いがよくわからない」「いつも何となく実行している」という方も、この記事を読めばそれぞれの役割がスッキリ理解できます。
ぜひ最後まで読んで、快適なHomebrewライフを手に入れましょう!

Homebrewメンテナンスの「鉄板コマンド」

早速結論からいきましょう。
Homebrew環境を安全かつクリーンに保つために、定期的に実行すべきコマンドはこちらです。

$ brew update && brew upgrade && brew cleanup

「あれ、brew update だけでいいんじゃないの?」「&& って何?」と思うかもしれませんね。

&&は、「前のコマンドが正常に成功したら、次のコマンドを実行する」というシェルの機能です。

つまりこの一行は、

  1. brew update(パッケージリストの更新)を実行し、
  2. それが成功したらbrew upgrade(パッケージ本体の更新)を実行し、
  3. それも成功したらbrew cleanup(古いバージョンの掃除)を実行する

という、非常に安全で合理的な流れになっています。

とはいえ、このコマンドを「おまじない」のようにただ実行するだけでは、何が起きているか不安ですよね。

次のセクションで、update, upgrade, cleanup の3つが、それぞれ具体的に何をしているのか、なぜこの順番がベストなのかを詳しく解説します。

update, upgrade, cleanup の違いを徹底解説

updateupgrade は名前が似ているため混同しがちですが、役割はまったく異なります。

「スーパーマーケットでの買い物」に例えると分かりやすいですよ。

📦 brew update:最新の「特売チラシ」を受け取る

  • 役割: Homebrewが管理しているパッケージの「リスト」自体を最新の状態に更新します。
  • 例え: スーパーに行って、まず「今日の特売品リスト」が載った最新のチラシを受け取るイメージです。
  • ポイント: これだけでは、あなたのMacにインストールされているパッケージ(アプリ本体)は一切更新されません。「〇〇の新しいバージョンが出たよ」という情報を知るだけの段階です。

💻 brew upgrade:古い商品を「新しい商品」に買い替える

  • 役割: update で得た最新のチラシ情報をもとに、PCにインストールされているパッケージ本体を、新しいバージョンにアップグレード(再インストール)します。
  • 例え: 最新のチラシを見て、「あ、うちにある牛乳、古いやつだ。新しい牛乳に買い替えよう」と、実際に商品(パッケージ)を入れ替えるイメージです。
  • ポイント: update を先に実行しないと、Homebrewは最新情報を知らないため、brew upgrade を実行しても「(古い情報のままなので)すべて最新です」と判断されてしまいます。

💡 Tips 1: upgrade の前に確認する brew outdated

いきなり upgrade を実行するのが怖い場合は、まずこのコマンドを叩いてみましょう。

$ brew outdated

upgrade 可能なパッケージ(古くなっているパッケージ)の一覧だけを表示してくれます。

💡 Tips 2: upgrade したくないパッケージを固定する brew pin

「このツールだけは、業務で使うからバージョンを固定したい!」という場合もありますよね。
その場合は pin(ピン留め)コマンドが便利です。

# 例: mysqlを現在のバージョンで固定する
$ brew pin mysql

こうすることで、brew upgrade を実行しても mysql はアップグレードの対象から除外されます。
(解除する場合は brew unpin mysql です)

🧹 brew cleanup:不要になった「古い空き箱」を掃除する

  • 役割: upgrade によって不要になった、古いバージョンのパッケージファイル(ダウンロードされたファイルや古い本体)を削除します。
  • 例え: 新しい牛乳を買ってきた後、冷蔵庫に残っている古い(飲み終わった)牛乳パックや段ボールをゴミ箱に捨てるイメージです。
  • ポイント: Homebrewは安全のため、upgrade しても古いバージョンをすぐには消しません(万が一、新しいバージョンにバグがあった時に戻せるように)。しかし、これらが溜まっていくとディスク容量を圧迫するため、定期的に cleanup で掃除することが推奨されます。

なぜ update && upgrade && cleanup の順番なのか?

もうお分かりですね。 この updateupgradecleanup という流れは、

  1. 最新のチラシ(情報)をもらい (update)
  2. チラシを見て、商品を新しいものに入れ替え (upgrade)
  3. 入れ替えが終わって不要になった古いゴミを捨てる (cleanup)

という、買い物の流れそのものです。 && で繋ぐことで、この合理的で安全な手順を自動で実行できる、というわけです。

💡 さらに詳しく知りたい方へ

この記事では、メンテナンスに必要な基本的な使い方に絞って解説しました。

upgrade 時に特定のパッケージだけ除外する方法や、cleanup の詳細なオプションなど、各コマンドのより高度な使い方を知りたい方は、Homebrewの公式ドキュメントもあわせて参照してみてください。

さいごに

今回は、Homebrew環境を常に「安全」「最新」「クリーン」に保つためのメンテナンス術を解説しました。

もう一度、3つのコマンドの役割をおさらいしましょう。

  • brew update
    • パッケージの「カタログ」を最新にする
  • brew upgrade
    • カタログに基づき、「パッケージ本体」を最新版に入れ替える
  • brew cleanup
    • 入れ替えによって不要になった「古いバージョン」を掃除する

そして、これらを一括で安全に実行するコマンドがこちらです。

$ brew update && brew upgrade && brew cleanup

開発環境は、一度構築したら終わりではありません。
定期的にこのコマンドを実行する「習慣」を身につけ、脆弱性やディスク容量圧迫のリスクがない、快適なHomebrewライフを送りましょう!