# 解除安裝 Homebrew 前，先把套件清單留下來

> 官方解除安裝腳本會一併帶走 Cellar 與 Caskroom，所以先匯出 formula 清單，並保留它回報無法刪除的路徑

Published: 2026-08-04 | Updated: 2026-08-08

Homebrew 提供官方解除安裝工具，而且它確實會做到它所說的事。意外之處在於範圍：它會移除 Homebrew，也會移除 Homebrew 所安裝的內容，而這兩件事，會依你來這裡的原因而有完全不同的重量。

若你是為了回收磁碟空間而來，這通常是大多數開發者 Mac 上單次回收量最大的一項。若你只是因為某個 formula 出問題，這遠比你需要的還多。

## 官方解除安裝程式

```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
```

執行前請先讀完腳本。它不長，而且是即將發生之事的權威說明，這比任何文章都更有資格下定論。

它支援 `--dry-run`，在你在意的機器上，這才是正確的第一次呼叫：它會列出將被刪除的內容，且不做任何變更。

## 腳本實際會刪除什麼

解除安裝工具會移除 Homebrew 的 prefix 及其底下目錄：`bin`、
`etc`、`include`、`lib`、`opt`、`sbin`、`share`、`var`、`Frameworks`，以及
`Cellar` 與 `Caskroom`。

後兩者才是重點。Cellar 是每個 formula 檔案所在之處，Caskroom 則放著 cask 的中繼資料。移除 Homebrew 就會一併移除它們，所以你透過它安裝的每一個命令列工具也會同時消失。

它還會清除 `~/Library/Caches/Homebrew` 與 `~/Library/Logs/Homebrew`、系統層級的 Homebrew 快取、`/etc/paths.d/homebrew`，以及位於 `/Applications` 與 `~/Applications` 中由 Homebrew 管理的應用程式。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/homebrew-uninstall-scope.webp" width="1360" height="454" loading="lazy" alt="解除安裝工具會移除包含 Cellar 與 Caskroom 在內的 Homebrew prefix，以及快取與日誌；套件本身寫入的設定與 shell profile 中的列則會保留。">
  <figcaption>腳本帶走的是套件本身，而不只是套件管理器。它留下的是那些套件寫入的設定，以及你加在 shell profile 裡的那幾行。</figcaption>
</figure>

## 移除前先記錄你已安裝的項目

清單在之後無法還原，而取得它只需要一條指令：

```
brew leaves > ~/Desktop/brew-formulae.txt
brew list --cask > ~/Desktop/brew-casks.txt
```

`brew leaves` 列出的是你明確安裝的 formula，而不是背後一併拉進來的每一個相依套件，這才是重建時真正需要的清單。在新機器上，這兩個檔案能把一整天的回想，變成一行 `brew install`。

套件存放在自身目錄之外的東西會留下來，也值得保留：Postgres 的資料目錄、位於 `/opt/homebrew/var` 底下的本機資料庫、家目錄裡的設定。解除安裝工具會移除 prefix 底下的 `var`，所以住在那裡的資料庫也會一起消失。若它很重要，請先複製出去。

## 結尾那段常被滑過的訊息

腳本結束時，可能會印出部分可能屬於 Homebrew 的檔案未被刪除，以及你或許想自行移除它們，後面跟著路徑清單。

那些路徑只會在那裡被點名。通常是因為 Homebrew 未建立的目錄權限問題，清單也不長。關掉終端機之前先複製起來，因為在已經移除的安裝上重跑解除安裝工具，不會再產生這份清單。

## 你的 shell 設定檔仍提及它

解除安裝工具不會編輯 `.zprofile`、`.zshrc` 或 `.bash_profile`。你在安裝時加入的 `eval
"$(/opt/homebrew/bin/brew shellenv)"` 那一行會留著，之後每一個新 shell 都會試著執行一個已經不存在的二進位檔。

這無害，但很吵。刪掉那一行即可；若你打算重裝，也可以先留著。

## 先想想你是否其實只需要較小的操作

多數想解除安裝 Homebrew 的理由，其實用更窄的操作就夠了。`brew
cleanup` 會回收舊版本與已快取的下載。`brew uninstall <formula>` 只移除單一項目。`brew autoremove` 會清掉已無人需要的相依套件。無論你跑哪一個，[Mole](https://mole.fit/zh/) 都能顯示 prefix 在操作前後的體積，而這個數字，才決定完整移除是否真有必要。

## 從匯出清單重建

一旦在新機器上安裝好 Homebrew，以下兩道指令就能還原你原本的環境：

```
xargs brew install < brew-formulae.txt
xargs brew install --cask < brew-casks.txt
```

兩者必須分開執行，因為 cask 需要加上 `--cask`；若混在同一份清單，會有半數項目安裝失敗。

這套做法能成立，關鍵在用 `brew leaves` 而不是 `brew list`。`brew list` 會把相依套件也列進去，若照這份清單重裝，等於明確安裝數百個本來會自動帶入的套件；之後 `brew autoremove` 也不會再清理它們，因為你是用名稱點名安裝的。`brew leaves` 只回傳你實際安裝過的項目，相依關係則交給 Homebrew 處理。

---

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