Back to posts

Brewfile bundle로 Brew dump하기

Brew bundle로 Brewfile을 만들고, 다른 Mac에 그대로 복원하는 방법.

2025년 12월 21일

Brew bundle로 환경을 코드로 관리하기

Brew bundle은 Homebrew의 서브 커맨드다. Brewfile을 통해 패키지 설치를 선언적으로 관리할 수 있다.

관리 대상

  • 패키지(Formula): CLI 도구와 라이브러리
  • Cask: GUI 애플리케이션
  • 서비스: 백그라운드 데몬
  • Mac App Store 앱: mas로 설치

이렇게 정리해두면, 여러 Mac에서 같은 환경을 금방 맞출 수 있다.

Brewfile 추출 (dump)

현재 설치된 Homebrew 목록을 Brewfile로 뽑아낼 수 있다.

# Brewfile 생성
brew bundle dump
 
# 기존 Brewfile 덮어쓰기
brew bundle dump --force
 
# Brewfile 내용 확인
cat Brewfile

Brewfile은 현재 디렉토리에 생성되고, tap/brew/cask/mas 항목이 모두 들어간다.

Brewfile 설치 (install)

추출된 Brewfile을 그대로 다른 Mac에서 적용할 수 있다.

# 새 Mac에서 Homebrew 업데이트 권장
brew update && brew upgrade
 
# Brewfile로 설치
brew bundle install
 
# install은 생략 가능
brew bundle
 
# 특정 경로의 Brewfile 사용
brew bundle --file=~/dotfiles/Brewfile

설치 옵션

  • --no-upgrade: 이미 설치된 패키지는 업그레이드하지 않음
  • --verbose: 상세 로그 출력
  • --force: 오류가 나도 계속 진행

Brewfile 예시

# Tap 저장소 추가
tap "aws/tap"
tap "homebrew/cask-fonts"
tap "homebrew/autoupdate"
 
# CLI 도구 설치
brew "awscli"           # AWS CLI
brew "curl"             # HTTP 클라이언트
brew "docker"           # 컨테이너 플랫폼
brew "git"              # 버전 관리
brew "gh"               # GitHub CLI
brew "gradle"           # 빌드 도구
brew "jenv"             # Java 버전 관리
brew "jq"               # JSON 파서
brew "wget"             # 파일 다운로더
 
# GUI 애플리케이션 설치 (Cask)
cask "visual-studio-code"    # 코드 에디터
cask "intellij-idea"         # Java IDE
cask "docker"                # Docker Desktop
cask "notion"                # 노트 앱
cask "slack"                 # 커뮤니케이션
cask "google-chrome"         # 웹 브라우저
 
# Mac App Store 앱 설치 (mas-cli 필요)
mas "Magnet", id: 441258766       # 윈도우 관리
mas "KakaoTalk", id: 869223134    # 메신저

Brewfile 관리 명령어

1. brew bundle cleanup

Brewfile에 없는 패키지를 제거한다.

# 삭제될 패키지 목록 확인
brew bundle cleanup
 
# 실제 삭제 실행
brew bundle cleanup --force

Brewfile에 선언된 항목만 남기고 정리할 때 유용하다.

2. brew bundle check

Brewfile에 있는 항목이 모두 설치됐는지 확인한다.

brew bundle check

누락이 없으면 exit code 0, 누락이 있으면 1을 반환한다.

3. brew bundle list

Brewfile에 명시된 목록을 출력한다.

# 모든 항목 나열
brew bundle list
 
# 특정 타입만 나열
brew bundle list --brews    # Formula만
brew bundle list --casks    # Cask만
brew bundle list --taps     # Tap만
brew bundle list --mas      # Mac App Store 앱만

활용 팁

1. Git으로 Brewfile 관리

Brewfile을 저장소에 넣어 버전 관리하면 편하다.

# dotfiles 저장소에 Brewfile 추가
cp Brewfile ~/dotfiles/
cd ~/dotfiles
git add Brewfile
git commit -m "Add Brewfile for package management"

2. 주석 활용

패키지 용도를 주석으로 남겨두면 나중에 보기 쉽다.

# 개발 도구
brew "git"              # 버전 관리 시스템
brew "docker"           # 컨테이너 플랫폼
 
# 생산성 도구
cask "notion"           # 노트 및 문서 관리
cask "rectangle"        # 윈도우 관리 유틸리티

3. 환경별 Brewfile 분리

개인용/업무용을 분리하면 충돌이 줄어든다.

# 개인용
brew bundle --file=~/dotfiles/Brewfile.personal
 
# 업무용
brew bundle --file=~/dotfiles/Brewfile.work

주의사항

  • mas-cli 필요: brew install mas로 먼저 설치해야 한다.
  • App Store 로그인: mas 사용 전 로그인 상태여야 한다.
  • Cask 업데이트: brew bundle은 기본적으로 cask를 자동 업데이트하지 않는다.
  • 권한 문제: 일부 cask는 관리자 권한이 필요할 수 있다.

참고 자료