본문 바로가기

NPM/packages

[#. ngrok] install failed ngrok error 해결하기

반응형

 

 

 

 

 

로컬 웹 서버를 모바일 디바이스에서 확인하기 위해 ngrok을 이용하려고 한다

 

ngrok

NAT와 방화벽 뒤에 있는 로컬 서버 를 안전한 터널을 통해 공개 인터넷에 노출시켜 주는 도구

즉, 포트 포워딩과 같은 네트워크 환경 설정 변경없이 로컬에 실행중인 서버를 안전하게 외부에서 접근 가능하도록 해주는 도구

 

 

먼저 아래 명령어를 통해 ngrok을 설치하려고 했다

 

npm install -g ngrok

 

하지만 에러가 발생했다

 

ngrok@4.2.2 postinstall: `node ./postinstall.js`

Failed at the ngrok@4.2.2 postinstall script.

 

서치해 보니 Mac에서만 발생하는 에러라고 한다

 

기본적으로 npm은 수명 주기 스크립트(예: postinstall)를 일반 사용자(root)가 아닌 nobody 사용자로 실행한다

근데 아래 명령어로 설치하면 postinstall이 root로 실행되어 ngrok bin 파일이 /usr/lib/node_modules/ngrok으로 성공적으로 추출되고 오류 없이 설치가 완료될 수 있다고 한다
Linux 또는 OS X에 전체적으로 ngrok을 설치하는 모든 사용자에게 필요하다

글로벌 패키지는 %AppData%\npm\node_modules에 문제 없이 설치되므로 Windows에서는 문제가 되지 않는다고 한다

 

unsafe-perm은 패키지 스크립트를 실행할 때 UID / GID (User Identifier / Group Identifier) 전환을 제한하는 플래그

이 플래그는 루트가 아닌 사용자가 패키지를 설치하지 못하도록 명시적으로 false로 설정된다

 

 

 

sudo npm install --unsafe-perm -g ngrok

 

 

위 명령어를 입력하면 설치가 잘 된다

하지만 npm 모듈을 global하게 설치할 때 sudo 권한으로 설치하는 것에 대한 보안 이슈는 생각해 보아야 한다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

아래를 참고했다

https://github.com/bubenshchykov/ngrok/issues/115

 

npm global install on Ubuntu 17.10 fails · Issue #115 · bubenshchykov/ngrok

Similar to issue#87, I cannot do an npm install of ngrok globally. I have tried it on Ubuntu 17.10 and Raspbian Stretch. Perhaps the issue was fixed and now it is broken again? $ sudo npm install -...

github.com

 

반응형