코드코코

[리눅스] 일반유정 계정에서 전역설치 시 Error: EACCES: permission denied 에러 본문

우당탕탕/에러모음집

[리눅스] 일반유정 계정에서 전역설치 시 Error: EACCES: permission denied 에러

코드코코 2021. 12. 23. 13:00

현재상황

- super user 가 아니라, 일반 유저 계정에서 npm -g install create-react-app 를 하고자

- Error: EACCES: permission denied 가 또 다시 발생

에러내용

npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /usr/local/lib/node_modules
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR! stack:
npm ERR! 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
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/2021-12-23T03_15_25_669Z-debug.log

chown 명령어로 /usr/local/lib/node_modules 의 권한을 바꾸고 다시 전역설치를 시도하였으나

또 다시 permission 에러 문제로 실패

 

해결방법

- npm docs에 Resolving EACCES permissions errors when installing packages globally 를 참고

- 두 가지 방법 : npm 재설치, npm 기본 폴더 수동 지정 ( 참고 : 윈도우에서는 적용못함)

- 후자의 방법으로 진행

 

npm 기본 폴더 수동 지정

- 자신의 계정 홈 경로에 npm global 설치 패키지 디렉토리를 만들고 글로벌 설치시에 해당 경로로 패키지가 설치 되도록 하는 방법

 

과정 

1. 홈디렉토리에서 

mkdir ~/.npm-global

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

 

2. vi 에디터로 ~/.profile 을 열어 마지막 줄에 아래 문구 추가

vi ~/.profile

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

 

- vi 에디터 사용 : i 로 편집모드 전환, esc로 편집모드 나가기, :wq 로 저장후 종료

3. 시스템 변수 업데이트

source ~/.profile

4. sudo 없이 전역 설치 해보기

npm -g install create-react-app

 

-끝-

 

 

참고:https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

 

Resolving EACCES permissions errors when installing packages globally | npm Docs

Documentation for the npm registry, website, and command-line interface

docs.npmjs.com