node-gyp를 install 중 python 버전의 호환성 문제가 있어서 그 부분은 버전을 낮춰 해결은 했으나,,, python을 찾지 못하는 이슈가 또 발생했다.
env: python: No such file or directory
make: *** [Release/libffi.a] Error 127
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit
...
전혀 경험해보지 못한 경우라서 당황하긴 했지만 결국 'python'만 찾게 해 주면 되겠다 생각해서 어렵지 않게 생각했다.
이전 이슈:
이전 이슈에서 python의 버전을 낮추기 위해서 brew를 이용해 설치했던 Python 3.11.3을 삭제해 주었다.
$ brew uninstall python3
이후 완전히 삭제되었나 확인했다.
$ python3 --version
> 3.9.6
???
brew를 이용해서 설치한 것이 아니었나??라고 당황을 하면서 위치를 찾아보았다.
$ which python3
> /usr/bin/python3
mac에서 기본적으로 python이 설치되어 있었고 이것을 바로 link 걸면 끝나겠다 생각했다.
$ sudo ln /usr/bin/python3 /usr/bin/python
$ Password:
> ln: /usr/bin/python: Operation not permitted
??
되지 않는다. 찾아보니 시스템 무결성을 위해서 /usr/bin 폴더는 OS X에서 수정하지 못하도록 한 듯하다.
그러면 다른 곳에 해버리지 라는 마음으로 경로를 변경했다.
$ sudo ln -s /usr/bin/python3 /usr/local/bin/python
$ Password:
아주 잘 되었다.
이후 다시 npm install을 진행했다.
하지만...
xcode-select: Failed to locate 'python', requesting installation of command line developer tools
Xcode 명령줄 도구? 가 설치되어 있지 않다는 것이다. 그러면서 설치하라는 알림이 나왔길래, 설치를 진행해 줬다.
하지만 무반응 무한 반복이 되었다. 이 방법은 아닌 듯해서 다른 방법을 생각해 보았다.
그냥 시스템 python이 아니라 brew로 3.9 버전의 python을 설치하기로 했다.
$ brew python@3.9
설치는 잘 되었고 PATH 설정도 해주었다.
PATH 설정은 ~/.zshrc 파일에 해주면 된다. 아래 내용을 넣어줬다.
이 작업을 해주는 이유는 기존 macOS에 설치되어 있는 python 버전을 사용하는 것이 아닌 터미널을 열 때마다 자동으로 해당 경로의 python 버전을 사용할 수 있도록 하는 것이다.
export PATH="/opt/homebrew/bin/python3.9:$PATH"
파일을 저장하고 source로 .zshrc 파일을 한 번 실행해 줬다.
source ~/.zshrc
마지막으로 symbolic link 작업도 해주었다.
$ sudo ln -s /opt/homebrew/bin/python3.9 /opt/homebrew/bin/python
$ python --version
> Python 3.9.16
$ which python
> /opt/homebrew/bin/python
아주 잘 되었다.
마무리로 npm install 도 매우 성공적이었다.