개발일지

osx에서 nvm 셋업하기

서재원 • • javascript

가끔씩 여러가지 버젼의 node.js를 사용해야 한다면.

특정 bass나 pass가 node의 버젼을 강제하곤 합니다.
이전에 설명드렸던 IBM의 bluemix역시 node의 버젼을 0.12.x로 제한하고 있습니다.
따라서 개발환경에서는 찾지 못했던 문제들이 node버젼이 바뀌면서 나타나는 경우가 있습니다.

이러한 경우를 회피하기 위해 nvm을 사용할 수 있습니다.
nvm은 node의 버젼 관리를 도와주는 프로그램으로, 다양한 버젼의 node를 실행시키도록 도와줍니다.
따라서 어떠한 node를 실행시킬 것인지를 운영체제에게 알려주는 단계가 추가적으로 등장한다는 단점이 있습니다.
하지만, node를 버젼별로 사용해야만 하는 상황에는 매우 유용하게 사용할 수 있으리라 생각합니다.

0) homebrew를 사용해서 인스톨한 node.js 모두 삭제하기
https://github.com/creationix/nvm/issues/855#issuecomment-146115434
이 이슈에서 볼 수 있듯, v0.31.1의 nvm은 osx의 homebrew를 지원하지 않습니다.
따라서 brew를 통해서 nvm 및 node를 설치하면 충돌이 발생합니다.
nvm을 사용하시기로 마음먹었다면, homebrew를 사용해서 인스톨한 nvm, node.js를 모두 삭제해 주세요.
sudo brew uninstall node —force sudo brew uninstall nvm —force

1) nvm 설치하기
https://github.com/creationix/nvm 의 지시에 따라서 nvm을 설치합니다.
현재의 최신 버젼은 아래의 커맨드로 설치할 수 있군요.
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash

2) nvm 실행시키기
제 경우 nvm의 실행파일 위치는 /Users/cinos81/.nvm 인 모양입니다.
제 경우의 실행법은 /Users/cinos81/.nvm/nvm.sh 이 되겠군요.

3) nvm 자동 실행시키기 이제부터 실행시키는 모든 node의 버젼은 nvm이 관리하게 될 것입니다.
하지만 위 작업은 영구적인 것이 아니기 때문에, 터미널이 오픈될 때마다 실행시켜주어야 한다는 불편함이 있습니다.
따라서 사용중인 PC의 .profile, .bashrc 혹은 .zshrc에 다음의 문구를 추가해 줍니다.
source /Users/$USER/.nvm/nvm.sh

이제 터미널이 오픈될 때마다, nvm이 골라준 node를 실행시킬 수 있게 될 것입니다.

4) 특정 버젼의 node 다운로드 받아보기
현 시점에서 IBM Bluemix에서는 0.12.x 번대의 node만 사용할 수 있는 것 같습니다.
다음 커맨드를 사용해서 0.12.x번대 최신 node를 검색해 봅니다.
nvm ls-remote
25
v0.12.x 중에서 가장 최신 버젼인 v0.12.14를 다운로드 받습니다.
nvm install 0.12.14

5) 특정 버젼의 node를 사용하도록 지시하기
현재 제 컴퓨터에 몇 개의 node.js가 설치되어 있는지 확인해 볼까요?
nvm ls
25
지금은 os에 직접 설치된 node를 사용하고 있군요.
nvm에게 0.12.14를 사용하겠다고 통보합니다.
nvm use 0.12
성공입니다. 이제 모든 터미널에서 자동으로 v0.12.14 버젼의 node를 사용할 수 있게 되었습니다.

결론

homebrew와 nvm은 충돌합니다.
osx에서 nvm은 인스톨 스크립트로 설치합니다.

comments powered by Disqus