AskClean

Mac에서 Homebrew 캐시 정리하기: brew cleanup과 --prune=all

AskClean 팀 · 업데이트 2026-11-02

무엇이든 바꾸기 전에 brew cleanup -n으로 지울 항목부터 확인하세요. 일반 brew cleanup은 오래된 잠금 파일과 다운로드, 설치된 formula의 이전 버전을 지우고, 패키지 이름 없이 실행하면 더 이상 필요 없는 의존성 formula도 제거합니다. -s(--scrub)는 여기서 더 나아가 최신 버전의 캐시된 다운로드도 지웁니다. 받아 두기만 하고 설치하지 않았거나 이미 제거한 패키지의 다운로드가 그 대상이며, 아직 설치되어 있는 패키지의 다운로드는 어느 쪽이든 남습니다. --prune=all은 기간과 관계없이 캐시를 비웁니다. 실제 캐시 위치는 brew --cache로 확인하세요.

불이 켜진 선반에 정돈된 병 모양 패키지와 보관 상자, 앞쪽 재활용함에 담긴 병들
Homebrew 저장 공간은 다시 받을 수 있는 다운로드, 삭제 후보인 이전 버전, 보존할 현재 도구로 나눠 확인하세요.

캐시·이전 keg·현재 도구 구분하기

Homebrew 다운로드 캐시에는 bottle, 소스 아카이브, cask 다운로드가 있으며 기본 위치는 ~/Library/Caches/Homebrew이지만 HOMEBREW_CACHE로 바꿀 수 있습니다. formula의 버전별 keg는 Cellar, cask는 Caskroom, 현재 사용되는 링크는 prefix에 있어 단순 캐시가 아닙니다. brew --cache, brew --cellar, brew --caskroom, brew --prefix로 실제 위치를 확인하고 추측한 /opt/homebrew 또는 /usr/local을 삭제하지 마세요.

드라이 런으로 삭제 후보 점검하기

brew cleanup -n은 파일을 바꾸지 않고 Homebrew가 삭제할 다운로드와 이전 formula 버전, 그리고 "Would autoremove" 아래에 제거될 의존성 formula를 보여 줍니다. 크기만으로는 다시 받을 수 있는 bottle, 현재 keg, cask, 사용자 설정을 구분할 수 없습니다. brew list --versions와 대조해 롤백 절차나 경로가 고정된 스크립트가 이전 keg에 의존하지 않는지 확인하세요. 드라이 런은 백업이 아니며, 실제 정리 뒤 삭제된 항목이 macOS 휴지통에 남거나 같은 버전으로 계속 배포된다는 보장도 없습니다.

  1. brew --cache를 실행하고 du -sh "$(brew --cache)"로 현재 다운로드 캐시의 크기를 측정합니다.
  2. brew cleanup -n을 실행해 삭제 후보인 다운로드, 이전 formula 버전, "Would autoremove" 아래의 의존성을 모두 확인합니다.
  3. brew list --versions로 필요한 현재 버전과 롤백 또는 고정 워크플로에 쓰는 이전 버전을 파악합니다.
  4. 일반 유지 관리에는 brew cleanup을 사용하고, 모든 캐시를 비울 때는 brew cleanup -n --prune=all을 확인한 뒤 brew cleanup --prune=all을 실행합니다.
  5. 캐시와 여유 공간을 다시 측정하고 brew cleanup -n과 중요한 Homebrew 설치 명령으로 결과를 검증합니다.

brew cleanup -n은 삭제 예정 항목을 보여 주는 미리보기일 뿐 백업이 아닙니다. Homebrew가 이전 keg나 캐시를 지운 뒤 같은 버전을 배포 원본에서 다시 받을 수 있거나 macOS 휴지통에서 복원할 수 있다고 보장할 수 없습니다.

목적에 맞는 cleanup만 실행하기

일반 유지 관리에는 brew cleanup을 사용해 Homebrew의 기본 보존 기간(현재 120일)과 패키지 상태에 따라 정리합니다. -s(--scrub)는 설치되어 있지 않은 패키지, 즉 받아 두기만 하고 설치하지 않았거나 이미 제거한 패키지라면 최신 버전의 캐시된 다운로드까지 정리하고, 아직 설치되어 있는 formula와 cask의 다운로드는 남깁니다. 먼저 brew cleanup -n -s로 후보를 확인하세요. -s와 --prune=all은 범위를 넓히는 방식이 서로 다른 옵션입니다. 기간과 관계없이 모든 캐시를 비워야 한다면 brew cleanup -n --prune=all을 확인한 뒤 brew cleanup --prune=all을 실행하세요. 이후 설치, 재설치, 소스 빌드에는 bottle, 아카이브, 대용량 설치 파일을 다시 받아야 합니다. 이전 keg도 일반 cleanup 대상이 될 수 있으므로 이 작업을 완전히 되돌릴 수 있다고 생각하면 안 됩니다.

autoremove와 사용자 데이터는 별도로 판단하기

brew autoremove는 캐시 정리가 아니라 Homebrew가 더 이상 필요하지 않다고 판단한 의존 formula를 제거합니다. 패키지 이름 없이 brew cleanup을 실행해도 HOMEBREW_NO_AUTOREMOVE를 설정하지 않았다면 같은 제거가 함께 일어나므로, 의존성을 남기고 싶다면 먼저 이 변수를 설정하세요. 따로 검토할 때도 brew autoremove --dry-run부터 실행하고 스크립트, 빌드, 서비스가 직접 쓰는 도구가 없는지 확인하세요. Brewfile, dotfile, 인증서, 데이터베이스, 서비스 상태와 프로젝트는 사용자 데이터입니다. 정리 뒤에는 brew cleanup -n, du -sh "$(brew --cache)", brew list --versions를 다시 실행하고 중요한 Homebrew 설치 명령이 정상 동작하는지 확인하세요.

삭제 판단과 복구 비용

brew cleanup -n으로 지울 항목을 먼저 확인하고 -s(--scrub)와 --prune=all의 차이를 이해해, 현재 도구와 설정은 지키면서 Homebrew 캐시와 이전 버전을 정리하는 방법입니다.

항목·작업확인 위치삭제 또는 작업의 결과
캐시·이전 keg·현재 도구 구분하기brew --cacheHomebrew 다운로드 캐시에는 bottle, 소스 아카이브, cask 다운로드가 있으며 기본 위치는 ~/Library/Caches/Homebrew이지만 HOMEBREW_CACHE로 바꿀 수 있습니다. formula의 버전별 keg는 Cellar, cask는 Caskroom, 현재 사용되는 링크는 prefix에 있어 단순 캐시가 아닙니다.
드라이 런으로 삭제 후보 점검하기brew cleanup -nbrew cleanup -n은 파일을 바꾸지 않고 Homebrew가 삭제할 다운로드와 이전 formula 버전, 그리고 "Would autoremove" 아래에 제거될 의존성 formula를 보여 줍니다.
목적에 맞는 cleanup만 실행하기brew cleanup / brew cleanup -s / brew cleanup --prune=all일반 유지 관리에는 brew cleanup을 사용해 Homebrew의 기본 보존 기간(현재 120일)과 패키지 상태에 따라 정리합니다.
autoremove와 사용자 데이터는 별도로 판단하기brew autoremove --dry-run (캐시 정리와 별개)brew autoremove는 캐시 정리가 아니라 Homebrew가 더 이상 필요하지 않다고 판단한 의존 formula를 제거합니다.

자주 묻는 질문

brew cleanup을 실행해도 안전한가요?

Homebrew가 공식 지원하는 유지 관리 명령이지만, 오래된 다운로드뿐 아니라 설치된 formula의 이전 버전도 지우고, HOMEBREW_NO_AUTOREMOVE를 설정하지 않았다면 더 이상 필요 없는 의존성까지 제거합니다. 반드시 brew cleanup -n을 먼저 확인하고 이전 keg나 목록에 오른 의존성을 쓰는 워크플로가 없는지 점검하세요.

brew cleanup --prune=all은 무엇을 삭제하나요?

기간과 관계없이 캐시 파일을 지우는 정책으로 cleanup을 실행하며, 일반 cleanup처럼 오래된 잠금 파일과 이전 formula 버전도 정리합니다. 이후 설치나 재설치 때 파일을 다시 받아야 하므로, 실행 전에 brew cleanup -n --prune=all로 정확한 대상을 확인하세요.

brew cleanup 다음에 brew autoremove도 실행해야 하나요?

대개 필요 없습니다. HOMEBREW_NO_AUTOREMOVE를 설정하지 않았다면 패키지 이름 없이 실행한 brew cleanup이 같은 제거를 이미 수행합니다. 따로 실행한다면 brew autoremove --dry-run부터 확인하세요. autoremove는 다운로드 캐시를 지우는 명령이 아니라 의존 formula를 제거하는 작업이라, 스크립트가 직접 쓰는 도구까지 지울 수 있습니다.

참고 자료

개발자 저장 공간 정리 계속하기