# 공식 스크립트로 Homebrew 제거하고 목록 남기기

> 공식 제거 스크립트를 --dry-run으로 먼저 확인하고 formula/cask 목록을 내보낸 뒤 PATH 잔여물과 실패 유형을 정리하세요

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

Homebrew에는 공식 제거 스크립트가 있고, 설명한 대로 동작합니다. 진짜로 봐야 할 것은 범위입니다. Homebrew 자체와 Homebrew로 설치한 것을 함께 지우며, 이 두 사실의 무게는 지금 여기 온 이유에 따라 달라집니다.

디스크 공간만 필요하면 지우기 전에 Homebrew가 얼마나 쓰는지 확인하세요. 특정 formula만 문제라면 환경 전체를 지울 필요는 없습니다.

더 나아가기 전에 `brew leaves`와 cask 목록을 적어두세요. 그다음 공식 제거기를 `--dry-run`으로 실행하고, 출력을 삭제 계획처럼 읽으세요. 문제가 한 패키지라면 여기서 멈추고 `brew uninstall`을 쓰거나 [더 안전한 Homebrew 정리 경로](https://mole.fit/ko/blog/how-to-clean-up-homebrew-mac)를 따르세요.

## Homebrew를 제거하면 안 되는 경우

다음 중 하나라도 해당하면 핵옵션은 피하세요.

- formula나 cask 하나가 깨짐: `brew uninstall <name>`을 쓰고, 의존성이 고아가 되면 `brew autoremove`
- 공간만 필요: `brew cleanup -s`는 이전 버전과 다운로드를 지우며 접두사는 남김
- Homebrew에서 온 `git`, `node`, `python`, 데이터베이스 서버, CLI 도구가 아직 필요함. 제거기는 Cellar와 Caskroom도 가져감
- 같은 Mac에서 내일 같은 구성을 다시 설치할 예정. 아래 목록을 내보내고 `brew cleanup`으로 정리한 뒤 설치는 유지

제거가 맞는 때는 Homebrew를 완전히 떠날 때, 깨진 설치 뒤 깨끗한 접두사로 옮길 때, 더 이상 그 패키지가 필요 없는 기기를 비울 때입니다.

## 접두사 파악: Intel, Apple Silicon, Rosetta 잔여물

Homebrew 기본 접두사는 칩에 따라 달라집니다.

| Mac | 기본 접두사 | `brew` 바이너리 |
| --- | --- | --- |
| Apple Silicon | `/opt/homebrew` | `/opt/homebrew/bin/brew` |
| Intel | `/usr/local` | `/usr/local/bin/brew` |

무엇을 지우기 전에 실제로 쓰는 것을 확인하세요.

```
uname -m
brew --prefix
which brew
```

`arm64`는 Apple Silicon입니다. `x86_64`는 Intel(또는 Rosetta 터미널)입니다. 이전한 Apple Silicon Mac에서는 `/usr/local` 아래 옛 Intel Homebrew가 `/opt/homebrew`와 함께 남아 있을 수 있습니다. 공식 제거 스크립트는 기기의 기본값을 찾고, `arm64`에서는 `/usr/local`도 살펴 남아 있는 Intel 접두사를 놓치지 않습니다. 두 접두사를 의도적으로 유지한다면 `--path`로 지울 쪽을 지정하세요.

Intel에서 `/usr/local` 전체를 손으로 지우지 마세요. 다른 소프트와도 공유됩니다. Homebrew 자체 트리만 다루는 공식 스크립트를 쓰세요.

## 공식 제거기

Homebrew [FAQ](https://docs.brew.sh/FAQ#how-do-i-uninstall-homebrew)는 Homebrew/install 저장소의 제거 스크립트를 가리킵니다. 명령이 바뀌면 그 페이지에서 복사하세요. 현재 한 줄 명령은 다음과 같습니다.

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

실행 전에 스크립트를 읽으려면 먼저 다운로드하세요.

```
curl -O https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh
less uninstall.sh
/bin/bash uninstall.sh --help
```

유용한 플래그:

- `--dry-run`(`-n`도 가능): 지울 내용만 출력하고 아무것도 바꾸지 않음. 중요한 기기에서는 여기서 시작
- `--path=PATH`: 특정 접두사 제거(예: Apple Silicon에 남은 Rosetta 시대 `/usr/local`)
- `--force`: 확인 프롬프트 건너뜀(`NONINTERACTIVE`가 설정된 경우에도 암시적으로 적용)
- `--skip-cache-and-logs`: 캐시와 로그 디렉터리는 그대로 둠

옛 mxcl gist와 아직도 `cd $(brew --prefix)` 후 `git ls-files`로 지우라는 가이드는 무시하세요. 초기 `/usr/local` 레이아웃용이며 현재 설치에서는 위험합니다.

## 스크립트가 실제로 지우는 것

제거기는 Homebrew 접두사와 그 아래 `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 접두사, 캐시, 로그를 지우지만, 패키지가 직접 쓴 설정과 셸 프로필 줄은 남습니다.">
  <figcaption>스크립트는 패키지 관리자만이 아니라 패키지까지 가져갑니다. 남는 것은 패키지가 쓴 설정과 셸 프로필에 직접 넣은 줄입니다.</figcaption>
</figure>

## 지우기 전에 설치 목록을 적어 두기

제거 전에 다음 두 명령으로 목록을 내보냅니다.

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

`brew leaves`는 다른 설치된 formula나 cask에 의존되지 않는 formula를 나열합니다. 유용한 출발점이지만, 명시적으로 설치한 전체 기록이 아닙니다. 환경을 다시 만들기 전에 두 파일을 검토하세요.

패키지 데이터와 패키지 파일은 따로 보세요. 홈 디렉터리 설정은 남을 수 있지만, `/opt/homebrew/var` 또는 `/usr/local/var`의 Postgres 데이터베이스는 아직 Homebrew 접두사 안입니다. 제거기는 `var`를 지우므로 그 데이터도 함께 갈 수 있습니다. 필요한 데이터는 접두사 밖으로 먼저 백업하세요. 서비스를 쓰면 먼저 중지합니다.

```
brew services list
brew services stop --all
```

## 선택: 먼저 formula와 cask 제거

한 번에 핵삭제 대신 단계적으로 해체하려면 `brew`가 아직 동작할 때 패키지를 먼저 지웁니다.

```
brew list --formula
brew uninstall --force $(brew list --formula)
brew list --cask
brew uninstall --cask --force $(brew list --cask)
brew autoremove
brew cleanup -s
```

이렇게 하면 Cellar와 Caskroom은 비지만 Homebrew 설치는 남습니다. `var` 아래 데이터가 불안할 때, 또는 패키지 공간만 비우고 나중에 더 작은 도구 세트를 위해 `brew`를 남기고 싶을 때 씁니다. Homebrew 자체를 끝낼 때는 공식 제거기로 접두사, tap, 캐시까지 깨끗이 지우세요.

## 제거 실행

1. `--dry-run`으로 실행하고 모든 경로를 읽습니다.
2. `--dry-run` 없이 실행하고, 물으면 `y`를 입력하며, 보호된 디렉터리에 `sudo`가 필요하면 macOS 암호를 입력합니다.
3. “possible Homebrew files were not deleted” 같은 목록이 나오면 창을 닫기 전에 복사합니다.

스크립트를 다운로드한 뒤 dry-run 예:

```
/bin/bash uninstall.sh --dry-run
```

원격 한 줄 명령을 쓸 때도 플래그를 넘기기 쉽게 먼저 다운로드한 다음 `/bin/bash uninstall.sh`를 실행하세요.

## 잔여 파일 점검 목록

스크립트가 끝나면 일부 Homebrew로 보이는 파일을 삭제하지 못했고 직접 지워야 할 수 있다고 알린 뒤 목록을 보여줄 수 있습니다.

그 경로가 이름으로 나오는 곳은 보통 여기뿐입니다. Homebrew가 만들지 않은 디렉터리 권한 때문인 경우가 많고 목록은 짧습니다. 이미 지워진 설치에서 다시 실행해도 다시 나오지 않으니, 터미널을 닫기 전에 복사해 두세요.

전형적인 잔여는 방금 지운 접두사 아래에 있습니다.

- Apple Silicon: `/opt/homebrew/etc`, `share`, `var`, `Frameworks` 및 비슷하게 비어 있거나 소유권이 어중간한 디렉터리
- Intel: `/usr/local` 아래 같은 이름. 무관한 `/usr/local` 트리는 추측으로 지우지 마세요

스크립트가 경로를 지목했고 Homebrew 전용임을 확인했다면 명시적으로 지웁니다(`-rf` 뒤에 공백):

```
sudo rm -rf /opt/homebrew/share
```

그다음 확인:

```
ls /opt/homebrew
ls /usr/local/Homebrew
ls ~/Library/Caches/Homebrew
ls ~/Library/Logs/Homebrew
```

위치가 사라지면 “No such file or directory”가 나와야 합니다. 스크립트가 끝난 뒤에도 `/opt/homebrew`나 Homebrew 전용 트리가 남으면 그 경로에 `sudo rm -rf`가 일반적인 정리입니다. Return을 누르기 전에 경로를 다시 확인하세요.

접두사 밖 패키지 설정은 일부러 남는 경우가 많습니다. `~/.gitconfig`, 언어 버전 관리자, `~/Library` 아래 앱 지원 폴더, `var`에서 옮겨 둔 데이터베이스 등. Homebrew 접두사가 아닙니다. 소속을 알 때만 지우세요.

## 셸 프로필이 아직 그것을 가리킴

제거기는 `.zprofile`, `.zshrc`, `.zshenv`, `.zlogin`, `.bash_profile`을 편집하지 않습니다. Homebrew 설치기가 흔히 넣는 줄은 다음 형태입니다.

```
eval "$(/opt/homebrew/bin/brew shellenv)"
```

Intel Mac에서는 기본 PATH에 이미 `/usr/local/bin`이 있어 이 줄이 필요 없는 설치가 많습니다. Apple Silicon에서는 `brew`를 찾기 위해 필요하고, 제거 후에는 새 셸마다 더 이상 없는 바이너리를 실행하려 합니다.

`brew shellenv`(그리고 더 이상 필요 없는 직접 추가한 `/opt/homebrew/bin` 또는 `/usr/local/bin` PATH보내기)를 찾아 지웁니다.

```
grep -n "brew shellenv\|/opt/homebrew\|/usr/local/bin" ~/.zprofile ~/.zshrc ~/.zshenv ~/.zlogin ~/.bash_profile ~/.bashrc 2>/dev/null
```

그다음 새 터미널 탭을 여세요. 경고가 사라지고 `which brew`가 아무 것도 출력하지 않으면 PATH 정리는 끝났습니다. 바로 다시 설치할 계획일 때만 줄을 남기세요.

## 흔한 실패 유형

**잔여물에서 Permission denied.** 스크립트는 경로를 나열했지만 지우지 못함. 지목된 각 경로에 `sudo rm -rf`를 쓰고, `-rf`와 경로 사이에 공백을 둡니다. `rm -rf/opt/...`는 경로가 플래그로 해석되어 `illegal option`이 납니다.

**부분 제거 / “Homebrew is already installed”.** 이전 시도가 `.git`, `Cellar`, `bin/brew`를 남김. 올바른 `--path`로 공식 제거 스크립트를 다시 실행하거나 스크립트가 보고한 잔여 접두사를 지운 뒤, 여전히 필요하면 공식 설치 문서에서 다시 설치하세요.

**어중간한 정리 뒤 `brew: command not found`.** 제거는 끝났는데 PATH가 옛 접두사를 가리키거나(셸 줄 수정), `brew`만 사라지고 패키지는 남은 경우입니다. 고전 gist를 쫓지 마세요. 접두사 디렉터리가 남아 있으면 공식 스크립트에 `--path`를 쓰세요.

**Apple Silicon에서 잘못된 접두사.** `/opt/homebrew`는 지웠지만 Rosetta 시대 도구가 `/usr/local`에 남아 있음. 그 트리가 Homebrew 것이고 무관 소프트와 섞이지 않았음을 확인한 뒤 `--path=/usr/local`로 실행하세요.

**서비스와 로그인 항목이 사라진 바이너리를 계속 호출.** 가능하면 제거 전에 `brew services`를 중지하세요. 이후 로그인 항목과 `/opt/homebrew` 또는 `/usr/local/Cellar`를 참조하는 LaunchAgents를 확인하세요.

**옛 블로그와 2011 gist.** `git ls-files`와 `pbcopy`로 지우는 가이드는 이전 Homebrew 레이아웃용입니다. `https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh`만 쓰세요.

## 더 작은 작업으로 충분한지 검토

더 작은 정리라면 `brew cleanup`으로 이전 버전과 캐시, `brew uninstall <formula>`로 단일 패키지, `brew autoremove`로 미사용 의존성을 지웁니다. [Mole Analyze 보기](https://mole.fit/ko/mac-disk-analyzer)에서 정리 전에 Homebrew 폴더를 스캔하고, 이후에 다시 스캔해 크기를 비교하세요. Mole은 이 명령들의 변경을 자동으로 추적하지 않습니다.

## 내보낸 목록으로 다시 설치하기

새 기기에 Homebrew를 설치한 뒤, 다음 두 명령으로 이전 구성을 복원합니다.

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

cask에는 `--cask`가 필요하므로 분리합니다. 섞인 목록은 절반이 실패합니다.

`brew list`는 의존성도 포함하므로 전체를 재생하면 그 의존성도 명시 설치로 표시되어 이후 `brew autoremove`가 지울 수 있는 범위가 바뀝니다. `brew leaves`는 상당 부분을 피하지만, 요청한 패키지 기록 그 자체는 아닙니다. 직접 고른 패키지가 다른 패키지의 의존성이기도 할 수 있습니다. 다시 설치하기 전에 목록을 검토하고 필요한 도구를 추가하세요.

## 자주 묻는 질문

### Homebrew를 제거하면 설치했던 패키지가 모두 사라지나요?

Cellar와 Caskroom 안에 남아 있는 것은 사라집니다. 공식 스크립트는 접두사를 지우므로 formula와 cask 메타데이터도 함께 갑니다. 접두사 밖 설정과 데이터는 남을 수 있습니다.

### `/opt/homebrew`와 `/usr/local`의 차이는?

`/opt/homebrew`는 Apple Silicon 기본값입니다. `/usr/local`은 Intel 기본값이며, 이전한 Mac에는 옛 Rosetta Homebrew가 남아 있을 수도 있습니다. 지우기 전에 항상 `brew --prefix`를 확인하세요.

### 제거 스크립트를 실행하기 전에 모든 formula를 먼저 지워야 하나요?

단계적 정리를 원하거나 `var` 데이터를 먼저 살펴볼 때만 필요합니다. 스크립트는 이미 접두사 안 설치된 패키지를 지웁니다. 나중에 다시 설치할 가능성이 있으면 어느 쪽이든 목록을 내보내세요.

### 제거 후에도 디렉터리가 남는 이유는?

권한 문제이거나 Homebrew가 만들지 않은 디렉터리가 삭제를 막을 수 있습니다. 스크립트는 그 경로를 한 번만 출력합니다. Homebrew 잔여물로 인식될 때만 `sudo`로 지우세요.

### `/usr/local` 전체를 지워도 안전한가요?

아니요. Intel Mac에서 그 폴더는 공유됩니다. 공식 제거 스크립트를 쓰고, 남은 것이 있으면 스크립트가 지목한 경로만 지우세요.

### 새 터미널마다 brew shellenv 오류가 보입니다. 어떻게 하나요?

zsh 또는 bash 시작 파일에서 `eval "$(...brew shellenv)"` 줄을 지운 뒤 새 탭을 여세요. 제거기는 그 파일들을 편집하지 않습니다.

---

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