Apple Silicon(M1,M2등)에서 NVM을 사용하다보면 Node14버전이나 특정 버전들이 설치가 되지 않으면서 아래의 메시지가와 함께 무한에 가까운 수준으로 터미널에 텍스트가 출력되게 된다.
curl: (22) The requested URL returned error: 404
Binary download from https://nodejs.org/dist/v14.21.3/node-v14.21.3-darwin-arm64.tar.xz failed, trying source.
grep: /Users/XXXX/.nvm/.cache/bin/node-v14.21.3-darwin-arm64/node-v14.21.3-darwin-arm64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.
Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!
Local cache found: ${NVM_DIR}/.cache/src/node-v14.21.3/node-v14.21.3.tar.xz
Checksums match! Using existing downloaded archive ${NVM_DIR}/.cache/src/node-v14.21.3/node-v14.21.3.tar.xz
$>./configure --prefix=/Users/XXXX/.nvm/versions/node/v14.21.3 <
Node.js configure: Found Python 3.9.6...
INFO: configure completed successfully
이러한 CPU 관련 문제는 대부분 해결하는 방법이 비슷하다. 바로 Rosetta를 통해서 해결하는 것이다.
이에 앞서 차례대로 homebrew를 통해 nvm을 설치하고 Rosetta를 적용하는 방법을 서술하려고 한다.
# 1. homebrew를 이용해서 nvm을 설치
brew install nvm
# 2. nvm 디렉토리 생성
mkdir ~/.nvm
# 3. vim, nano, vscode 에디터를 활용하여 ~/.zshrc 경로에 있는 파일에 아래의 내용 추가
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && . "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
# 4. 변경사항 반영하여 실행하기 위해 터미널에 명령어 입력
source ~/.zshrc
이렇게 세팅하고 nvm install v14.21.3을 설치 명령어를 실행 해보면 아래와 같은 문구와 함께 엄청난 텍스트가 무한반복되며 출력된다. 이 문제를 해결하기 위해서 터미널을 Rosetta를 사용하여야 한다.
위와 같은 그림으로 세팅하면 정상적으로 설치되는 것을 볼 수가 있다.