# Homebrew を安全に整理する

> Homebrew の動的パスを測り、cleanup と autoremove を事前確認し、自動クリーンアップがすでに扱う範囲を理解します。

Published: 2026-06-25 | Updated: 2026-08-08

Homebrew は、以前よりも積極的に古いバージョンやキャッシュ済みのダウンロードを管理します。
自動クリーンアップが無効になっていなければ、インストールやアップグレード時に対象の
formula を整理し、Homebrew は定期的にすべての formula をクリーンアップします。長く使っている
インストール環境でも、ダウンロード、ピン留めされたバージョン、ビルド成果物、依存関係は
たまり得ます。prefix 配下を削除する前に、Homebrew 自身のメタデータを確認してください。

## Homebrew が残しておくもの

次の 3 種類の残り物がたまります。

- **古いバージョン。** クリーンアップは通常、置き換えられたバージョンを削除しますが、保持された
  バージョンや最近アップグレードしたバージョンは、しばらく Cellar に残ることがあります。
- **ダウンロード済みアーカイブ。** bottle と cask のダウンロードはすべて
  Homebrew のキャッシュに保存され、再ダウンロードを避けるために残されます。
- **未使用の依存関係。** 現在の Homebrew のクリーンアップとアンインストール操作は通常、
  不要になった formula を削除します。自動削除が無効になっていない限りです。
  古いインストールや中断された操作では、一部が残ることがあります。

ダウンロードキャッシュのサイズは次のように直接確認できます。

```
brew --cache
du -sh "$(brew --cache)" 2>/dev/null
```

## クリーンアップする

メインのコマンドは、古いバージョンの削除とダウンロードキャッシュの整理を一度に行います。

```
brew cleanup
```

[現行の Homebrew マニュアル](https://docs.brew.sh/Manpage#cleanup-options-formulacask-)
によると、通常のクリーンアップは、デフォルトで古いインストール済みバージョンと
120 日より古いダウンロードを削除します。`HOMEBREW_CLEANUP_MAX_AGE_DAYS` でこの期間を
変更できます。ドライランには `-n` を使います。より踏み込んだ `-s` モードは、
現在インストールされている formula と cask 用のダウンロードは残しつつ、
キャッシュ済みダウンロードをより多く掃除します。

```
brew cleanup -n
brew cleanup -s
```

Homebrew のクリーンアップとアンインストールは、いまでは未使用の formula 依存関係を
デフォルトで削除します。その依存関係の判断を直接確認したいときは、
`brew autoremove` が依然として役立ちます。

```
brew autoremove --dry-run
brew autoremove
```

`brew list` はインストール済みパッケージを、`brew outdated` は未適用の更新を示します。
パスをハードコードする代わりに、`brew --cellar`、`brew --caskroom`、`brew --cache` で
場所を調べてください。`/opt/homebrew` を決め打ちしないこと。Intel と Apple silicon の
インストールでは場所が異なります。

## 設計上の安全性

Homebrew のクリーンアップは、Cellar ディレクトリを手で消すよりリスクが低いです。
バージョンと依存関係のメタデータを使うためです。それでも、ロールバック用のバージョンや
オフラインで使う予定だったキャッシュ済み bottle は削除されることがあります。
クリーンアップと autoremove の両方を事前確認し、ピン留めしたバージョンや運用上重要な
バージョンは意図的に残してください。

## 内部の仕組み：Cellar、Caskroom、クリーンアップの判断

Homebrew は各 formula を、`brew --cellar` が示す Cellar 内のバージョン付きディレクトリに
インストールし、有効なバージョンを prefix へリンクします。アップグレードでは、
シンボリックリンクを張り替える前に、新しいバージョンを古いものの隣に置きます。
cask はバージョン付きメタデータを Caskroom に保持し、アプリ本体は多くの場合
`/Applications` に置かれます。ダウンロードは `brew --cache` が示すパスを使い、
Homebrew の方針に従って保持されます。`brew cleanup` は、単に現行以外のディレクトリを
すべて消すのではなく、インストール済みバージョン、保持期間、依存関係のメタデータを
使います。`brew autoremove` は、依存関係だけの部分を別コマンドとして公開します。
どちらも推測ではなく Homebrew 自身の記録に基づくため、フォルダを手で消すより安全で
説明しやすくなります。古いツールチェーンやオフライン bottle に依存するマシンでは、
事前確認が依然として有用です。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/homebrew-cellar.webp" width="1360" height="454" loading="lazy" alt="Homebrew の Cellar は formula の古い版と現行版を保持し bin のシンボリックリンクは現行版を指し、クリーンアップは置き換えられた版と古いキャッシュ済みダウンロードを削除します">
  <figcaption>Homebrew はバージョン付きの Cellar エントリ、有効なリンク、キャッシュ済みダウンロードを追跡します。クリーンアップはそのメタデータで、置き換えられた成果物を選びます。</figcaption>
</figure>

## ほかのツールが止めるべきところ

ディスクマップやクリーナーは、Homebrew のキャッシュを見つけ、サイズを示すことができます。
[Mole](https://mole.fit/) はそのカテゴリを表示できますが、Cellar のバージョンと依存関係については、
Homebrew 自身のコマンドが依然として権威です。発見と所有権を混同しないでください。

## 安全な作業の順序

Homebrew のパス用コマンドでストアを測り、`brew cleanup -n` で事前確認し、
`-s` を検討する前に通常のクリーンアップを実行してください。`brew autoremove` は
別途事前確認してください。キャッシュの問題ではなく、依存関係の問題に答えるからです。
自動クリーンアップが動いており、ディスク圧が低いときは、固定のクリーンアップ予定は
必要ありません。

---

Canonical HTML page: https://mole.fit/ja/blog/how-to-clean-up-homebrew-mac
Blog index for agents: https://mole.fit/ja/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
