최근에 npm 을 업그레이드 하려다, 모든 패키지의 버전을 업그레이드 하면서 nvm 의 버전이 높아지면서 겪게 된 이슈이다.
필자는 윈도우즈 환경에서 nvm 1.1.8v 을 설치하여 사용하고 있다. 즉, nvm-windows 를 사용하고 있으며 해당 패키지의 설치는 아래 링크에서 진행하면 된다.
문제 원인
nvm exit status 5 는 admin access 에러이다. 즉, 관리자 권한이 없었기 때문에 발생한 오류이다. 종종 관리자 권한에 대한 이슈는 있었기에 관리자 권한으로 실행을 하였으나(power shell 로 실행해보지는 않았다.) 해결되지 않았기에 필자는 2번째 해결방법으로 해결하였다.
해결 방법
1. Power-shell 모드로 실행하자.
필자는 본디 nvm 1.1.7v 을 사용하고 있었다. 당시에는 nvm use <version> 명령어 사용에 문제가 없었으나 nvm 이 업그레이드 되어 1.1.8v 를 사용할때는 관리자 이슈가 발생하였다.
위 문제원인에 언급한거처럼 관리자 권한으로 실행하였음에도 동작하지 않았기에 무턱대고 삭제하였지만 여러분들은 power-shell 로 실행해 보고 안되면 2번째 방법을 권고한다.
2. 전부 삭제(다운 그레이드)
필자는 주로 nodejs 프로젝트를 진행하지 않은바 미련이 없었기에 전부 삭제를 진행하였다. 하지만 여러분들은 그렇게 하지 않기를 바란다. 필자에겐 귀찮지만 의미있는 시간이었다. 그렇지만, 굳이 따라할 필요 없는 과정이라고 생각된다..
nvm 을 설치시, 기본 경로 C:\Users\사용자명\AppData\Roaming\nvm
삭제 과정은 아래와 같다.
1. nvm 경로에서 unins000.exe 를 실행시킨다.
2. 혹시 모를 경우를 대비해 환경변수로 등록되어 있던 nvm 관련 요소까지 깔끔히 삭제한다.
3. 필자와 같이 기존 nodejs version 에 대해 미련이 없다면 nodejs 까지 삭제하여준다. nodejs 는 프로그램 제거 창에서 쉽게 삭제할 수 있다.
4. nvm 1.1.7 로 다운그레이드 해준다.
왜? 1.1.7 은 되고 1.1.8 은 안돼?
By popular demand, NVM4W 1.1.8 introduced support for developer mode. In other words, you won't receive a UAC prompt to elevate permissions if it's not explicitly necessary. If you prefer to be prompted for UAC rights, use NVM4W 1.1.7.
nvm-windows github common issue 에 따르면, 대중적인 요구에 따라 1.1.8 버전부터는 개발자 모드를 추가하였고 따라서 UAC 알람을 받지 않고 에러를 띄운다. 그러나 1.1.7 버전에서는 UAC 권한을 요청하는 알람을 받기 때문에 1.1.7에서는 오류 없이 사용 가능하다.