-bash: brew: command not found
# 홈브류 설치 에러
글쓴이는 가격이 다소 비싸더라도 한국 제품을 이용하는 젊은 꼰대이기 때문에 개발자임에도 불구하고 윈도우 기반 삼성이나 엘지 제품만을 사용해 왔었다. 일을 하는 곳에서 개발용 노트북 (Laptop) 지원을 해주었고 약 2년째 맥북 프로를 사용하고 있지만 아직도 나에게 있어 애증의 관계이다.
아무튼 이번 포스트에서는 글쓴이도 겪었던 홈브류 설치 에러를 해결하는 방법에 대해서 공유해볼까 한다. 또한 오류에 대한 질문과 이에 대한 포스팅이 많아지는 관계로 "Error Codes"라는 별도의 카테고리를 만들었다. 이전 포스트와 앞으로의 에러 관련 포스트들은 해당 카테고리에서 확인할 수 있으니 참고하길 바란다. 추가로 카테고리명이 너무 촌스럽다면 괜찮은 이름 추천해 주시면 감사하겠습니다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
글쓴이가 겪은 에러의 경우는 홈브류 설치가 되어있음에도 홈브류가 제대로 실행되지 않았다. 홈브류 설치가 잘못되었다고 생각해서 삭제 후 재설치를 해도 같은 문제점이 발생하였고 아래와 같은 에러 메세지가 출력되었다.
-bash: brew: command not found
그래서 PATH 문제이지 않을까라는 생각에 경로 설정을 살펴보니, 역시 설정된 경로에 오류가 있었다. 경로에 문제가 있으니, 당연히 홈브류 자체를 인식하여 작동이 되지 않는다는 것이다. 한마디로 인식조차도 되지 않는다면 하위 단계에서 문제를 해결하려고 노력해 봤자 무용지물이라는 셈이다. 마치 중국집에 가서 햄버거 달라는 거와 같은 경우다. 특히 이러한 문제는 Apple M1, M2 chip에서 발생하는 경우가 많다는 걸 다른 사람들의 사례를 통해서 알 수 있었다. 글쓴이처럼 맥북 프로를 사용하고 있으면서 홈브류 설치가 제대로 되지 않는다면 아래와 같은 방법을 시도해 보는 것이 좋다. (도대체 모두가 고통받고 있는데 왜 수정을 안 해주는지 모르겠다.) 아무튼 방법을 찾던 중에 eval 명령어를 통해서 일시적으로 문제 해결이 가능하다는 걸 알게 되었다.
eval $(/opt/homebrew/bin/brew shellenv)
해당 코드를 통해서 shell env를 설정해주면 홈브류가 문제없이 작동하게 된다. 여기서 "와 되었다!"하고 끝날 게 아니라 커맨드를 재시작했을 때도 문제없이 homebrew가 잘 작동되는지 확인해줘야 한다. 아래의 방법으로 홈브류가 잘 설치되었는지 확인이 가능하다.
brew --version
brew doctor
brew --version에서 문제없이 버전이 출력된다면 brew doctor를 통해서 문제없는지 확인하면 된다. 하지만 문제는 재시작했을때 다시 도르마무처럼 홈브류가 작동되지 않고 -bash: brew: command not found 이런 에러 메시지가 다시 나오면 이제부터 홈브류와 나와의 싸움 시작이다. 솔직히 아래의 방법들이 귀찮은 사람은 매번 eval $(/opt/homebrew/bin/brew shellenv)를 사용하여 홈브류를 사용해도 무방하다.
# Setting up your PATH, 경로를 설정해라!
글쓴이의 투자한 시간이 헛되지 않도록 많은 브로들이 해당 문제를 글쓴이의 방법으로 해결되었으면 좋겠다. 첫번째로는 경로 설정을 다시 해주는 것이다. 여기서 말하는 변수는 환경 변수를 의미한다. 이미 우리는 홈브류를 설치하면서 홈브류의 위치를 PATH를 통해서 설정해 주었다. 하지만 경우에 따라서 환경변수 설정이 제대로 되지 않아 이러한 어처구니가 없는 문제가 발생하곤 한다. 아래의 코드를 커맨드에서 실행해 준다.
여기서 유의할 점은 eval $(/opt/homebrew/bin/brew shellenv)를 먼저 작성하여 실행한 뒤에 아래의 코드를 작성해줘야 한다. 왜냐하면 지금 당장 환경 변수 문제로 인해 홈브류가 제대로 작동하지 않고 있으므로 일단은 홈브류가 작동되도록 해준 다음에 아래의 코드를 통해 환경 변수를 추가하여 경로를 변경해줘야 한다. 또한 사전에 zsh를 설치하여 변경해주었다면 ~/. bash_profile이 아니라 ~/. zshrc로 작성해주어야 한다.
echo 'PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile
echo 'PATH="/usr/local/bin:$PATH"' >> ~/.zshrc
이렇게 작성하고 나면 아무 메세지가 안뜰 수가 있는데 당황하지 말고 다시 재시작을 해주면 홈브류가 문제없이 작동된다. 이걸 모르고 계속 홈브류를 사용할 때마다 eval $(/opt/homebrew/bin/brew shellenv)를 작성해 주는 경우가 있는데, 코드 한 줄로 통해서 문제가 속 시원하게 해결된다.
# 제 2안, zsh를 설치해준다.
그럼에도 불구하고 홈브류가 제대로 작동하지 않고 지속적으로 "홈브류를 찾을 수 없어, 아몰랑~"이 상태라면 zsh를 설치해 줌으로써 문제를 해결할 수도 있다. 어차피 맥북 사용하는 개발자라면 Z shell를 사용하기 때문에 zsh를 설치할 예정이거나 이미 설치가 되어 있을 것이다. Z shell에 대해서 간단히 설명하자면 유닉스 셸 중 하나로써 기존의 다른 셸들을 포함하고 있는 interactive shell이자, scripting language interpreter이다. 그냥 한마디 대박 편한 셸이니까 설치를 해준다. zsh를 설치해 주는 이유는 통합 인터프리터이기 때문에 홈브류에서 발생하는 경로 문제 에러를 이를 통해서 해결이 가능할 수도 있기 때문이다. 일단 홈브류가 제대로 작동하지 않는다는 가정하에 다시 eval $(/opt/homebrew/bin/brew shellenv)를 먼저 작성하여 홈브류가 제대로 작동되도록 만들어준다. 다음으로 zsh와 이왕 설치한 김에 Oh My Zsh까지 설치를 완료해 준다.
brew install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# 결론
솔직히 말해서 이런 에러 문제가 발생한다면 정확하게 원인을 파악하기가 어렵다. 글쓴이도 이 문제를 해결하기 위해서 일하는 사람이 아니기 때문에 최대한 근접한 원인을 파악하여 해결하는 편이다. 마치 환자가 배가 아프다는 말 한마디를 듣고 의사 선생님이 정확한 병명을 맞출 수 없는 거와 같다. 그럼에도 문제를 해결해야 편하게 개발이 가능하기 때문에 글쓴이와 같은 문제를 겪고 있다면 위의 방법들을 통해서 문제를 해결해 나갈 수 있으면 좋겠다.
댓글