npm permission denied 오류

Angular2 예제 따라하는 시작부분에서 다음과 같은 오류가 발생하여
해결방법을 찾아보았다.


npm Error: EACCES: permission denied, mkdir ‘/.npm/xxxx’

맥OS에서 ‘npm install’ 명령을 실행하는 과정에 나왔는데
관련 모듈을 다운로드/설치 하면서 해당 디렉토리에 대한 권한이 없다고 나온 오류다.

결론부터 말하면

1. npm permission 문제를 해결하고
Fixing npm permissions
2. ~/.npm 의 모든 하위 디렉토리에 대해 소유권을 $USER:$GROUP 갖도록 해야함
sudo chown -R $USER:$GROUP ~/.npm

우선 npm permission 고치는 부분은
3가지 방법이 있는데

  1. Change the permission to npm’s default directory.
    – sudo 로 설치되었기 때문에 default directory 역시 root 계정으로 생성되었기 때문임
    – root 권한을 $USER:$GROUP 가 되도록 고치던지
  2. Change npm’s default directory to another directory.
    – ‘npm install -g’로 설치되는 위치를 자신의 home directory 밑으로 지정하던지
  3. Install node with a package manager that takes care of this for you
    – 아니면 모든 의존설치를 현재 프로젝트 폴더 아래에 다운로드 되도록 하던지

이중에서 2번이 제일 적절해 보인다.

mkdir ~/.npm-global

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

# vi ~/.profile (아래 문장을 추가)
export PATH=~/.npm-global/bin:$PATH

source ~/.profile

이렇게 해 놓고도 ‘EACCES: permission denied’ 오류가 발생하면
default directory에 대한 권한을 깨끗하게 다시한번 변경시키면 된다.

sudo chown -R $USER:$GROUP ~/.npm

 

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: