EtoC

NVM download fail 본문

BackEnd/NodeJs

NVM download fail

게리드 2023. 8. 1. 14:20

프로그램을 개발할때 아예 기초부터 설정하는것이 아닌 다른사람이 작성하여 공유한 코드를 가져오거나 다운로드 받아서 사용하게된다.
JAVA에는 Maven,Gradle(최근)이 있고 Python에는 PyPi가 있다.
Node.js도 다른사람들이 작성한 라이브러리들을 모아둔 것이 있는데
그게바로 NPM(Node Package Manager)이다.

과거에는 npm도 다운 받아서 설치해야했지만 근래에는 node.js를 설치하면 npm도 자동적으로 설치되기때문에 따로 다운받을 필요가 없다.

1.npm?

- npm publish 기능명 : 내가만든 기능을 npm에 올리는 명령어

- npm install 기능명 : 다른사람들이 만든 기능을 다운받는 명령어

하지만 npm의 다운로드 속도가 느리다고 생각하여 더 빠르게 동작가능한 기술이 바로 facebook에서 개발한 yarn이다.

2.yarn?

yarn을 사용하기 위해서는 npm이 설치되어있어야한다.
왜냐하면 facebook이 yarn을 만들어서 npm에 publish 했기때문에 yarn을 npm으로 설치해야한다.

npm i -g yarn
sudo npm install -g yarn

설치후 아래의 명령어를 통해서 yarn이 설치되었는지 확인할 수 있다.

yarn --version

npm i yarn을 입력하고 버전을 확인하면 zsh: command not found: yarn 오류가 뜨는데, 글로벌 설치를 하지 않았기때문에 시스템 경로에 인식되지 않는것이다.

npm i -g yarn

을 입력하고 다시 yarn --version을 입력하면 잘 뜨는것을 확인할 수 있다.
yarn을 설치했다면 아래의 명령어를 사용해서 npm보다 빠르게 받을 수 있다.

yarn add 기능명

1. 문제 발생

기업협업 첫날인데 첫번째 문제가 발생했다.

회사에서 작업을 시작했을때 사용했던 node 버전이 14여서 14로 바꿔야했는데

왜인지 14 버전을 다운로드하려고하면 무한 다운실패 재시도가 발생하였다.

(연초에 NVM을 사용했기에 금방할 줄 알았는데..자만은 금지다.)


2. 해결과정

1. brew update

일단 내 nvm에는 16버전과 18버전이있는데 14버전을 다운받으려하면 똑같은 문자들이무한이 나열되면서 고양이가 날아다니기 시작했다.
중지하고 확인한 에러코드는 node error 2였는데, 검색해도 마땅한 정보가 없었다.
에러코드들을 좀 더 살펴보니 그냥 install failed 가뜨고 다시 다운받고 이과정의 연속이였다.

일단 nvm이 존재하는데 설치가 자꾸 실패해서 nvm부터 다시 설치해보기로했다.
한동안 brew update를 하지않아서 일단 brew update 부터 해주었다.

brew update

업데이트를 하니 자동적으로 nvm도 업데이트가 되었다.

위의 이미지를 보면 나는 이미 NVM이 작동하지만 디렉토리가 없다고 한다.

2. npm 관리용 폴더 생성

아래의 명령어를 입력하면 노드 버전들을 관리할 폴더가 생성된다.

mkdir ~/.nvm

3. NVM 설정하기

~/ .profile
code ~/.zshrc
vim ~/ .zshrc

NVM 을 설정하기위해 vim을 열거나 vscode로 열어 아래의 코드를 입력해주자.

export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh"  # nvm이 사용할 디렉토리 설정
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && . "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  
# homebrew로 설치시 nvm의 실행스크립트 nvm.sh를 불러옴

수정시 i를 눌러 입력하고 나올때는 esc 누르고 :wq입력하면 된다.

입력후 source ~/ .zshrc 같이 source를 붙여 갱신해줘야한다.

이제 원하는 버전을 설치하면 끝~

4. 원하는 버전 설치하기

npm install node 14.14.0

인데, 여전히 같은 문제가 발생했다.
다운로드 시도를 하고 실패하고 재시도하고...문제의 원인이 뭘까..
처음에는 내가 설치하려는 버전이 너무 옛날이라서 그런가하고 다른 버전들을 찾아서 시도해보았다.

nvm ls-remote

하지만 여전한 실패와 반복..

(아니 지금보니 내가 사용하는 node19.5버전도있는데 왜 그런버전은없다고 뜬거지..?사용할 수없다였나? 스샷이 없어서 모르겠다.)


결론부터 말하면 기존에 사용하고 있던 node.js의 버전떄문이였다.

이 노드 19.5의 존재때문에 다른 nvm의 버전들이 받아지지않고 무한 실패가뜬것.

확인한 방법은 nvm use 다른버전을 눌렀을때 node 19.5 어쩌고하고 터미널에떠서 이버전에 문제가 있구나했다.

(사용중인 노드 버전만 지우는 법도 몰라서 찾아다녔다..)

brew 로 node를 지우니 nvm의 다른버전이 설치된것을 확인할 수 있었다.

brew uninstall node@버전

NVM 버전 선택후 사용하기

nvm use 원하는 버전

나는 디폴트로 14버저을 사용하여 사용할 프로젝트에서 이과정을 다시 거치지 않게하였다.

nvm alias default 노드버전

기존의 프로젝트도 다시 18버전을 선택해서 돌려보니 잘돌아갔다.


NVM 삭제후 재설치의 경우

nvm 삭제

나는 nvm이 자동 업데이트되고 nvm -v 를 입력했을때 0.39.4 버전이 떠서 삭제하지는 않았다.

rm -rf "$NVM_DIR"
brew uninstall nvm

nvm 재설치

아래의 명령어를 입력하여 nvm 을 다시 설치.

brew install nvm