V-logue

[ubuntu] Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules' 본문

Error

[ubuntu] Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules'

보그 2022. 7. 12. 17:00

실전 프로젝트를 위한 진행 중

PM2 를 전역으로 설치할 일이 생겼다.

 

$ npm install pm2 -g

ubuntu서버에 접속한 후 똑같이 따라서 입력하니, 다음과 같은 에러가 발생했다.

 

ubuntu@ip-172-31-42-191:~$ npm install pm2 -g
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules'
npm ERR!  [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules'] {
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/usr/local/lib/node_modules'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ubuntu/.npm/_logs/2022-07-12T07_47_52_956Z-debug-0.log

몹시 당황스러웠지만, 구글은 신이기 때문에 검색으로 해결했다.

 

자신의 계정에 패키지가 글로벌하게 설치될 수 있는 directory를 만들고, 글로벌 설치할 때 그곳에

설치가 될 수 있게 설정을 해주면 된다.

 

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

일단 패키지가 설치될 directory를 만들어준다.

vi ~/.profile

그리고 위 코드를 입력해, profile에 접속해서 편집을 시작한다.

export PATH=~/.npm-global/bin:$PATH

그리고 가장 하단에 다음의 명령어를 입력하고,

source ~/.profile

저장한 후 밖으로 나와서 위 명령어를 입력하면, 변경된 내용이 적용된다.

 

참고로, Insert나 i를 누르면 편집을 시작할 수 있고,

ESC를 누른 후 :(콜론)을 입력한 다음 wq를 입력하면 저장후 종료할 수 있다.

 

이제 

$ npm install pm2 -g

 

를 입력하면, 다음과 같이 설치가 정상적으로 작동된다.

ubuntu@ip-172-31-42-191:~$ npm install pm2 -g
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

added 182 packages, and audited 183 packages in 12s

12 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

만능은 아니지만, 검색시 대부분의 사람들이 이런 방법을 제시하고 있으니

추천하는 해결방법이다.

Comments