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

キャッシュ・旧 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 をロールバックや固定パスのスクリプトが使っていないか確認します。ドライランはバックアップではなく、実行後の項目がゴミ箱や配布元に残る保証もありません。
- brew --cache を実行し、du -sh "$(brew --cache)" で使用中のダウンロードキャッシュを測定します。
- brew cleanup -n を実行し、候補になったダウンロードと formula の旧バージョンをすべて確認します。
- brew list --versions で必要な現行版と、ロールバックや固定ワークフローに使う旧版を特定します。
- 通常の保守なら brew cleanup、全キャッシュを消すなら brew cleanup -n --prune=all の確認後に brew cleanup --prune=all を実行します。
- キャッシュと空き容量を再測定し、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 --cache | 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 | brew 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 を確認し、直接使うツールが含まれない場合だけ検討します。
参考資料