이미지를 따로 찍어두지 못해 아쉽지만, ec2에 노드를 설치할 때 나는 항상 기존에 nodejs를 설치하던 CLI를 이용해서 node를 설치했다.
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
node 18버전을 ec2에 설치하기 위한 명령어이다. 하지만 항상 설치후에 잘 설치가 되었는지 node -v
와npm -v
버전 상태를 확인하는데, 내가 VSC에서 작성하던 node와 npm 버전이 아닌 한단계 더 올라간 버전으로 설치가 되어 있었다.
이전 프로젝트를 진행할 때도 저 위의 명령어로 사용했었지만, 이번 프로젝트의 코드를 작성하는 사이에 node18버전의 추가적인 업데이트가 있었는지 버전이 달라지는 문제가 발생했다.
내가 프로젝트를 작성한 파일의 node는 18.12.1버전이고, 위의 명령어로 설치된 node는 18.17.0버전 이었다. 오랫만에 새프로젝트를 배포하게 되어서 버전차이가 많이 발생했고, 이로 인해 파생될 에러가 있을 수 있으니 같은 버전으로 맞춰줄 필요가 있었다.
나는 install의 반대 개념은 반드시 uninstall이라는 고정관념이 있었다. 너무나 npm에 익숙해져 모듈을 설치할때 npm i
제거할때 npm ui
를 반복적으로 사용하였기 때문이다. 하지만 Ec2 리눅스환경의 cli는 당연히 다르다.
기존에 설치된 노드를 제거하는 명령어는 아래와 같다.
sudo apt-get remove nodejs
위 명령어를 실행한 이후 node -v
, npm -v
로 버전을 확인하면 찾을 수 없다는 결과가 나오면 잘 제거된 것이다.
curl -sL https://deb.nodesource.com/setup_18.12.1 | sudo -E bash -
와 같이 기존 명령어를 변형하여
직관적인 버전명으로 설치하고 싶지만 위의 명령어는 없는 명령어 이다.
따라서 node버전별 선택적 설치를 위한 nvm(Node Version Manager)를 설치해야 한다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm을 설치하였지만 바로 적용되지 않는다. 적용하기 위해서는 터미널자체를 재시작 해주거나, 아래의 명령어로 nvm을 실행시켜 준다.
source ~/.bashrc
nvm install 18.12.1
위의 명령어를 이용해서 18.12.1버전을 설치해주고, 잘 설치가 되었는지 node -v
, npm -v
로 버전을 확인하면 된다.
만약 설치후에 위 버전으로 노드가 동작하지 않는다면 아래의 명령어를 사용하여 해당버전을 사용하게끔 해준다.
nvm use 18.12.1