사랑스러운 우리 맥부기맥북맥북어맥북스딱스맥부르크맥부가우가
개요
드디어 맥북을 업그레이드 했다. 오랜 기간 동고동락한 m1 에어를 보내주고 m4 에어를 질러버렸다.
기분좋게 마이그레이션까지 마치고 VScode에서 터미널을 열었는데 갑자기 아래와 같은 에러가 출력되기 시작했다.
compinit:480: compdump: function definition file not found
.zshrc:188: add-zsh-hook: function definition file not found
compinit 관련 에러
zsh에서 compinit
은 자동 완성 기능을 초기화할 때 사용하는 함수인데, 뭔가 꼬였는지 함수 파일 자체를 못 찾는다고 에러가 발생했다.
그래서 .zshrc
에 다음 스크립트를 추가해보았다
autoload -Uz compinit
compinit
autoload -U bashcompinit
bashcompinit
근데 이렇게 해도 여전히 같은 에러가 계속 발생.
Homebrew zsh 제거 시도
혹시 zsh가 이상하게 설치되어 있는 건가 싶어서 Homebrew로 설치된 zsh를 제거해보려 했다.
brew uninstall zsh
그런데 새로운 에러가 발생
Error: Permission denied @ rb_sysopen - /opt/homebrew/var/homebrew/locks/go.formula.lock
이번엔 brew
가 내부 디렉터리 파일에 접근 권한이 없어서 에러가 발생하는 상황이었다.
원인 분석
해당 에러는 /opt/homebrew
아래에 있는 파일들이 admin 계정 소유로 되어 있어서 현재 사용자 권한으로는 접근이나 수정이 불가능한 상태였다.
ls -al /opt/homebrew
해보면 소유자가 admin
으로 되어 있는 걸 확인할 수 있다.
해결 방법
권한 문제를 해결하기 위해 brew
설치 경로 전체의 소유자를 현재 사용자로 변경했다
sudo chown -R $(whoami) /opt/homebrew
이 명령을 실행한 후 brew uninstall zsh
명령도 잘 작동했고, .zshrc
관련 에러도 함께 사라졌다.
후기
다음에 비슷한 일이 생기면 brew
권한부터 의심해보자.