본문 바로가기

운영체제/Mac

mac M1(Apple Silicon)에 NVM 설치 및 node 14 이하 설치하기

반응형

맥에서 NVM 을 설치할 수 있는 두가지 방법이 있다. 

  • homebrew 를 이용하는 방법 ( homebrew 가 미리 설치되어있어야함 )
  • git clone 하는 방법 ( git 이 설치되어있어야함 )

 

먼저 homebrew 를 이용하는 방법

brew install nvm

brew 로 설치가 완료되면 마지막 로그에 어떻게 해야하는지 요약되서 나온다.

위에서는 홈경로에 .nvm 디렉토리를 생성하고, ~/.zshrc 에 export 내용을 붙여넣으라고 한다.

  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

이 후 터미널에서 위에서 입력한 내용 바로 반영하기 위해(터미널 재접속하셔도됩니다!) 

source ~/.zshrc

정상적으로 설치되었는지 확인한다.

설치확인

 

git으로 clone 하는 방법

cd ~/
git clone https://github.com/nvm-sh/nvm.git .nvm
cd .nvm
git checkout v0.39.0

git 으로 nvm 레파지토리에서 clone 받은 뒤 최신버전 브랜치로 checkout을 하는 개념이라고 생각하면 된다.

git 으로 clone 받았다면 아까 위에서 작업했던 ~/.zshrcNVM_DIR 이 약간 변경된다.

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
source ~/.zshrc

이렇게 하면 NVM 설치는 간단하게 끝난다.

더 자세한 내용은 NVM 깃허브 저장소에 자세히 설명되어있으니 참고바랍니다.

https://github.com/nvm-sh/nvm/blob/master/README.md

 

GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active nod...

github.com

 

 

근데 회사에서는 맥북프로(인텔)로 NVM 으로 Node 를 설치할 때 전혀 문제가 없었는데, 이번에 집에 맥미니 M1 을 구매하여 개발환경을 셋팅하던 중 NVM 으로 Node ( <= v14 ) 를 설치할 때의 이슈가 있다는 것을 알았다. 가장 최근의 Node 버전(16) 은 무리없이 설치되는데, Node v10, v12, v14 와 같은 이 전 버전들은 정상적으로 설치가 안되더라.. 

터미널 로그

위와 같이 무한 메세지가 출력되거나, 혹은 마지막에 에러를 뱉는다.

 

아직까지 Node 는 v15 이상부터 M1 에문제없이 설치할 수 있나보다.

그래서 나는 여러 방법은 고민한 끝에 맥린이도 할 수 있는 가장 간단한 방법을 소개하고자한다. 

 

일단 터미널에서 다음과 같은 명령어를 통해 하드웨어 이름을 알아낸다.

위에서 나오는 명령어가 arm64 로 나온다면 Node 15 이상부터 설치가 된다고 보면 된다.

해당 터미널은  x64 모드에서 실행시키기 위해서 구글에 많은 정보들이 있다.

arch -x86_64 zsh

내 맥에서는 작동을 안했다.

 

그래서 나는 다른 방법을 이용했다.

  1. 일단 Finder 를 통해 응용프로그램으로 이동한 뒤 자신이 사용하는 터미널을복제한다.
  2. 이 후 해당 파일을 마우스로 우클릭하여 정보 가져오기를 클릭한다.
    복사본 복제 파일 마우스 우클릭
  3. 이 후 나오는 정보에서 'Rosetta를 사용하여 열기' 를 체크한다.
    정보 가져오기
  4. 복사복을 실행시킨 뒤 해당 명령어를 통해 하드웨어이름을 확인한다.
    x86_64 모드
  5. 정상적으로 x64 모드에서 터미널이 실행되었다면 이제 NVM 을 통해 다른 Node 버전을 설치를 진행한다.
    nvm ls # 설치된 노드버전 목록 확인
    nvm install [version] # 특정 노드 버전 설치
    nvm uninstall [version] # 설치되어있는 노드 버전 삭제
    nvm use [version] # 선택한 버전의 노드를 사용
    현재 Node 16 만 설치되어있음.

위에서 설치가 안되었던 v10 이상없이 설치 완료
v14 이상없이 설치완료

 

설치 완료 후 원래 터미널(amd64) 로 이동하여 확인한다.

Node 정상 실행

 

위 처럼 진행하면 이 전 버전의 Node 도 사용할 수 있다.

구버전의 Node를 사용하는 프로젝트가 모두 사라지는 것보단 Node 에서 하루빨리  Mac M1(Apple Silicon) 을 구버전의 Node 에서도 이상없이 설치될 수 있도록 지원하기를 바란다..!

 

잘못된 부분이 있거나, 궁금한 사항이 있으면 댓글 부탁드립니다..!!!

 

이제 NVM 에서 node 14 이하 버전이 m1(apple silicon) 에서도 이상없이 설치됩니다~

반응형