brew cleanup -s とは?Mac の Homebrew キャッシュを安全に削除
AskClean チーム · 更新日 2026-11-02
何かを変更する前に brew cleanup -n を実行してください。通常の brew cleanup は、古いロックファイル、期限切れのダウンロード、インストール済み formula の旧バージョンを削除し、HOMEBREW_NO_AUTOREMOVE を設定していない限り、不要になった依存 formula もアンインストールします。-s(--scrub)を付けるとさらに範囲が広がり、最新バージョンのキャッシュ済みダウンロードも削除します。取得したもののインストールしなかったパッケージや、その後アンインストールしたパッケージのものが該当します。まだインストールされているパッケージのダウンロードは、-s を付けても付けなくても残ります。使用中のキャッシュの場所は brew --cache で確認します。

キャッシュ・旧 keg・現行ツールを分ける
Homebrew のダウンロードキャッシュには、bottle、ソースアーカイブ、cask のダウンロードが入っています。macOS での既定の場所は ~/Library/Caches/Homebrew ですが、HOMEBREW_CACHE で変更できます。これらのダウンロードは通常、必要になれば再取得できます。一方、formula はバージョンごとの keg として Cellar に、cask は Caskroom にインストールされ、現行版へのリンクは prefix の下にあります。brew --cache、brew --cellar、brew --caskroom、brew --prefix で実際の場所を確認し、/opt/homebrew や /usr/local と決めつけないでください。Cellar、Caskroom、prefix、Brewfile、ドットファイル、サービス、データベース、プロジェクトはキャッシュではなく、まとめて削除してよいものではありません。
ドライランで削除候補をすべて確認する
du -sh "$(brew --cache)" で使用中のキャッシュを測り、brew cleanup -n を実行します(-n は --dry-run と同じです)。プレビューには、期限切れのダウンロード、インストール済み formula の旧バージョン、そして「Would autoremove」の下に Homebrew がアンインストールする依存 formula が表示されます。よく使うツールが含まれていたら brew list --versions と照らし合わせ、スクリプトやロールバックで古い keg を使っていないか確認します。プレビューはバックアップではありません。Homebrew が削除したものはゴミ箱に入らず、同じ旧バージョンが後で入手できるとも限りません。
- brew --cache を実行し、表示されたダウンロードキャッシュを du -sh "$(brew --cache)" で測ります。
- brew cleanup -n を実行し、提案されたダウンロード、formula の旧バージョン、「Would autoremove」の候補をすべて確認します。
- brew list --versions で必要な現行版と旧版を確認し、ネットワーク、プロキシ、配布元の状況から、後で再ダウンロードできることを確かめます。
- 通常の保守には brew cleanup を使い、brew cleanup -s や brew cleanup --prune=all は、それぞれ brew cleanup -n -s、brew cleanup -n --prune=all でプレビューを確認してから実行します。依存 formula を自動でアンインストールさせたくない場合は、先に HOMEBREW_NO_AUTOREMOVE を設定します。
- キャッシュを測り直し、brew cleanup -n と brew list --versions を実行して、Homebrew で入れた重要なツールが動くことを確かめます。
brew cleanup -n は削除予定を確認するためのもので、バックアップではありません。Homebrew が旧 keg やキャッシュを削除した後、同じバージョンが配布元から再取得できることや、macOS のゴミ箱に残ることは保証されません。
範囲を選ぶ:brew cleanup、-s、--prune=all
プレビューを確認したら、通常の保守には brew cleanup を使います。既定では 120 日より古いダウンロードが削除候補になります。brew cleanup -s(--scrub)は新しいダウンロードまで対象を広げ、インストールされていないパッケージ(取得しただけでインストールしなかったものや、その後アンインストールしたもの)については最新バージョンのダウンロードも削除しますが、インストール済みの formula と cask のダウンロードは残します。-s は「安全(safe)」や「サイレント」、「キャッシュを全部消す」という意味ではありません。brew cleanup --prune=all は、経過日数に関係なくキャッシュファイルを削除します。どの組み合わせも、事前に brew cleanup -n -s や brew cleanup -n --prune=all で確認してください。後のインストールでは bottle、アーカイブ、大きなインストーラを再ダウンロードすることになり、cleanup が古い keg を削除すると、まったく同じバージョンへのロールバックが難しくなることもあります。
autoremove とユーザーデータは別に判断する
brew autoremove はキャッシュの整理ではなく、Homebrew が不要と判断した依存 formula をアンインストールするコマンドです。スクリプトがそのツールを直接呼び出していることもあります。引数なしの brew cleanup も、HOMEBREW_NO_AUTOREMOVE を設定していない限り同じ削除を行います。依存 formula を残したい場合は先にこの変数を設定し、brew autoremove を検討するなら --dry-run で別に確認してください。prefix、Cellar、Caskroom、設定ファイルを手作業で削除したり、Homebrew のキャッシュを消すために ~/Library/Caches フォルダごと削除したりしないでください。整理後はキャッシュを測り直し、brew cleanup -n と brew list --versions を実行して、重要なコマンドを起動します。AskClean は Homebrew のキャッシュを 1 つの項目として表示でき、確定するとゴミ箱に移動せず完全に削除します。Cellar の古い keg は整理しないため、パッケージ単位の判断には Homebrew 自身のドライランを使ってください。
削除判断と復旧コスト
brew cleanup -s(--scrub)で何が消えるかを解説します。brew cleanup -n で事前に確認してから、Homebrew の古いダウンロードと旧バージョンを削除し、現行のツールと設定を守る方法をまとめました。
| 項目・操作 | 確認する場所 | 削除・操作後の結果 |
|---|---|---|
| キャッシュ・旧 keg・現行ツールを分ける | brew --cache | Homebrew のダウンロードキャッシュには、bottle、ソースアーカイブ、cask のダウンロードが入っています。 |
| ドライランで削除候補をすべて確認する | brew cleanup -n | du -sh "$(brew --cache)" で使用中のキャッシュを測り、brew cleanup -n を実行します(-n は --dry-run と同じです)。 |
| 範囲を選ぶ:brew cleanup、-s、--prune=all | brew cleanup / brew cleanup -s / brew cleanup --prune=all | プレビューを確認したら、通常の保守には brew cleanup を使います。 |
| autoremove とユーザーデータは別に判断する | brew autoremove --dry-run(キャッシュ整理とは別) | brew autoremove はキャッシュの整理ではなく、Homebrew が不要と判断した依存 formula をアンインストールするコマンドです。 |
よくある質問
brew cleanup -s とは何ですか?
-s は --scrub の短縮形です。インストールされていないパッケージ、たとえば取得しただけでインストールしなかったものや、その後アンインストールしたものについては、最新バージョンのキャッシュ済みダウンロードも削除します。インストールしたままの formula と cask のダウンロードは残ります。実行する前に brew cleanup -n -s で候補を確認してください。
brew cleanup は安全ですか?
Homebrew が提供する保守コマンドですが、期限切れのダウンロードだけでなく、インストール済み formula の旧バージョンも削除します。さらに HOMEBREW_NO_AUTOREMOVE を設定していない限り、不要になった依存 formula もアンインストールします。必ず先に brew cleanup -n で確認し、古い keg や一覧に出た依存 formula を使うワークフローがないことを確かめてください。
brew cleanup --prune=all は何を削除しますか?
経過日数に関係なくキャッシュファイルを削除する方針で cleanup を実行します。通常の cleanup と同じく、古いロックファイルや formula の旧バージョンも削除されます。正確な対象は brew cleanup -n --prune=all で確認し、後のインストールや再インストールでは再ダウンロードが必要になると考えてください。
参考資料