[MacOS] Homebrew update 에러 해결 방법
이 포스트는 macOS High Sierra (v10.13.4) 기준으로 작성되었습니다.
시작은 brew update 시 /usr/local 쓰기 권한 에러
첫 번째로 직면한 에러.. /usr/local/ 디렉토리에 권한이 없단다. 그래서 chown 을 시도해봐도 실패.. El Capitan 때 부터 루트리스(Rootless) 보안 강화로 root 계정 조차 어떻게 할 수가 없다. 방법은 재시동 후 Command + R 을 눌러 복구모드로 진입하여 터미널을 실행 시킨다. 그리고 아래 명령을 실행한다.
$ csrutil disable
그리고 다시 재부팅!
이제 권한이 막히는 문제는 해결 되었으니 다시 아래 명령으로 /usr/local/ 권한을 풀어보자
$ sudo chown -R $(whoami) /usr/local
이제 아래 명령으로 Homebrew 업데이트를 해보자.
$ brew update
그런데 이번엔 또 다른 에러가..
/usr/local/Library/ENV/scm/git: No such file or directory
이 에러를 보았다면 아래 커맨드를 입력!
$ cd "$(brew --repository)" && git fetch && git reset --hard origin/master
내 로컬에 설정된 Homebrew 디렉토리로 이동한 뒤 git fetch 명령으로 리모트 저장소와 동기화를 한 후 로컬 브랜치를 origin/master로 리셋.
이제 아래 명령으로 Homebrew 업데이트를 해보자.(2)
$ brew update
뭔가 주르륵 업데이트가 되고 아래 문장이 나타난다.
Homebrew no longer needs to have ownership of /usr/local. If you wish you can
return /usr/local to its default ownership with:
sudo chown root:wheel /usr/local
다시 소유 권한을 원래대로 돌려 놓으란다. 아래 명령으로 다시 돌려 놓는다.
$ sudo chown -R root:wheel /usr/local
-R 옵션(하위 경로 전체 적용)을 주고 chown 명령을 주었기 때문에 -R옵션으로 권한을 바꿔주자.
간단하게 업데이트만 하면 될 줄 알았던 Homebrew가 에러 융단 폭격을 날리니 털린 멘탈 주워담으며 정리해본다.