검증된 문서입니다
클라우드 서버를 생성하여 이 문서의 명령을 처음부터 끝까지 그대로 실행하고 확인한 문서입니다.
- 운영체제
- Ubuntu 24.04.5 LTS · x86_64
- 설치 버전
- Node.js 24.22.0 (npm 11.19.1), nvm 0.40.8
- 테스트 서버
- DigitalOcean · 1 vCPU / 1 GB RAM / 25 GB SSD (s-1vcpu-1gb, sgp1)
- 마지막 확인
- 2026-10-15
이 문서에는 제휴 링크가 포함되어 있습니다. 링크를 통해 가입하면 코드샌드가 일정 수수료를 받을 수 있으며, 문서 내용과 평가에는 영향을 주지 않습니다.
Ubuntu 24.04 서버에 nvm으로 Node.js LTS를 설치하고, node·npm 설치 확인, 여러 버전 설치와 전환, 기본 버전 바꾸기, 「Command 'nvm' not found」·「sudo: node: command not found」 오류 해결, 깨끗하게 삭제하는 방법까지 정리합니다.
1. 준비물
- Ubuntu 24.04 LTS 서버 또는 PC 1대
sudo권한이 있는 일반 사용자 계정- 인터넷 연결 (nodejs.org와 GitHub에서 파일을 내려받습니다)
서버가 없다면 DigitalOcean의 가장 작은 Droplet(1 vCPU · 1GB)을 생성해 보세요. 이 Droplet으로도 충분히 Node.js를 설치하고 실행할 수 있습니다. 이 문서의 모든 과정은 Droplet(1 vCPU · 1GB 메모리 · 25GB SSD · Ubuntu 24.04 · 싱가포르)으로 서버를 생성하고, sudo 권한이 있는 일반 사용자 계정으로 확인했습니다.
2. 설치 전 상태 확인
Node.js가 설치되어 있지 않으면 node 명령을 찾을 수 없다는 메시지와 함께 apt로 설치하라는 안내가 표시됩니다.
node -vCommand 'node' not found, but can be installed with:
sudo apt install nodejs안내대로 apt로 설치하면 어떤 버전이 설치되는지 확인해 봅니다. 먼저 패키지 목록을 갱신합니다. 출력의 앞부분(Hit·Get 줄)은 생략했습니다.
sudo apt updateFetched 12.1 MB in 5s (2416 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
54 packages can be upgraded. Run 'apt list --upgradable' to see them.Candidate가 apt install nodejs로 설치되는 버전입니다. Ubuntu 24.04의 기본 저장소에는 Node.js 18이 들어 있습니다.
apt-cache policy nodejsnodejs:
Installed: (none)
Candidate: 18.19.1+dfsg-6ubuntu5
Version table:
18.19.1+dfsg-6ubuntu5 500
500 http://sgp1.clouds.archive.ubuntu.com/ubuntu noble/universe amd64 PackagesNode.js 18은 2025년 4월에 지원이 끝난 버전이고, 이 문서를 확인한 날의 최신 LTS는 24입니다. 이 문서는 apt 대신 nvm(Node Version Manager)으로 설치합니다. nvm은 nodejs.org의 공식 파일을 내려받아 사용자 폴더(~/.nvm)에 설치하기 때문에 sudo가 필요 없고, 여러 버전을 설치해 두고 명령 한 줄로 바꿔 쓸 수 있습니다.
3. nvm 설치
nvm 설치 스크립트를 내려받아 실행합니다. 이 문서는 확인한 날의 최신 버전인 nvm 0.40.8을 설치합니다. curl -o-는 내려받은 내용을 파일로 저장하지 않고 화면으로 출력한다는 뜻이고, 그 내용을 | bash로 넘겨 바로 실행합니다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash=> Downloading nvm from git to '/home/devuser/.nvm'
=> Cloning into '/home/devuser/.nvm'...
…
=> Compressing and cleaning up git repository
=> Appending nvm source string to /home/devuser/.bashrc
=> Appending bash_completion source string to /home/devuser/.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_completionnvm은 ~/.nvm 폴더에 설치되고, 터미널을 열 때마다 nvm을 불러오는 세 줄이 ~/.bashrc 끝에 추가됩니다.
4. nvm 설치 확인
설치한 터미널에서 바로 nvm을 실행하면 명령을 찾을 수 없다는 메시지가 표시됩니다. 이 터미널은 ~/.bashrc에 세 줄이 추가되기 전에 열렸기 때문입니다.
nvm --versionCommand 'nvm' not found, did you mean:
command 'nm' from deb binutils (2.42-4ubuntu2.10)
command 'num' from deb quickcal (2.4-1)
command 'nam' from deb nam (1.15-6)
…
Try: sudo apt install <deb name>안내된 패키지를 설치하지 마세요. 터미널을 닫고 새로 열거나(SSH라면 접속을 끊고 다시 접속), 아래 명령으로 ~/.bashrc를 다시 읽습니다. 출력은 없습니다.
source ~/.bashrcnvm --version0.40.85. Node.js LTS 설치
LTS는 오래 지원되는 안정 버전입니다. 특별한 이유가 없으면 LTS를 설치합니다. --lts를 붙이면 가장 최신 LTS 버전을 찾아 설치합니다.
nvm install --ltsInstalling latest LTS version.
Downloading and installing node v24.22.0...
Downloading https://nodejs.org/dist/v24.22.0/node-v24.22.0-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v24.22.0 (npm v11.19.1)
Creating default alias: default -> lts/* (-> v24.22.0 *)처음 설치한 버전은 기본 버전(default)으로 지정되어, 새 터미널을 열 때마다 이 버전이 사용됩니다. node, npm, npx가 실행되는지 확인합니다.
node -vv24.22.0npm -v11.19.1npx -v11.19.1실행되는 node 파일의 위치도 확인할 수 있습니다. 사용자 폴더 안의 .nvm 폴더에 설치되어 있습니다.
which node/home/devuser/.nvm/versions/node/v24.22.0/bin/node6. 다른 버전 설치와 전환
설치할 수 있는 버전은 nvm ls-remote로 확인합니다. 숫자를 적으면 그 메이저 버전만 표시되고, tail -n 3은 마지막 3줄만 보여 준다는 뜻입니다.
nvm ls-remote 22 | tail -n 3 v22.23.1 (LTS: Jod)
v22.23.2 (LTS: Jod)
v22.23.3 (Latest LTS: Jod)Node.js 22를 추가로 설치합니다. 메이저 버전만 적으면 그 버전의 최신 버전이 설치되고, 지금 열려 있는 터미널은 바로 그 버전으로 바뀝니다.
nvm install 22Downloading and installing node v22.23.3...
Downloading https://nodejs.org/dist/v22.23.3/node-v22.23.3-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v22.23.3 (npm v10.9.9)node -vv22.23.3설치된 버전 목록을 확인합니다. ->가 붙은 것이 지금 터미널에서 쓰는 버전이고, default는 새 터미널을 열 때 쓰는 버전입니다. 아래쪽에 이어지는 lts/… 줄은 버전 이름 목록이라 생략했습니다.
nvm ls-> v22.23.3
v24.22.0
default -> lts/* (-> v24.22.0)nvm install 22로 바뀐 것은 그 터미널뿐입니다. 터미널을 새로 열면 다시 기본 버전인 v24.22.0이 사용됩니다.
node -vv24.22.0지금 터미널만 다른 버전으로 바꿀 때는 nvm use를 씁니다.
nvm use 22Now using node v22.23.3 (npm v10.9.9)node -vv22.23.3새 터미널에서도 계속 22를 쓰려면 기본 버전을 바꿉니다.
nvm alias default 22default -> 22 (-> v22.23.3)터미널을 새로 열면 22가 사용됩니다.
node -vv22.23.3기본 버전을 다시 24로 돌리고, 지금 터미널도 기본 버전으로 바꿉니다.
nvm alias default 24default -> 24 (-> v24.22.0)nvm use defaultNow using node v24.22.0 (npm v11.19.1)7. npm으로 첫 프로젝트 실행
설치가 제대로 되었는지 npm 패키지를 하나 설치해 실행해 봅니다. 홈 폴더 아래에 hello-node 폴더를 만들고 들어갑니다. npm init -y는 질문 없이 기본값으로 package.json 파일을 만든다는 뜻입니다.
mkdir hello-node && cd hello-node
npm init -yWrote to /home/devuser/hello-node/package.json:
{
"name": "hello-node",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "commonjs"
}날짜를 다루는 dayjs 패키지를 설치합니다.
npm install dayjsadded 1 package, and audited 2 packages in 1s
found 0 vulnerabilitiesdayjs를 쓰는 index.js 파일을 만들고 실행합니다. 첫 줄은 따옴표 안의 내용으로 파일을 만드는 명령이라 출력이 없습니다.
echo "const dayjs = require('dayjs'); console.log('Hello Node.js', process.version, dayjs().format('YYYY-MM-DD'));" > index.js
node index.jsHello Node.js v24.22.0 2026-10-15Node.js 버전과 오늘 날짜가 표시되면 Node.js와 npm이 모두 정상입니다.
8. 문제 해결
Command 'nvm' not found, did you mean:
nvm을 설치하기 전에 열어 둔 터미널에서 실행했다는 뜻입니다. 이 터미널은 설치 후 ~/.bashrc에 추가된 세 줄을 읽지 않았습니다. 터미널을 닫고 새로 열거나 source ~/.bashrc를 실행하세요. 함께 표시되는 패키지 목록은 이름이 비슷한 다른 프로그램이라 nvm과 관계없으므로 설치하지 않습니다. 새 터미널에서도 같으면 tail -n 3 ~/.bashrc로 NVM_DIR 세 줄이 있는지 확인하세요.
sudo: node: command not found
nvm으로 설치한 Node.js는 사용자 폴더(~/.nvm)에 있는데, sudo는 명령을 찾는 경로(PATH)를 시스템 기본 경로로 바꿔 실행하기 때문에 이 폴더를 찾지 못합니다. node·npm은 sudo 없이 실행하세요.
sudo node -vsudo: node: command not foundCommand 'node' not found, but can be installed with:
Node.js가 설치되지 않았거나, nvm을 불러오지 않은 터미널이라는 뜻입니다. 먼저 nvm --version으로 nvm이 실행되는지 확인하세요. nvm도 찾을 수 없다면 위 항목대로 터미널을 새로 열고, nvm은 실행되는데 이 메시지가 나오면 nvm ls로 설치된 버전이 있는지 확인하세요. 안내된 sudo apt install nodejs는 Ubuntu 저장소의 Node.js 18을 설치하므로 실행하지 않습니다.
nvm: Cannot uninstall currently-active node version
지금 터미널에서 쓰고 있는 버전은 삭제할 수 없습니다. nvm use로 다른 버전으로 바꾼 뒤 삭제하세요. 9단계에서 실제 메시지를 볼 수 있습니다.
9. 삭제하기
Node.js 버전 하나만 삭제
nvm으로 설치한 버전 중 하나만 지울 때는 nvm uninstall을 씁니다. 먼저 홈 폴더로 돌아갑니다. 지금 쓰고 있는 버전은 삭제되지 않습니다.
cd ~
nvm uninstall 24nvm: Cannot uninstall currently-active node version, v24.22.0 (inferred from 24).쓰고 있지 않은 22는 삭제됩니다.
nvm uninstall 22Uninstalled node v22.23.3nvm ls-> v24.22.0
default -> 24 (-> v24.22.0)nvm과 Node.js 모두 삭제
nvm과 nvm으로 설치한 Node.js는 모두 ~/.nvm 폴더 안에 있습니다. 먼저 3단계에서 ~/.bashrc에 추가된 세 줄을 확인합니다.
tail -n 3 ~/.bashrcexport 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 폴더와 npm이 내려받은 패키지를 보관하는 ~/.npm 폴더, 7단계의 연습용 ~/hello-node 폴더를 지웁니다. 이어서 ~/.bashrc에서 NVM_DIR이 들어간 세 줄을 지웁니다. sed -i는 파일을 바로 고친다는 뜻이고, /NVM_DIR/d는 NVM_DIR이 들어간 줄을 지운다는 뜻입니다. 두 명령 모두 출력이 없습니다.
rm -rf ~/.nvm ~/.npm ~/hello-node
sed -i '/NVM_DIR/d' ~/.bashrc터미널을 닫고 새로 열어 확인합니다. node와 nvm 모두 명령을 찾을 수 없다고 표시되면 삭제된 것입니다.
node -vCommand 'node' not found, but can be installed with:
sudo apt install nodejsnvm --versionCommand 'nvm' not found, did you mean:
command 'nsm' from deb linuxptp (4.0-1ubuntu1.1)
command 'nam' from deb nam (1.15-6)
command 'nm' from deb binutils (2.42-4ubuntu2.10)
…
Try: sudo apt install <deb name>직접 해 보기
서버가 없다면 아래 업체에서 몇 분이면 Ubuntu 서버를 만들 수 있습니다. 이 문서는 DigitalOcean 에서 검증했습니다.
이 문서가 도움이 됐나요? 틀린 곳이나 바뀐 내용이 있으면 알려 주세요.
내용 정정 요청