M1/M2 맥북 Homebrew 아키텍처 충돌 (Rosetta 2) 해결 방법

 

"새로 산 M1/M2 맥북, 터미널에서 자꾸 에러가 나요!" 애플 실리콘(M시리즈) 맥에서 Homebrew 패키지 설치 시 흔히 겪는 아키텍처 충돌(Rosetta 2) 문제의 원인과, 한 번 설정해 두면 평생 편안한 깔끔한 해결 방법을 정리해 드립니다!

 

큰맘 먹고 구매한 M1, M2, 혹은 최신 M3 맥북! 빠릿빠릿한 속도에 감탄하며 "이제 나도 멋진 환경에서 개발해야지~" 하고 터미널을 열었는데... 이게 웬걸? 예전 인텔(Intel) 맥에서 쓰던 방식 그대로 Homebrew(홈브류)를 설치하고 패키지를 깔려고 하니 자꾸 알 수 없는 빨간색 에러 메시지가 쏟아진 적 있으신가요?

Bad CPU type in executable 이라든지, Cannot install under Rosetta 2 in ARM default prefix 같은 외계어 알림을 보면 정말 눈앞이 캄캄해지죠. 저도 처음 인텔 맥북에서 M1으로 넘어왔을 때 이 아키텍처 충돌 문제 때문에 며칠을 고생했던 기억이 납니다. 하지만 걱정 마세요! 이 현상은 맥북이 고장 난 게 아니라, 애플의 두뇌(CPU) 구조가 바뀌면서 발생한 아주 자연스러운 과도기적 증상일 뿐입니다. 오늘 제가 알려드리는 단계별 해결책을 그대로 따라 하시면 꼬여버린 터미널을 아주 깔끔하게 복구하실 수 있을 거예요! 😊

 

현대적이고 세련된 책상 위에 놓인 Apple Silicon MacBook을 보여주는 아이소메트릭 일러스트레이션입니다. 노트북 화면의 터미널 창은 두 개로 나뉘어 있으며, 왼쪽은 빨간색 글리치 텍스트로 'x86_64 ARCHITECTURE ERROR'라는 인텔 아키텍처 오류를 보여주고, 오른쪽은 선명하고 생동감 있는 초록색 코드로 'ARM64 Homebrew'가 성공적으로 실행되는 모습을 보여줍니다. 특히, 오른쪽 화면에는 빛나는 청록색 체크 표시가 함께 있습니다. 전체적으로 기술적이고 깨끗한 느낌을 주는 청록색과 밝은 회색 팔레트가 사용되었습니다.

1. 왜 이런 오류가 발생하는 걸까? 🤔

해결책을 적용하기 전에 왜 이런 문제가 생기는지 아주 쉽게 짚고 넘어가 볼까요? 핵심은 Homebrew의 설치 경로(PATH)가 인텔 맥과 애플 실리콘 맥에서 완전히 다르다는 점입니다.

과거 인텔 맥은 x86_64라는 아키텍처를 사용했고, 최신 M시리즈 맥은 ARM64라는 아키텍처를 사용합니다. Homebrew는 이 두 세계가 충돌하지 않도록 아예 설치되는 폴더 위치를 나눠버렸어요.

구분 Intel Mac (x86_64) 또는 로제타2 Apple Silicon (ARM64)
기본 설치 경로 /usr/local/bin/brew /opt/homebrew/bin/brew
발생하는 문제 예전 맥에서 '마이그레이션(데이터 이동)'을 해왔거나, 터미널이 'Rosetta를 사용하여 열기'로 체크되어 있을 경우, M시리즈 맥인데도 억지로 인텔용 경로(/usr/local/...)에 설치하려고 하면서 충돌이 발생합니다.
💡 로제타 2 (Rosetta 2)란?
애플 실리콘(ARM) 환경에서 기존 인텔(x86) 전용 프로그램이 돌아갈 수 있도록 실시간으로 번역해 주는 애플의 공식 에뮬레이터입니다. 훌륭한 기술이지만, Homebrew 같은 패키지 관리자를 쓸 때는 아키텍처 혼선을 유발하는 주범이 되기도 합니다.

 

2. 현재 내 터미널 상태 진단하기 🔍

일단 내 터미널이 지금 인텔 모드(로제타)로 돌고 있는지, 정상적인 애플 실리콘 모드로 돌고 있는지부터 확인해야 합니다. 터미널(Terminal) 앱이나 iTerm2를 열고 아래 명령어를 입력해 보세요.

$ uname -m
  • 결과가 arm64로 나온다면: 정상적인 애플 실리콘 상태입니다. (하지만 예전에 깔아둔 인텔 버전 Homebrew 찌꺼기가 남아있어 충돌하는 상황입니다.)
  • 결과가 x86_64로 나온다면: 터미널 앱 자체가 로제타2로 실행되고 있는 상태입니다. 이 설정을 먼저 풀어주어야 합니다.
⚠️ 터미널 로제타 모드 해제하기
Finder > 응용 프로그램 > 유틸리티 > 터미널(또는 iTerm) 아이콘 우클릭 > '정보 가져오기' 클릭 > 'Rosetta를 사용하여 열기' 체크 해제 후 터미널을 완전히 껐다가 다시 실행해 주세요.

 

3. 확실한 해결! 올바른 PATH 설정 명령어 만들기 🛠️

터미널이 arm64로 돌아왔다면, 이제 애플 실리콘 전용 경로인 /opt/homebrew로 PATH(환경변수)를 다시 잡아주면 모든 문제가 해결됩니다. .zshrc 파일에 명령어를 추가해야 하는데요, 터미널 초보자분들을 위해 여러분의 맥북 사용자 이름만 넣으면 완벽한 코드를 만들어주는 생성기를 준비했습니다!

🔧 애플 실리콘 Homebrew PATH 복구 생성기

터미널에 whoami를 쳐서 나오는 여러분의 맥북 사용자 계정명(예: user)을 아래에 입력하세요.

생성된 코드를 실행한 뒤 터미널에 brew --version을 쳤을 때 버전 정보가 잘 뜨면 성공입니다! 혹시라도 기존 인텔 버전 찌꺼기가 계속 엉킨다면, 기존 brew를 완전히 삭제(Uninstall)하고 ARM 전용으로 처음부터 재설치하는 것이 가장 정신 건강에 좋습니다.

 

4. 심화: 인텔 전용 패키지도 써야 한다면? (듀얼 브류 세팅) 💡

간혹 회사 프로젝트나 특정 라이브러리가 아직 애플 실리콘(ARM)을 지원하지 않아서, 어쩔 수 없이 인텔 기반(x86_64)의 패키지를 깔아야 하는 경우가 있습니다. 이럴 때는 ARM용 brew와 인텔용 brew를 동시에 쓸 수 있는 '듀얼 브류(Dual Brew)' 환경을 구축할 수 있습니다.

.zshrc 파일(또는 .bash_profile)을 열어서 아래와 같이 alias(별칭)를 설정해 두는 꿀팁을 사용해 보세요.

# ARM 네이티브 Homebrew (기본)
alias brew="/opt/homebrew/bin/brew"

# Rosetta 2를 거치는 인텔용 Homebrew (별칭 ibrew)
alias ibrew="arch -x86_64 /usr/local/bin/brew"

이렇게 세팅해 두면, 평소에는 brew install 패키지명으로 빠르고 네이티브한 패키지를 설치하고, 꼭 인텔 아키텍처가 필요한 옛날 패키지를 깔 때는 ibrew install 패키지명을 치면 알아서 로제타를 통해 인텔 경로에 설치가 됩니다. 진짜 스마트한 방법이죠?

핵심 요약 📝

💻

Apple Silicon Homebrew 오류 해결 카드

1. 원인 파악: 인텔(/usr/local)과 애플 실리콘(/opt/homebrew) 간의 설치 경로 차이 때문에 발생합니다.
2. 터미널 환경 점검: 터미널 정보에서 'Rosetta를 사용하여 열기'가 체크되어 있다면 반드시 해제하세요.
3. PATH(환경변수) 복구:
eval "$(/opt/homebrew/bin/brew shellenv)"
명령어를 .zprofile에 추가하여 올바른 ARM 경로를 잡아줍니다.
4. 듀얼 브류 세팅: 인텔 패키지가 꼭 필요할 땐 arch -x86_64를 활용한 ibrew 별칭(alias)을 등록해 사용하세요.

자주 묻는 질문 ❓

Q: 'zsh: command not found: brew' 에러가 나옵니다. 어떻게 하죠?
A: Homebrew는 설치되어 있지만 터미널이 그 위치(PATH)를 찾지 못해서 생기는 문제입니다. 본문 3번에 있는 'Homebrew PATH 복구 생성기'를 이용해 경로를 등록해 주시면 바로 해결됩니다.
Q: 인텔 맥에서 쓰던 타임머신 백업을 M2 맥북으로 복원했더니 오류가 나요.
A: 마이그레이션을 하면 예전 인텔 전용 Homebrew 파일들까지 통째로 복사되어 넘어오기 때문입니다. 이 경우 가장 좋은 방법은 터미널에서 기존 Homebrew를 삭제 스크립트(Uninstall script)로 완벽하게 지운 뒤, 처음부터 애플 실리콘용으로 깨끗하게 재설치하는 것입니다.
Q: npm이나 node.js 설치할 때도 로제타 충돌이 일어날 수 있나요?
A: 네, 맞습니다. 터미널이 로제타 모드로 켜져 있는 상태에서 nvm이나 node를 설치하면 x86_64 버전으로 깔리게 되어 나중에 모듈을 빌드할 때 충돌이 발생할 수 있습니다. 항상 'uname -m' 명령어로 arm64 상태인지 먼저 확인하는 습관을 들이세요!

이 글이 여러분의 소중한 맥북 개발 환경을 쾌적하게 만드는 데 도움이 되었길 바랍니다. 혹시 세팅 과정에서 막히는 부분이나, 추가로 궁금한 점이 있다면 언제든지 편하게 댓글로 물어봐주세요! 즐거운 코딩 라이프 되세요~ 😊