# Mac 上用 brew cleanup 與 autoremove 清理 Homebrew

> 先預覽 brew cleanup、檢查下載快取，再安全使用 brew autoremove；不要手動刪除 Cellar、Caskroom 或快取目錄。

Published: 2026-06-25 | Updated: 2026-09-05

Homebrew 會在安裝和升級時清理相關舊版本，也會定期執行全域清理，長期使用後，下載快取、固定版本、建置產物和舊依賴仍可能累積。手動刪除目錄會繞過 Homebrew 的版本與依賴紀錄，用它自己的指令檢視和清理會更穩妥。

## Homebrew 會留下什麼

- **舊版本：** cleanup 通常會刪除被取代版本，但固定或剛升級的版本可能繼續保留一段時間
- **下載封存：** bottle 與 cask 下載會進入快取，避免再次下載
- **未使用依賴：** 目前 cleanup 和 uninstall 通常會自動移除不再需要的 formula 依賴。舊安裝、中斷操作或關閉自動移除後仍可能有殘留

檢視快取位置和大小：

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

## 先預覽，再清理

以下是實際執行清理的指令，先不要執行，先看後面的預覽步驟：

```
brew cleanup
```

目前 [Homebrew 手冊](https://docs.brew.sh/Manpage#cleanup-options-formulacask-)說明，一般 cleanup 預設移除舊安裝版本和超過 120 天的下載，`HOMEBREW_CLEANUP_MAX_AGE_DAYS` 可以調整保留時間。先用 `-n` 預覽。`-s` 會更深入地清理快取，但仍保留目前已安裝 formula 和 cask 所需的下載：

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

想單獨檢查未使用的相依套件時，先執行以下第一條預覽，確認列出的套件沒有被自己的腳本或專案直接使用，再單獨執行第二條刪除：

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

`brew list` 列出已安裝套件，`brew outdated` 顯示待更新項目，`brew --cellar`、`brew --caskroom` 和 `brew --cache` 則會回傳實際路徑。Intel 與 Apple 晶片的安裝位置不同，寫死 `/opt/homebrew` 容易找錯目錄。

## 分開測量三個儲存區

一個總數會掩蓋三種不同決策。清理前先記錄已安裝 formula、cask 中繼資料和下載快取各占多少：

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

快取大最容易回收，因為 Homebrew 可以重新下載。Cellar 大多是已安裝軟體，`cleanup` 只能移除被取代的版本。Caskroom 很大也不表示 App 本體在那裡，cask App 通常位於 `/Applications`。清理後再執行同一命令，確認究竟哪一處變小。

## 安全來自版本與依賴紀錄

Homebrew 的清理讀的是自己的版本與依賴紀錄，比手動刪除 Cellar 目錄可控得多，但可控不等於沒有代價，留著回復用的舊版本或準備離線安裝的 bottle 都可能一起被清掉。`brew cleanup` 和 `brew autoremove` 各預覽一次，固定版本和關鍵工具鏈要主動留住。

## 為什麼不用 Finder 手動刪

Homebrew 會把 formula 的每個版本安裝到 `brew --cellar` 回傳的 Cellar，再把目前版本連結到前綴。升級時，新舊版本會先並存，然後作用中的連結才切換。cask 中繼資料位於 Caskroom，應用程式套件通常在 `/Applications`。下載則保存在 `brew --cache` 回傳的位置。

`brew cleanup` 會根據安裝版本、保留策略和依賴關係選擇對象，`brew autoremove` 只處理依賴判斷。它們比手動刪目錄安全，但仍可能移除用於回復的舊版本或離線安裝所需的 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 符號連結指向目前版本，cleanup 移除被取代的版本與舊的快取下載">
  <figcaption>Homebrew 根據 Cellar 版本、作用中的連結和快取紀錄判斷哪些內容已經被取代。</figcaption>
</figure>

## 其他工具應該停在哪裡

磁碟地圖可以找出 Homebrew 快取並顯示大小，[Mole](https://mole.fit/tw/) 也能展示這一類別，版本和依賴關係仍以 Homebrew 自己的紀錄為準，找到位置並不等於已經知道能否刪除。

## 安全的清理順序

路徑指令能說明各儲存實際有多大，`brew cleanup -n` 能預覽一般清理的候選項目；考慮 `-s` 時，也要替該模式加上預覽選項，重新確認範圍，不能把一般預覽當成更大範圍的刪除清單。相依關係可以單獨用 `brew autoremove --dry-run` 檢查，自動清理正常、磁碟空間充足時，沒有必要設定固定週期。

---

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