본문으로 바로가기

NVM 을 사용하여 node, npm 설치

category 코딩/node.js 2023. 9. 4. 18:29

 

NVM 설치

NVM (node version manager) 은 이름 그대로 node 버전 관리자이다.

NVM 을 통해서 node 버전을 특정하여 설치, 사용할 수 있다. 아래 github 페이지에서 상세히 확인할 수 있다.

 

 

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13226  100 13226    0     0  41418      0 --:--:-- --:--:-- --:--:-- 53546
=> Downloading nvm as script to '/root/.nvm'

=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

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_completio

 

nvm 명령어 사용을 위해 PATH 에 등록한다.

 

$ vi ~/.bash_profile 
...(생략)...
PATH=$PATH:$HOME/bin:$home/.nvm

export PATH
$ source ~/.bash_profile

 

node 설치

이제 nvm install node 명령어로 node 를 설치하려고 하면 에러가 발생할 수 있다.

명령어에 버전을 특정하지 않으면 최신 버전으로 설치한다.

 

$ nvm install node
Downloading and installing node v20.5.1...
Downloading https://nodejs.org/dist/v20.5.1/node-v20.5.1-linux-x64.tar.gz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.7' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
nvm is not compatible with the npm config "prefix" option: currently set to ""
Run `nvm use --delete-prefix v20.5.1` to unset it

 

OS 버전이 너무 낮기 때문에 gcc 버전도 낮아서 경고가 발생한다.

이 경우 gcc 컴파일러(glibc, libstdc++ 라이브러리) 버전 업그레이드를 시도했다가는, 되려 OS 자체에 문제가 생길 수 있다.

node 버전을 다운그레이드하여 사용하는 것이 좋다. 현재 설치된 버전 확인은 nvm ls 로 한다.

 

$ nvm ls
        v20.5.1
node -> stable (-> v20.5.1) (default)
stable -> 20.5 (-> v20.5.1) (default)
...(생략)...

 

설치 가능한 버전 확인.

 

$ nvm ls-remote
        v0.1.14
        v0.1.15
        v0.1.16
...(생략)...
        v19.9.0
        v20.0.0
        v20.1.0
...(생략)...

 

오류가 발생하지 않을 때까지 버전을 낮춰가며 설치 시도해 본다.

 

$ nvm install 13.0.0
$ nvm install 12.0.0
$ nvm install 11.0.0
Downloading and installing node v11.0.0...
Downloading https://nodejs.org/dist/v11.0.0/node-v11.0.0-linux-x64.tar.gz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v11.0.0 (npm v6.4.1)
Creating default alias: default -> 11.0.0 (-> v11.0.0)



[root@096031054b3f /]# nvm use 11.0.0
Now using node v11.0.0 (npm v6.4.1)

 

11.0.0 버전에 대한 경고 메시지가 없다. 현재 OS 는 CentOS 6.10 이다.

 

$ node -v
v11.0.0
$ npm -v
6.4.1

 

설치 끝.