NVM

Node Version Manager의 줄임말입니다.
말 그대로 Node의 Version 들을 관리 해주는 도구입니다.

여러 Node.js 를 설치 하고 달리 사용 해야 할 경우 쉽게 전환해주는 shell script입니다.

NVM 은 POSIX-compliant shell (sh, bash, ksh, zsh, dash)에서 작동합니다.

  • Linux / Unix
  • macOS
  • Windows WSL

NVM은 왜 사용 할까요?

개발환경에 따라 Node.js 버전을 달리 사용 해야 할 경우에 용이하게 버전을 바꿔서 사용할 수 있게 도와줍니다. 예시로 아래와 추가 적인 상황이 있을 수 있습니다.

  • 협업을 할때, 또는 다양한 프로젝트를 동시에 진행해야 할 때
  • 다양한 라이브러리 / 프레임워크 / 개발툴의 버전 호환 문제때문에
  • LTS(Long Time Support) 버전이 달라 졌을 경우
  • 최신 버전을 사용해야 할 경우
  • 과거 사용 했던 버전을 사용해야 할 경우

NVM 설치하기

최신버전을 다운 받기 원하면 NVM Repository(공식 문서) 참고 해주시길 바랍니다.

NVM 공식문서에서 제공한 install & update 를 도와 주는 script 문을 작성합니다.

curl 사용 할 경우

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

wget 사용 할 경우

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

위 2개 중 하나의 명령어를 입력 할 경우 2가지의 변화가 생깁니다.

  1. 현재 사용자의 홈 디렉토리에 .nvm 디렉토리가 생성됩니다.
chaser@DESKTOP-Q89E2CK:~$ pwd
/home/chaser
chaser@DESKTOP-Q89E2CK:~$ ls -a | grep .nvm
.nvm
  1. 쉘 설정 파일에 nvm 명령어 스크립트가 추가됩니다.
  • 쉘의 종류에 따라 파일들이 다릅니다.(~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc)
chaser@DESKTOP-Q89E2CK:~$ tail -n 3 .bashrc
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

.nvm 디렉토리

chaser@DESKTOP-Q89E2CK:~$ ls -la .nvm
total 300
drwxr-xr-x 8 chaser chaser   4096 Sep  1 13:37 .
drwxr-xr-x 9 chaser chaser   4096 Sep  1 21:45 ..
drwxr-xr-x 3 chaser chaser   4096 Sep  1 13:37 .cache
-rw-r--r-- 1 chaser chaser    140 Sep  1 13:36 .dockerignore
-rw-r--r-- 1 chaser chaser    523 Sep  1 13:36 .editorconfig
drwxr-xr-x 8 chaser chaser   4096 Sep  1 13:36 .git
-rw-r--r-- 1 chaser chaser      9 Sep  1 13:36 .gitattributes
drwxr-xr-x 3 chaser chaser   4096 Sep  1 13:36 .github
-rw-r--r-- 1 chaser chaser    253 Sep  1 13:36 .gitignore
-rw-r--r-- 1 chaser chaser     51 Sep  1 13:36 .mailmap
-rw-r--r-- 1 chaser chaser     19 Sep  1 13:36 .npmrc
-rw-r--r-- 1 chaser chaser   2713 Sep  1 13:36 .travis.yml
-rw-r--r-- 1 chaser chaser   5424 Sep  1 13:36 CODE_OF_CONDUCT.md
-rw-r--r-- 1 chaser chaser   1057 Sep  1 13:36 CONTRIBUTING.md
-rw-r--r-- 1 chaser chaser   3723 Sep  1 13:36 Dockerfile
-rw-r--r-- 1 chaser chaser   1113 Sep  1 13:36 LICENSE.md
-rw-r--r-- 1 chaser chaser   5361 Sep  1 13:36 Makefile
-rw-r--r-- 1 chaser chaser  39200 Sep  1 13:36 README.md
-rw-r--r-- 1 chaser chaser    882 Sep  1 13:36 ROADMAP.md
drwxr-xr-x 3 chaser chaser   4096 Sep  1 13:37 alias
-rw-r--r-- 1 chaser chaser   2201 Sep  1 13:36 bash_completion
-rwxr-xr-x 1 chaser chaser  14926 Sep  1 13:36 install.sh
-rwxr-xr-x 1 chaser chaser    344 Sep  1 13:36 nvm-exec
-rw-r--r-- 1 chaser chaser 134284 Sep  1 13:36 nvm.sh
-rw-r--r-- 1 chaser chaser   2228 Sep  1 13:36 package.json
-rwxr-xr-x 1 chaser chaser   1235 Sep  1 13:36 rename_test.sh
drwxr-xr-x 9 chaser chaser   4096 Sep  1 13:36 test
-rwxr-xr-x 1 chaser chaser   2364 Sep  1 13:36 update_test_mocks.sh
drwxr-xr-x 3 chaser chaser   4096 Sep  1 13:37 versions

공식문서에서 제공한 script 문을 작성 할 경우 nvm github(공식문서)에 있는 파일 들을 .nvm 디렉토리에 설치를 도와주고 따로 환경변수를 변경 하지 않아도 환경변수 값을 작성해줍니다.

NVM 명령어

자세한 명령어 확인하기

$ nvm --help

이는 NVM 공식문서(usage) 부분에서 확인 할 수 있습니다.

NVM Version 확인하기

$ nvm --version

Node 설치하기

# 최신버전 설치하기
$ nvm install node
# 특정 버전 설치하기
$ nvm install {version}         # ex1) nvm istall v13  ex2) nvm istall 14.17.6
# LTS 버전 설치하기
$ nvm istall --lts

node를 설치 할 경우 다음과 같은 경로에 설치가 됩니다.

chaser@DESKTOP-Q89E2CK:~/.nvm/versions/node$ pwd
/home/chaser/.nvm/versions/node
chaser@DESKTOP-Q89E2CK:~/.nvm/versions/node$ ls
v14.17.6

NVM 에서 지원 하는 node 버전은 다음 명령어로 확인이 가능합니다.

$ nvm ls-remote

2021-09-02 기준 node.js 사이트 최신 버전은 16.8.0 버전이며 nvm 에서 제공하는 최신 버전 또한 16.8.0 버전입니다.

Node 설치한 목록 확인하기

chaser@DESKTOP-Q89E2CK:~/.nvm/versions/node$ nvm ls
->     v14.17.6
         system

지금 현재 nvm을 통해서 다운로드 받은 node 는 v14.17.6 버전입니다. 그런데 system 이란 글자가 있습니다. 이는 다음과 같이 확인할 수 있습니다.

chaser@DESKTOP-Q89E2CK:~/.nvm/versions/node$ nvm run system --version
Running node system (npm v6.14.4)
v10.19.0

Node 버전 선택하기

$ nvm use {version}
chaser@DESKTOP-Q89E2CK:~/.nvm/versions/node$ nvm ls
->     v14.17.6
         system
default -> lts/* (-> v14.17.6)

use 명령어를 사용 할 경우 새로운 쉘을 실행 하거나 다시 띄우게 되면 node의 버전이 default 버전으로 돌아가게 됩니다.

이를 방지하기 위해서 기본적으로 제공할 버전을 다음과 같이 변경 합니다.

$ nvm alias default {version}

# 설치되어 있는 가장 최신버전의 node를 defalut로 사용하기
$ nvm alias default node

현재 사용중인 버전 확인하기

$ nvm current

node.js 설치 경로 확인하기

$ which node

필요 없는 node 버전 삭제하기

$ nvm uninstall {version}

'Node.js' 카테고리의 다른 글

[Node] NVM-windows 설치하기  (0) 2021.09.01
[Node] Windows에서 Node.js 설치하기  (0) 2021.09.01

참고한 사이트는 다음과 같습니다. NVM-windows 수동 설치하기

NVM은 windows 에서 설치를 할 수 없습니다. NVM 에서는 windows 사용자 들을 위해 대안을 다음과 같이 작성했습니다.

이중 nvm-windows를 설치하겠습니다. nvm-windows는 MIT 라이센스의 오픈 소스로 Go 로 작성되어있습니다. 

nvm-windows README.md 파일을 확인해보면 Download the lastest installer를 눌러 다운로드 경로에 갑니다.

https://github.com/coreybutler/nvm-windows/releases 에서 nvm-setup 말고 noinstall 로 하여 설치를 진행 했습니다. setup은 설치프로그램으로 설치를 하기에 따로 포스팅 하지 않았습니다.

nvm-noinstall.zip을 다운로드 받고 아래의 경로를 생성 한 후 압축을 풉니다.

C:\Users\{userName}\AppData\Roaming\nvm

설치를 하고 압축을 풀면 다음과 같이 나옵니다.

설치하기 앞서 2개의 새로운 환경 변수와 1개의 환경변수를 수정해야 합니다.

  • NVM_HOME
  • NVM_SYMLINK
  • Path

NVM_HOME은 아무런 값이 없기 때문에 변수 값을 다음과 같이 작성 합니다.

C:\Users\{userName}\AppData\Roaming\nvm

NVM_SYMLINK의 변수값은 nvm 에서 직접 생성 및 관리를 해야 하기 때문에 C:\Program Files\nodejs 가 존재 해서는 안됩니다.

아무런 값이 안나오는 것이 정상입니다. nvm-windows를 설치 하기 전 nodejs 디렉토리가 있을 경우 삭제 후 설치 해야합니다.

Path 의 시스템 변수에 생성한 NVM_HOME 과 NVM_SYMLINK를 추가합니다.

설정을 모두 완료한 이후 재부팅 혹은 새로운 커멘드라인창을 열어 설치가 되었는지 확인합니다.

2-2. nvm-windows를 이용하여 node.js 설치하기

nvm install {version}

리눅스나 Mac에서 NVM 을 이용하여 lts 버전을 다운로드 받을때 처럼 입력 할 경우 다음과 같이 에러가 발생합니다.

C:\Users\Byul>nvm install --lts
--lts.0.0
Node.js v--lts.0.0 is only available in 32-bit.

따로 설치할 버전을 찾아서 install 해주겠다는 명령어를 입력해야 정상적으로 다운로드가 됩니다.

버전 확인은 다음 사이트에서 확인이 가능합니다.

아래의 코드처럼 버전을 직접 선택하여 설치를 진행 합니다.

C:\Users\Byul>nvm install 14.17.6
Downloading node.js version 14.17.6 (64-bit)...
Complete
Creating C:\Users\Byul\AppData\Roaming\temp

Downloading npm version 6.14.15... Complete
Installing npm v6.14.15...

Installation complete. If you want to use this version, type

nvm use 14.17.6

설치가 된 버전은 기존 nvm과 동일하게 확인을 할 수 있습니다.

C:\Users\Byul>nvm list

    14.17.6

설치한 Node 버전을 사용하기 위해 use 옵션을 사용해서 설정합니다.

C:\Users\Byul>nvm use 14.17.6
Now using node v14.17.6 (64-bit)

정상적으로 설정이 되었는지 다음처럼 확인 합니다.

C:\Users\Byul>node -v
v14.17.6

C:\Users\Byul>npm -v
6.14.15

node 와 npm의 버전까지 모두 확인이 되면 정상적으로 nvm과 node 설치가 된 것입니다.

'Node.js' 카테고리의 다른 글

[Node] NVM(Node Version Manager) 이란 ?  (0) 2021.09.02
[Node] Windows에서 Node.js 설치하기  (0) 2021.09.01

+ Recent posts