AskCleanAskClean

Mac の Homebrew キャッシュと旧バージョンを安全に整理する方法

AskClean チーム · 更新日 2026-08-05

brew --cache で Homebrew のダウンロードキャッシュを特定し、変更前に brew cleanup -n を実行してください。通常の brew cleanup は不要になったロックファイル、期限切れのダウンロード、インストール済み formula の旧バージョンを削除します。brew cleanup --prune=all は経過日数を問わずキャッシュを広く消すため、再ダウンロードと旧バージョンへ戻せなくなる可能性を受け入れられる場合だけ使います。

棚に残すボトル状のパッケージと保管箱、手前の回収箱へ分けられた不要なボトル
Homebrew のストレージを一括で扱わず、再取得できるダウンロード、削除候補の旧バージョン、残す現行ツールに分けて確認します。

キャッシュ・旧 keg・現行ツールを分ける

Homebrew のダウンロードキャッシュには bottle、ソースアーカイブ、cask の取得物があり、既定は ~/Library/Caches/Homebrew ですが HOMEBREW_CACHE で変更できます。formula のバージョン別 keg は Cellar、cask は Caskroom、現行リンクは prefix 側にあり、単なるキャッシュではありません。brew --cache、brew --cellar、brew --caskroom、brew --prefix で実際の場所を確認し、決め打ちの /opt/homebrew や /usr/local を削除しないでください。

ドライランで削除候補を監査する

brew cleanup -n は変更を加えず、Homebrew が削除するダウンロードと formula の旧バージョンを表示します。サイズだけでは、再取得できる bottle、現行 keg、cask、ユーザー設定を区別できません。brew list --versions と照合し、旧 keg をロールバックや固定パスのスクリプトが使っていないか確認します。ドライランはバックアップではなく、実行後の項目がゴミ箱や配布元に残る保証もありません。

  1. brew --cache を実行し、du -sh "$(brew --cache)" で使用中のダウンロードキャッシュを測定します。
  2. brew cleanup -n を実行し、候補になったダウンロードと formula の旧バージョンをすべて確認します。
  3. brew list --versions で必要な現行版と、ロールバックや固定ワークフローに使う旧版を特定します。
  4. 通常の保守なら brew cleanup、全キャッシュを消すなら brew cleanup -n --prune=all の確認後に brew cleanup --prune=all を実行します。
  5. キャッシュと空き容量を再測定し、brew cleanup -n と Homebrew で導入した重要なコマンドで結果を検証します。

brew cleanup -n は削除予定の確認であってバックアップではありません。Homebrew が旧 keg やキャッシュを削除した後、同じ版が配布元から再取得できることや、macOS のゴミ箱に残ることは保証されません。

目的に合う cleanup だけを実行する

通常は brew cleanup で、現在の経過日数・パッケージ規則に基づく保守を行います。全キャッシュを経過日数に関係なく消す必要がある場合は、先に brew cleanup -n --prune=all を確認してから brew cleanup --prune=all を実行します。後者では次回のインストール・再インストール・ソースビルドで bottle、アーカイブ、大容量インストーラを再取得します。旧 keg も通常の cleanup 対象になり得るため、完全に可逆とは考えないでください。

autoremove とユーザーデータは別に判断する

brew autoremove はキャッシュ整理ではなく、不要と判定された依存 formula をアンインストールします。検討する場合も brew autoremove --dry-run から始め、スクリプト、ビルド、サービスが直接使うツールを確認します。Brewfile、ドットファイル、証明書、データベース、サービスの状態、プロジェクトはユーザーデータです。整理後は brew cleanup -n、du -sh "$(brew --cache)"、brew list --versions を再実行し、重要なコマンドを起動してください。

削除判断と復旧コスト

brew cleanup の事前確認を使い、Homebrew のダウンロードとインストール済み formula の旧バージョンを整理しながら、現行ツール、依存関係、設定を守ります。

項目・操作確認する場所削除・操作後の結果
キャッシュ・旧 keg・現行ツールを分けるbrew --cacheHomebrew のダウンロードキャッシュには bottle、ソースアーカイブ、cask の取得物があり、既定は ~/Library/Caches/Homebrew ですが HOMEBREW_CACHE で変更できます。formula のバージョン別 keg は Cellar、cask は Caskroom、現行リンクは prefix 側にあり、単なるキャッシュではありません。brew --cache、brew --cellar、brew --caskroom、brew --prefix で実際の場所を確認し、決め打ちの /opt/homebrew や /usr/local を削除しないでください。
ドライランで削除候補を監査するbrew cleanup -nbrew cleanup -n は変更を加えず、Homebrew が削除するダウンロードと formula の旧バージョンを表示します。サイズだけでは、再取得できる bottle、現行 keg、cask、ユーザー設定を区別できません。brew list --versions と照合し、旧 keg をロールバックや固定パスのスクリプトが使っていないか確認します。ドライランはバックアップではなく、実行後の項目がゴミ箱や配布元に残る保証もありません。
目的に合う cleanup だけを実行するbrew cleanup / brew cleanup --prune=all通常は brew cleanup で、現在の経過日数・パッケージ規則に基づく保守を行います。全キャッシュを経過日数に関係なく消す必要がある場合は、先に brew cleanup -n --prune=all を確認してから brew cleanup --prune=all を実行します。後者では次回のインストール・再インストール・ソースビルドで bottle、アーカイブ、大容量インストーラを再取得します。旧 keg も通常の cleanup 対象になり得るため、完全に可逆とは考えないでください。
autoremove とユーザーデータは別に判断するbrew autoremove --dry-run(キャッシュ整理とは別)brew autoremove はキャッシュ整理ではなく、不要と判定された依存 formula をアンインストールします。検討する場合も brew autoremove --dry-run から始め、スクリプト、ビルド、サービスが直接使うツールを確認します。Brewfile、ドットファイル、証明書、データベース、サービスの状態、プロジェクトはユーザーデータです。整理後は brew cleanup -n、du -sh "$(brew --cache)"、brew list --versions を再実行し、重要なコマンドを起動してください。

よくある質問

brew cleanup は安全ですか?

Homebrew が提供する保守コマンドですが、期限切れのダウンロードだけでなくインストール済み formula の旧バージョンも削除します。必ず brew cleanup -n で確認し、旧 keg を使うワークフローがないことを確かめてください。

brew cleanup --prune=all は何を削除しますか?

キャッシュの経過日数に関係なく削除対象を広げ、通常の cleanup に含まれる不要なロックファイルや formula の旧バージョンも処理します。実行前に brew cleanup -n --prune=all で正確な対象を確認してください。

brew autoremove も続けて実行すべきですか?

自動では実行しません。これはキャッシュではなく依存 formula のアンインストールです。別の判断として brew autoremove --dry-run を確認し、直接使うツールが含まれない場合だけ検討します。

参考資料

開発者ストレージの整理を続ける