ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NVM (Node.js Version Manager)
    Programming 2014.08.04 22:54

    NVM (Node.js Version Manager)

    • Ruby 진영에는 rvm 이나 renv 라는 멋들어진 Version Manager 툴들이 있습니다. 이 툴들이 하는 역활은 ruby 의 여러버전을 설치해서 필요에 따라 ruby 버전을 선택해서 사용할 수 있게 해줍니다. ruby 진영에서 여러 라이브러리들이 ruby 버전을 타는 경우가 많아서 이러한 version manager 툴들이 더욱더 많이 사용이 되고 있죠.

    • 요새 node.js 진영에 express.js 를 만든 tj 가 진행하는 프로젝트인 koa.js  co.js 라는 라이브러리가 있습니다. javasript 에서 coroutine 을 사용할 수 있게 해주는 라이브러리인데 요새 이 coroutine generator 에 대해서 공부중인지라 한번 사용해보려고 알아보니 co.js 를 사용하려면 node.js 버전이 0.11.x 를 사용해야 한다고 하는군요. mac 에서는 homebrew 를 이용해서 node.js 패키지를 설치해왔는데homebrew 에서는 stable 버전인 0.10.x 만 설치가 가능합니다. 그래서 다른 방법을 찾다가 ruby  rvm 과 유사한 기능을 하는 nvm을 알게 되어 관련 내용을 정리해보고자 합니다.


    • NVM 프로젝트 페이지 : Github

    • Install
    $ curl https://raw.githubusercontent.com/creationix/nvm/v0.13.0/install.sh | bash
    
    • Install 과정을 진행하고 나면 $HOME 에 .nvm 디렉토리가 생성이 되고 $HOME/.bash_profile (for mac) / $HOME/.bashrc (for linux)에 다음과 같은 환경설정 변수가 추가가 됩니다.
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
    
    • 터미널을 재 실행하고나면 nvm 이라는 명령을 사용이 가능하게 됩니다.

    • 우선 설치가 가능한 node.js 버전을 알아볼수 있는 명령으로 리스트를 출력해봅니다.

    $ nvm ls-remote
    
        v0.10.28
        v0.10.29
        v0.10.30
         v0.11.0
         v0.11.1
         v0.11.2
         v0.11.3
         v0.11.4
         v0.11.5
         v0.11.6
         v0.11.7
         v0.11.8
         v0.11.9
        v0.11.10
        v0.11.11
        v0.11.12
        v0.11.13    
    
    • co.js 실행에 필요한 0.11.x 의 가장 최신 버전인 v0.11.13 과 stable 버전의 최신인 v0.10.30 을 설치했습니다.
    $ nvm install 0.11.13
    $ nvm install 0.10.30
    
    • 이렇게 설치된 node 버전들은 $HOME/.nvm 디렉토리에 버전별로 디렉토리가 생성되어있는 것을 볼 수 있습니다.
    $ ls -d $HOME/.nvm
    
    alias/  bin/  current/  test/  v0.10.30/  v0.11.13/
    
    • 하지만 이렇게 설치를 했다고 해도 터미널을 새로 열어서 node.js 명령을 실행하면 시행이 안되는 것을 볼 수 있습니다. 그건 매번 터미널을 새로 실행하게 되면 nvm 환경설정이 초기화 되어서 그런것인데 다음과 같은 명령으로 활성화가 가능합니다.
    $ nvm use [version]
    
    $ nvm use 0.10.30
    $ node -v
    v0.10.30
    
    $ nvm use 0.11.13
    $ node -v
    v0.11.13
    
    • 매번 이렇게 사용할 때마다 활성화 시켜주는게 귀찮아서 저는 default  alias 를 걸어서 사용중에 있습니다. 필요할 때 다른 버전으로 변경해주면 되니깐요...
    $ nvm alias default 0.11.13
    
    $ nvm list
    
        v0.10.30
    ->  v0.11.13
          system
    default -> 0.11.13 (-> v0.11.13)
    
    

    • 이런식으로 node.js 의 여러 버전을 설치해서 사용할 수 있는 nvm을 기본적인 설정방법을 정리해보았습니다. 이러한 version manager는 개발중일때는 아주 유용합니다. npm 으로 여러 라이브러리를 설치해도$HOME/.nvm/[version] 디렉토리에 격리되어서 설치가 되어서 라이브러리가 꼬여 발생하는 문제도 없을뿐더러 초기화 하는 방법도 간단합니다. $HOME/.nvm 디렉토리를 그냥 삭제만 해주면 됩니다. 물론 프로덕션 레벨에서는 그닥 필요가 없지만 개발중에는 이거저거 막 설치하는 경우가 많다보니 요러한 version manager는 아주 유용하게 사용 할 수 있는 도구라 할 수 있습니다.


    댓글 0

Designed by Tistory.