본인의 server는 Ubuntu 24 Lts버전을 사용중이다.
초기 셋팅에서 nvm으로 node를 16버전을 설치하였고 최근 22.14.0버전으로 node버전을 업그레이드 햇다.
기본 시스템 Node.js 버전: v16.15.1
nvm으로 설치한 버전: v22.14.0
pm2를 통해 Node 서버 실행
로그인 후 nvm use 22 하면 잘 적용됨
하지만 SSH 재접속하면 node -v가 다시 v16으로 초기화됨
Now using node v22.14.0
$ node -v
v22.14.0
# 그런데 다시 SSH 접속하면...
$ node -v
v16.15.1 😡
원인 분석
nvm은 현재 쉘 세션 안에서만 유효하다.
SSH로 접속할 때는 login shell이 실행되므로, .bashrc가 자동 실행되지 않음.
따라서, nvm use가 자동으로 적용되지 않는다.
pm2는 시스템 기본 Node 버전을 따라가므로 pm2로 실행한 앱도 node 16으로 실행됨
해결 방법 요약
1. nvm 초기화 + 버전 고정 코드를 .profile에 추가
nano ~/.profile
맨 아래에 다음 코드 추가
export NVM_DIR="NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm use v22.14.0 > /dev/null
저장 후 적용
ource ~/.profile
이제 SSH로 다시 접속해도 자동으로 Node 22버전이 적용된다.