jh.nrtv

Error - npm install시 'npm ERR! gyp ERR! ...' 반복 오류 본문

Error

Error - npm install시 'npm ERR! gyp ERR! ...' 반복 오류

wlgus3 2022. 12. 23. 01:11

 

npm install시 gyp ERR라는 문구가 반복적으로 뜨면서 install이 중단됨을 확인함

 

 -> 찾아본 결과 node 버전과 

node - gyp 버전이 맞지 않아서 발생하는 문제점인 듯 보였음

 

해당 gyp가 지원하는 버전으로 node버전( v 17.16.0 ) 내려주고자 함 

 

 

1. Node.js 버전 확인

node -v		//19.xx 뜸
 

 

2. Cache 삭제

sudo npm cache clean --force
 

위의 --force 해보니 아래 오류 뜸 

npm WARN using --force Recommended protections disabled.

 

 

검색 해보니 npm에서 cache 삭제하는 방법 여럿 있기에 전부 해봄 

 

 

내 경우에는 나머지는 전부 오류 ,  'npm cache verify' 만 됐음 

npm cache verify		//내경우에는 얘 말고는 전부 오류 뜸 
npm cache clean
npm cache clean --force
npm cache clean -f

 

3. n 플러그인 설치

n을 사용하면 Node.js의 버전을 쉽고 간편하게 관리할 수가 있다.

sudo npm install -g n
 

최신 버전 설치

sudo n latest
 

안정적 버전 설치

sudo n lts
 

특정 버전 설치

sudo n 16.17.0		// 내가 원하는 16.17.0 설치
 
 
 

재시도 후

아래와 같은 오류창 반복 후 

 

cp: /usr/local/n/versions/node/16.17.0/include/node/cppgc: unable to copy extended attributes to /usr/local/include/node/cppgc: Bad file descriptor
cp: /usr/local/include/node/cppgc/common.h: Permission denied
cp: /usr/local/include/node/zconf.h: Permission denied
cp: /usr/local/n/versions/node/16.17.0/share/systemtap: unable to copy extended attributes to /usr/local/share/systemtap: Bad file descriptor
cp: /usr/local/n/versions/node/16.17.0/share/systemtap/tapset: unable to copy extended attributes to /usr/local/share/systemtap/tapset: Bad file descriptor
cp: /usr/local/share/systemtap/tapset/node.stp: Permission denied
cp: /usr/local/n/versions/node/16.17.0/share/doc: unable to copy extended attributes to /usr/local/share/doc: Bad file descriptor
cp: /usr/local/n/versions/node/16.17.0/share/doc/node: unable to copy extended attributes to /usr/local/share/doc/node: Bad file descriptor
cp: /usr/local/share/doc/node/gdbinit: Permission denied
cp: /usr/local/share/doc/node/lldb_commands.py: Permission denied
cp: /usr/local/n/versions/node/16.17.0/share/man/man1: unable to copy extended attributes to /usr/local/share/man/man1: Bad file descriptor

맨 마지막에 이런 오류 메세지 

cp: /usr/local/share/man/man1/node.1: Permission denied
   installed : v16.17.0 to /usr/local/bin/node
      active : v19.1.0 at /opt/homebrew/bin/node

 

내가 앞서 요청한 v16.17.0이 깔리긴 했지만 active는 v19.1.0이 되어있다는 것으로 해석함. 

또한 v19 버전은  homebrew에 깔려있음을 알 수 있음 

 

5. 원치않는 brew의 node를 삭제하기 위해서  "brew uninstall node"를 실행

brew uninstall node

 

이후 npm install 정상적으로 작동 확인