npm install -g less 작동하지 않음 : EACCES : 권한이 거부되었습니다


202

phpless를 덜 설정하여 저장시 .less 파일을 .css로 컴파일 할 수 있습니다. node.js를 설치했으며 다음 단계 (이 https://www.jetbrains.com/webstorm/help/transpiling-sass-less-and-scss-to-css.html 에 따라 ) 에서이 명령을 실행 중입니다. 단말기

npm install -g less

그러나이 작업을 수행하면 이러한 오류가 발생합니다.

  ~  npm install -g less
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/mkdirp/0.5.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/graceful-fs/3.0.8'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/extend/3.0.0'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/readable-stream/2.0.4'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/chalk/1.1.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/xtend/4.0.1'
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
/usr/local/lib
└─┬ less@2.5.3
  ├─┬ errno@0.1.4
   └── prr@0.0.0
  ├── image-size@0.3.5
  ├── mime@1.3.4
  ├─┬ promise@6.1.0
   └── asap@1.0.0
  └─┬ source-map@0.4.4
    └── amdefine@1.0.0

npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.6
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!     at Error (native)
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! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/brentscholl/npm-debug.log

나는 여기에 완전한 멍청한 놈이며 다음에 무엇을 해야할지 확실하지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다!

답변:


353

sudo를 사용하지 않는 것이 좋습니다. 나중에 권한 문제가 발생할 수 있습니다. 위의 방법으로 작동하지만 루트가 소유 한 폴더를 사용자가 쓸 수 있도록 변경하는 것을 좋아하지는 않지만 여러 사용자에게만 문제가 될 수 있습니다. 이를 해결하기 위해 'npm users'와 함께 그룹을 사용할 수 있지만 관리 부담이 더 큽니다. https://docs.npmjs.com/getting-started/fixing-npm-permissions 문서의 권한을 처리하는 옵션에 대해서는 여기를 참조하십시오.

옵션 2로 갈 것입니다.

권한 오류 가능성을 최소화하기 위해 다른 디렉토리를 사용하도록 npm을 구성 할 수 있습니다. 이 예에서는 홈 폴더의 숨겨진 디렉토리가됩니다.

글로벌 설치 디렉토리를 작성하십시오.

 mkdir ~/.npm-global

새 디렉토리 경로를 사용하도록 npm을 구성하십시오.

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

~ / .profile 파일을 열거 나 작성하고 다음 행을 추가하십시오.

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

명령 행으로 돌아가서 시스템 변수를 업데이트하십시오.

 source ~/.profile

테스트 : sudo를 사용하지 않고 패키지를 전체적으로 다운로드하십시오.

npm install -g jshint

여전히 사용 권한 오류가 표시되면 (mac os) :

sudo chown -R $USER ~/.npm-global   

이것은 기본 우분투 설치에서 작동합니다 :

sudo apt-get install nodejs npm

https://github.com/creationix/nvmnvm 버전 관리에 더 많은 유연성을 원한다면 권장 합니다.

MacOS 사용 brew에서는 sudo최신 npm버전 을 사용하는 경우 즉시 사용할 수 있습니다 . 즐겨 :)


우분투 18.04에서 변경 사항이 모든 새로운 터미널 창에 자동으로 적용되기 전에 로그 아웃했다가 다시 로그인해야했습니다.
Alexander Nied

Alexander, 소스 명령을 사용했는지 확인 했습니까? 올바른 환경 변수를 설정하고 로그 아웃 할 필요는 없지만 작동해야합니다.
Vincent Gerris

이 $ npm install -g jshint npm ERR 작동하지 않았습니다! 종료 npm ERR 후에 쓰기! 이 실행의 전체 로그는 다음 위치에서 찾을 수 있습니다. npm ERR! /home/xx/.npm/_logs/2019-02-22T06_35_08_821Z-debug.log
Amjith 's

3
이 "MacOS 사용 brew"에 대한
감사

110

터미널 창에서 다음 명령을 실행하십시오 (참고 : $ USER 부분을 바꾸지 마십시오 ... 사용자를 얻기위한 Linux 명령입니다).

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/lib/node_modules
sudo chown -R $USER /usr/local/lib/node_modules

7
자신을 사물의 소유자로 만드는 것이 좋은 생각 /usr입니까? 다른 사람이 노드 항목을 설치하려면 어떻게해야합니까?
Mark

6
macOS High Sierra에서 나를 위해 일한 세 가지 명령 중 하나만 필요했습니다 sudo chown -R $USER /usr/local/lib/node_modules. @Mark 사실이지만 한 명의 사용자 만 있으면 문제가되지 않습니다.
Fabian von Ellerts

@FabianvonEllerts 글쎄, 더 이상 sudo가 필요하지 않기 때문에 실수로 시스템 파일을 삭제하는 것이 더 쉽습니다 ... 나는 혼자있을 때도 모범 사례를 따르지만 물론 그것은 당신에게 달려 있습니다.
Mark

한 명의 사용자가 있고 심지어는 한 명의 사용자가 / usr 하위 디렉토리를 소유하고 싶지 않은 경우가 아니라면 Mark와 함께 있습니다.이 경우 그룹을 더 잘 사용하십시오. 그러나 아마도 더 좋을 것입니다. 내 대답에서 언급했듯이 brew를 사용하면 상자에서 뿌리를 내리지 않고 작동합니다.
Vincent Gerris

11

권한 오류를 피하려면 노드 버전 관리자를 사용 하여 노드 및 npm을 다시 설치하십시오 ( npm 문서에 작성 됨 ).

OSX에서 :

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

또는이 기사를 따르십시오 :

http://dev.topheman.com/install-nvm-with-homebrew-to-use-multiple-versions-of-node-and-iojs-easily/

Windows 사용자는 nvm-windows를 설치해야합니다 . nvm 설치 방법에 대한 추가 도움말은 nvm readme를 참조하십시오 .

그런 다음 예를 선택하십시오.

nvm install 8.0.0
nvm use 8.0

이제 다시 시도해 볼 수 있습니다.

npm install -g less

1
이것을 사용하여 CodeSandbox에 패키지를 설치하는 권한 문제를 해결했습니다.
Keith Taylor

11

맥 OS X 답변

node_modules 디렉토리에 대한 쓰기 권한이 없습니다

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules

쓰기 권한이있는 디렉토리에 사용자 추가

  1. node_modules를 포함하는 폴더 열기

    / usr / local / lib /를여십시오

  2. node_modules 폴더에서 cmd + I를 수행하여 권한 대화 상자를여십시오.
  3. 공유 및 권한 섹션에서 사용자가 읽기 및 쓰기 권한을 갖도록 추가 여기에 이미지 설명을 입력하십시오

가장 쉽고 맥 OS에 대한 가장 효율적인 솔루션
itsazzad

8

여기에 이미지 설명을 입력하십시오sudo -i를 사용하여 $ root로 전환 한 다음 npm install -g xxxx를 실행하십시오.


7

내 Mac 환경

sudo chown -R $USER /usr/local/lib/node_modules

문제를 해결하다


나는 이것이 이미 @VagnerRodrigues의 답변에서 다뤄 졌다고 생각합니다.
entpnerd

네, 그것은 난 그냥 맥 환경에 대한 언급이다
Asadut 자만

3

아래 명령을 누르십시오 :

sudo chown -R $USER /usr/local/lib/node_modules

그것을 분해하자 :

수도

이 명령을 시스템 수퍼 유저 인 루트로 실행하고 있음을 의미합니다. 해당 폴더에 쓸 수있는 권한이 없기 때문에 root는 모든 권한을 수정할 수 있습니다. 이 명령은 또한 시스템이 확인을 위해 암호를 요구할 것임을 의미합니다.

chown

파일 또는 폴더의 소유자를 변경하는 데 사용하는 명령입니다. 소유자를 재귀 적으로 변경하도록 -R 옵션을 설정하여 소유자가 이미 포함 된 모든 파일에 액세스 할 수 있도록합니다.

$ USER

사용자 이름으로 자동 설정되는 환경 변수입니다.

마지막 부분은 폴더 경로입니다.

이 경로를 실행하면 폴더가 만들어 지므로 npm install -g 명령을 안전하게 실행할 수 있습니다!


0

제안 된 모든 해결책을 시도했지만 아무것도 효과가 없었습니다.

macOS Catalina 10.15.3을 사용하고 있습니다

/ usr / local /로 이동하십시오

bin 폴더> 정보 입수를 선택하십시오.

공유 및 권한에 사용자를 추가하십시오. 읽기 및 쓰기 권한. 여기에 이미지 설명을 입력하십시오

그리고 터미널로 가서 npm install -g @ ionic / cli를 실행하십시오.

그것은 나를 도왔다.


-1

리눅스에서는 모든 권한을 다음과 같이 얻는다 :

sudo su


-3

안녕 나는 그냥 추가, 우분투 (18)를 사용하고 있는데 프리즈를 설치할 때 나도이 오류 메시지를 받았습니다했다 sudo전면에

sudo npm i -g prisma
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.