본문 바로가기
BACKEND/Node.js+NestJS

fnm install - fast node manager

by 드로니뚜벅이 2024. 6. 24.

새로운 서버 장비에 노드(Node.js)를 설치하려고 웹페이지(www.nodejs.org)를 방문했더니 이전과 뭔가가 달라졌네요.

 

개발을 하다 보면 여러 개의 노드 버전을 사용하게 되는데 이럴 때 노드 버전 관리자가 필요합니다. 주로 nvm으로 관리했었는데 fnm이라는 관리자가 생겨서 구글링을 해 보니 제법 괜찮은 것 같아서 갈아탔습니다.

 

fnmFast Node Manager의 약어로 Node.js 버전 관리 도구 중 하나입니다. fnm은 빠르고 간단한 CLI 도구로, 다양한 Node.js 버전을 쉽게 설치하고 관리할 수 있습니다. 제작자가 fnm을 만든 계기는 nvm이 너무 느려서였다고 합니다. nvm에 영향을 받아서인지 nvm과 비슷한 인터페이스를 가지고 있습니다.

 

특징을 짧게 설명드리면 아래와 같습니다.

  • 크로스플랫폼(Cross-platform) 지원
  • Rust로 작성하여 스트립트로 작성된 nvm 보다 속도가 훨씬 빠름
  • 프로젝트에 진입하면 자동으로 node version 변환 가능
  • 설치와 구성이 nvm보다 쉬움

 

fnm 설치

$ curl -fsSL https://fnm.vercel.app/install | bash

curl 이 설치되어 있지 않으면 설치하셔야 합니다.

$ sudo apt install curl

참고로, 처음에 "sudo snap install curl" 로 설치해서 fnm이 설치되지 않더군요. 그래서 삭제하고("sudo snap remove curl") apt 로 설치했더니 정상적으로 실행되었습니다.

 

쉘에서 fnm 을 실행했을 때 아래와 같은 메시지가 출력되면 .bashrc 파일을 다시 실행해 줘야 합니다.

$ fnm --version
Command 'fnm' not found, did you mean:
  command 'fnt' from deb fnt (1.4.1-1)
  command 'frm' from deb mailutils (1:3.14-1)
  command 'fdm' from deb fdm (1.9+git20181219-1build1)
  command 'fim' from deb fim (0.5.3-9)
  command 'fm' from deb fmtools (2.0.8)
  command 'fcm' from deb fcm (2021.05.01-2)
  command 'nm' from deb binutils (2.38-4ubuntu2.3)
Try: sudo apt install <deb name>
$
$ source ~/.bashrc
$ fnm --version
fnm 1.37.1
$

 

 

노드 설치

그럼, 이제 원하는 노드버전을 설치합니다. 소숫점을 붙이지 않고 정수형태로 입력하면 lts를 다운받습니다.

fnm install {Node.js version}
$ fnm install 20
Installing Node v20.15.0 (x64)
00:00:03 ██████████████████████████████████████████████████████████ 24.43 MiB/24.43 MiB (7.82 MiB/s, 0s)
$ node -v
v20.15.0
$

최신 버전을 설치하려면 "fnm install --lts" 명령어를 사용합니다.

 

노드 버전 선택

fnm install 을 통해 여러 개의 노드 버전을 설치할 수 있지만 특정 버전을 선택해서 하나만 사용해야 하고 다른 버전을 사용하려면 버전을 변경해서 사용해야 합니다.

fnm use {Node.js version}

사용하려는 버전이 설치되어 있지 않으면 다운로드 받아서 해당 버전으로 선택합니다.

$ fnm use 18
Can't find an installed Node version matching v18.x.x.
Do you want to install it? answer [y/N]: y
Installing Node v18.20.3 (x64)
00:00:02 ████████████████████████████████████████████████████████████████████████████████ 22.88 MiB/22.88 MiB (7.69 MiB/s, 0s)
Using Node v18.20.3
$
$ node -v
v18.20.3
$

 

 

주요 명령어

fnm ls-remote : 설치 가능한 버전 리스트 확인하기

$ fnm ls-remote
v0.1.14
v0.1.15
...
v20.14.0 (Iron)
v20.15.0 (Iron)
...
v22.1.0
v22.2.0
v22.3.0
$

 

fnm ls : 시스템에 설치된 노드 버전 리스트 확인하기

$ fnm ls
* v18.20.3
* v20.15.0 default
* system
$

 

fnm current : 현재 선택된 노드 버전 확인하기 (node -v 명령어와 동일한 결과)

$ fnm current
v20.15.0

 

 

참고사이트

 

 

 

'BACKEND > Node.js+NestJS' 카테고리의 다른 글

Windows NVM 설치하기(install)  (1) 2023.12.17
Fastify 알아보기  (1) 2023.11.25
NestJS 알아보기  (0) 2023.11.25
Swagger 사용해 보기  (0) 2023.02.03
NVM (Node Version Manager) - 노드 버전 관리하기  (0) 2022.04.15