etc./StackOverFlow

sudo 없이 npm 발생 오류를 수정하는 방법

청렴결백한 만능 재주꾼 2022. 7. 9. 02:48
반응형

질문자 :Chad


방금 nodejs.org의 패키지를 통해 node와 npm을 설치했는데 npm으로 무언가를 검색하거나 설치하려고 할 때마다 명령을 sudo하지 않는 한 다음 오류가 발생합니다. 이것이 권한 문제라는 느낌이 듭니까? 저는 이미 관리자입니다.

 npm ERR! Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json' npm ERR! { [Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '/Users/chietala/.npm/-/all/.cache.json' } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm ERR! System Darwin 12.2.0 npm ERR! command "node" "/usr/local/bin/npm" "search" "bower" npm ERR! cwd /Users/chietala npm ERR! node -v v0.10.4 npm ERR! npm -v 1.2.18 npm ERR! path /Users/chietala/.npm/-/all/.cache.json npm ERR! code EACCES npm ERR! errno 3 npm ERR! stack Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json' npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /Users/chietala/npm-debug.log npm ERR! not ok code 0


홈 디렉토리의 권한 문제처럼 보입니다. .npm 디렉토리의 소유권을 되찾으려면 다음을 실행하십시오.

 sudo chown -R $(whoami) ~/.npm

Noah

Node를 설치할 때 사용한 권한은 npm 디렉토리 ( npm link , npm install -g 등)에 작성하는 것과 같은 작업을 수행할 때 필요합니다.

아마도 루트 권한으로 노드 설치를 실행했을 것이므로 전역 패키지 설치에서 루트 권한을 요청합니다.


솔루션 1: NVM

권한으로 해킹하지 말고 올바른 방법으로 노드를 설치하십시오.

개발 머신에서는 루트 권한으로 노드를 설치 및 실행해서는 안 됩니다. 그렇지 않으면 npm link , npm install -g 와 같은 권한이 필요합니다.

NVM (Node Version Manager)을 사용하면 루트 권한 없이 Node를 설치할 수 있으며 여러 버전의 Node를 설치하여 쉽게 사용할 수 있습니다. 개발에 적합합니다.

  1. 노드를 제거합니다(루트 권한이 필요할 수 있음). 도움이 될 수 있습니다.
  2. 그런 다음 이 페이지의 지침에 따라 NVM을 설치합니다.
  3. NVM을 통해 nvm install node

이제 npm link , npm install -g 는 더 이상 루트 권한이 필요하지 않습니다.

편집: https://docs.npmjs.com/getting-started/fixing-npm-permissions도 참조하십시오.


해결 방법 2: webi로 설치

webi 는 노드 릴리스 API에서 node 패키지를 가져옵니다. 패키지 관리자가 필요하지 않고 sudo 또는 root 액세스가 필요하지 않으며 시스템 권한을 변경하지 않습니다.

 curl -s https://webinstall.dev/node | bash

또는 Windows 10:

 curl.exe -sA "MS" https://webinstall.dev/node | powershell

nvm 과 마찬가지로 노드 버전을 쉽게 전환할 수 있습니다.

 webi node@v12

nvm (또는 아래 솔루션 3)과 달리 npm 패키지는 분리됩니다(노드 버전을 전환할 때 다시 설치해야 함).

npm 구성을 변경하지 않고 전역적으로 설치할 수 있습니다.

 npm install -g prettier

$HOME 설치되는 다른 솔루션의 자동화된 버전입니다.


솔루션 3: 지정된 사용자에 대해 전역적으로 패키지 설치

권한으로 해킹하지 말고 올바른 방법으로 npm 패키지를 전역적으로 설치하십시오.

OSX 또는 Linux를 사용하는 경우 전역 패키지에 대한 사용자 전용 디렉터리를 만들고 npmnode 를 설정하여 전역적으로 설치된 패키지를 찾는 방법을 알 수 있습니다.

sudo 없이 전 세계적으로 npm 모듈을 설치하는 방법에 대한 단계별 지침은 이 훌륭한 기사 를 확인하십시오.

참조: npm 권한 수정 에 대한 npm의 설명서 .


Yves M.

node_modules 디렉토리에 쓰기 권한이 필요합니다.

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

Xilo

"시스템 전역" 폴더의 소유자를 변경하는 것은 해킹입니다. 새로 설치할 때 "사용자 전역" 프로그램에 대해 이미 쓰기 가능한 위치를 사용하도록 NPM을 구성합니다.

 npm config set prefix ~/npm

그런 다음 해당 폴더를 경로에 추가했는지 확인합니다.

 export PATH="$PATH:$HOME/npm/bin"

NPM 모듈에 대한 @ErikAndreas답변은 sudo 없이는 전역적으로 설치되지 않으며 @sindresorhus$MANPATH 설정하는 더 긴 단계별 가이드 를 참조하세요.


Joel Purra

조심해!!! 조심해!!! 조심해!!!

chown 또는 chmod는 보안 위험 때문에 솔루션 이 아닙니다.

대신 다음을 수행하십시오.

다음을 호출하면 먼저 npm이 가리키는 곳을 확인하십시오.

 npm config get prefix

/usr이 반환되면 다음을 수행할 수 있습니다.

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

이것은 당신의 홈 디렉토리 및 지점에 NPM-디렉토리를 생성 npm 그것.

이 변경 사항을 영구적으로 적용하려면 .bashrc에 export-command를 추가해야 합니다.

 echo -e "export NPM_CONFIG_PREFIX=~/.npm-global\nexport PATH=\$PATH:~/.npm-global/bin" >> ~/.bashrc

suther

Bootstrap 3용 CSS를 컴파일하기 위해 Recess( https://github.com/twitter/recess )를 설치할 때 이 문제가 발생했습니다.

홈을 설치할 때:

 -npm install recess -g
  1. Noah가 말한 것처럼 home 디렉토리에서 권한을 잠금 해제해야 합니다.

     sudo chown -R `whoami` ~/.npm
  2. Xilo가 node_modules 디렉토리에 대한 쓰기 권한도 필요하므로 여전히 작동하지 않으면 다음을 시도하십시오.

     sudo chown -R `whoami` /usr/local/lib/node_modules
  3. 여전히 오류가 표시되면 /usr/local 권한을 수정 해야 할 수도 있습니다.

     sudo chown -R `whoami` /usr/local

이 게시물에 표시된 대로 /usr/local/ 은 Mac을 사용하는 경우 실제로 시스템 디렉토리가 아니므로 이 답변은 실제로 Mac 사용자에게 완벽하게 "안전"합니다. 그러나 Linux를 사용하는 경우 다중 사용자 친화적인 시스템 디렉토리 안전(그러나 더 복잡한) 솔루션에 대해서는 아래 Christopher Will의 답변을 참조하십시오.


danomarr

다른 답변은 시스템 디렉토리의 소유권이나 권한을 특정 사용자로 변경하도록 제안하고 있습니다. 나는 그렇게 하는 것을 매우 권장하지 않습니다. 이것은 매우 어색할 수 있고 전체 시스템을 엉망으로 만들 수 있습니다!

다음은 다중 사용자도 지원하는 보다 일반적이고 안전한 접근 방식입니다.

노드 사용자에 대한 새 그룹을 만들고 이 그룹에 필요한 사용자를 추가합니다. 그런 다음 노드 종속 파일/디렉토리의 소유권을 이 그룹으로 설정합니다.

 # Create new group sudo groupadd nodegrp # Add user to group (logname is a variable and gets replaced by the currently logged in user) sudo usermod -a -G nodegrp `logname` # Instant access to group without re-login newgrp nodegrp # Check group - nodegrp should be listed as well now groups # Change group of node_modules, node, npm to new group sudo chgrp -R nodegrp /usr/lib/node_modules/ sudo chgrp nodegrp /usr/bin/node sudo chgrp nodegrp /usr/bin/npm # (You may want to change a couple of more files (like grunt etc) in your /usr/bin/ directory.)

이제 사용자로 모듈을 쉽게 설치할 수 있습니다.

 npm install -g generator-angular

일부 모듈(grunt, bower, yo 등)은 여전히 루트로 설치해야 합니다. 이는 /user/bin/에 심볼릭 링크를 생성하기 때문입니다.

편집하다

3년 후에는 Node Version Manager 를 사용하는 것이 좋습니다. 많은 시간과 수고를 덜어줍니다.


Christopher Will

EACCES 오류로 npm install 권한을 수정하는 방법에 대한 공식 문서 는 https://docs.npmjs.com/getting-started/fixing-npm-permissions 에 있습니다.

.pkg 설치 프로그램을 사용하여 노드를 새로 설치한 후 이 문제가 발생했습니다. 여기에 몇 가지 훌륭한 답변이 있지만 아직 npmjs.com에 대한 링크를 보지 못했습니다.

옵션 1: npm의 기본 디렉토리에 대한 권한 변경

  1. npm의 디렉터리 경로를 찾습니다.

     npm config get prefix

많은 시스템에서 이것은 /usr/local 입니다.

경고 : 표시된 경로가 /usr인 경우 옵션 2로 전환하십시오.

  1. npm 디렉토리의 소유자를 현재 사용자의 이름(사용자 이름!)으로 변경합니다.

     sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

    이것은 npm 및 일부 다른 도구( lib/node_modules , binshare )에서 사용하는 하위 폴더의 권한을 변경합니다.

옵션 2: npm의 기본 디렉토리를 다른 디렉토리로 변경

예를 들어 다른 사용자와 시스템을 공유하는 경우와 같이 몇 가지 문제가 발생할 수 있으므로 npm이 사용하는 기본 디렉토리(즉, /usr)의 소유권을 변경하지 않으려는 경우가 있습니다.

대신, 다른 디렉토리를 모두 사용하도록 npm을 구성할 수 있습니다. 이 경우 홈 폴더의 숨겨진 디렉토리가 됩니다.

  1. 전역 설치를 위한 디렉토리를 만드십시오:

     mkdir ~/.npm-global
  2. 새 디렉터리 경로를 사용하도록 npm을 구성합니다.

     npm config set prefix '~/.npm-global'
  3. ~/.profile 파일을 열거나 만들고 다음 줄을 추가합니다.

     export PATH=~/.npm-global/bin:$PATH
  4. 명령줄로 돌아가서 시스템 변수를 업데이트합니다.

     source ~/.profile

HoppyKamper

이 문제에 ~/.npm 이 사용자의 소유여야 npm 은 거기에 모듈을 설치하지 않았습니다.

실제로 내 문제를 해결한 것은 다음 명령입니다.

 npm config set prefix ~/.npm export PATH="$PATH:$HOME/.npm/bin"

모든 전역 설치가 이 접두사 아래에 있는지 확인합니다. 그리고 사용자가 이 디렉토리를 소유하는 것이 중요합니다.


sandor

여기에 더 많은 답변이 필요하지만 어쨌든 ..

Sindre Sorus에는 권한을 방해하지 않고 깔끔하게 설치하는 방법을 설명하는 OS X 및 Linux에서 sudo 없이 전역으로 npm 패키지 설치 가이드가 있습니다.

다음은 주어진 사용자에 대해 전역적으로 패키지를 설치하는 방법입니다.

  1. 글로벌 패키지를 위한 디렉토리 생성

     mkdir "${HOME}/.npm-packages"
  2. .bashrc/.zshrc에서 향후 사용을 위해 이 디렉토리를 참조하십시오.

     NPM_PACKAGES="${HOME}/.npm-packages"
  3. 전역적으로 설치된 패키지를 저장할 위치를 npm에 지정합니다. $HOME/.npmrc 파일에 다음을 추가하십시오.

     prefix=${HOME}/.npm-packages
  4. 노드가 그들을 찾을 수 있는지 확인하십시오. .bashrc/.zshrc에 다음을 추가합니다.

     NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
  5. 설치된 바이너리와 매뉴얼 페이지를 찾을 수 있는지 확인하십시오. .bashrc / .zshrc 다음을 추가하십시오.

     PATH="$NPM_PACKAGES/bin:$PATH" # Unset manpath so we can inherit from /etc/manpath via the `manpath` # command unset MANPATH # delete if you already modified MANPATH elsewhere in your config MANPATH="$NPM_PACKAGES/share/man:$(manpath)"

위의 단계를 자동으로 수행하려면 npm-g_nosudo 를 확인하십시오.

최신 업데이트는 이 가이드 의 출처를 확인하십시오.


ptim

TL;DR

npm install 을 실행할 때 항상 sudo -i 또는 sudo -H 를 사용하십시오.


npm 을 사용하면 사용자 홈 디렉토리에 패키지를 다운로드합니다. sudo로 실행할 때 npm 은 동일한 디렉토리에 파일을 설치하지만 이제는 루트가 소유합니다.

npm 사용한 적이 있는 모든 사람에게 일어나는 일입니다.

  • npm install foo 사용하여 문제 없이 일부 로컬 패키지 설치
  • 문제없이 sudo install -g foo-cli 를 사용하여 글로벌 패키지 설치
  • npm install bar 을 사용하여 로컬 패키지 설치 시도
  • 디렉토리를 다시 chmod 해야 하므로 npm 디자이너에게 좌절감을 npm

sudo와 함께 -i 또는 -H 옵션을 사용하면 root 의 홈 디렉토리가 됩니다. 모든 전역 설치는 /home/me/.npm 에 있는 root 소유 파일 /root/.npm 패키지를 캐시합니다.

npm install 을 실행할 때 항상 sudo -i 또는 sudo -H 를 사용하여 전역 패키지를 설치 npm 권한 문제가 해결됩니다.

좋은.

http://hood.ie/blog/why-you-shouldnt-use-sudo-with-npm.html

-- qv npm 을 수정하기 위해 허용된 답변 .


rich remer

NPM 모듈에서 sudo 없이 전역적으로 설치되지 않는 유사한 문제가 있었는데, 문제는 노드를 설치할 때 chris/lea ppa repo를 통해 sudo 로 수행했다는 것입니다.

내 솔루션은 노드를 제거한 다음 다음과 같이 설치하는 것이 었습니다.

nodejs.org #in my case node-v0.10.20.tar.gz에서 안정적인 최신 노드 소스 다운로드

tar -zxf node-v0.10.20.tar.gz # 소스 압축 해제

cd node-v0.10.20 #압축되지 않은 폴더 입력

sudo chown $USER -R /usr/local

./configure --prefix=/usr/local && make && make install

PD: /usr/local 폴더의 소유권을 변경하지 않으려면 이미 소유한 폴더에 설치할 수 있습니다. 이 접근 방식의 문제는 나중에 node 명령을 사용할 수 있도록 bash 명령줄로 설치 폴더를 바인딩해야 한다는 것입니다.

mkdir ~/opt

./configure --prefix=~/opt && make && make install

echo 'export PATH=~/opt/bin:${PATH}' >> ~/.bashrc # 또는 ~/.profile 또는 ~/.bash_profile 또는 ~/.zshenv는 현재 운영 체제에 따라 다릅니다.

이러한 접근 방식 중 하나를 사용하면 sudo를 사용하지 않고 다음을 수행할 수 있습니다.

npm install -g module_to_install


HeberLZ

npm install -g somepackage를 실행할 때 루트/관리자로 명령을 다시 실행하라는 EACCES 오류가 발생할 수 있습니다. 권한 문제입니다.

수정하기 쉽고 터미널을 엽니다(응용 프로그램 > 유틸리티 > 터미널).

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

** 나중에 문제가 발생할 수 있으므로 sudo(sudo npm -g install something)와 함께 패키지 관리를 사용하지 않는 것이 좋습니다. **

참조: http://foohack.com/2010/08/intro-to-npm/


Juancarlos Rodríguez

Mac의 경우(Christoper Will의 답변에서 채택)

맥 OS X 10.9.4

  1. 시스템 환경 설정 > 사용자 및 그룹 > (잠금 해제) > +를 누릅니다.

    새 계정 > "그룹"
    계정 이름 : nodegrp

    그룹을 생성한 후 이 그룹에 포함될 사용자를 선택합니다.

  2. sudo chgrp -R nodegrp /usr/local/lib/node_modules/
    sudo chgrp nodegrp /usr/bin/node
    sudo chgrp nodegrp /usr/bin/npm
    sudo chown -R $(whoami):nodegrp ~/.npm


ken

나를 위해 실행 만

 sudo chown -R $(whoami) ~/.npm

작동하지 않습니다. 그럼 나도 실행

 sudo chown -R $(whoami) /usr/lib/node_modules/ sudo chown -R $(whoami) /usr/bin/node sudo chown -R $(whoami) /usr/bin/npm

그리고 모두 잘 작동합니다!


user3753202

문제 : 당신(사용자)은 디렉터리에 대한 올바른 권한 집합이 없습니다.

즉각적인 해결 방법은 sudo를 사용하여 npm install을 실행하는 것이지만 동일한 오류 또는 부적절한 설치가 발생할 수 있습니다.

그리고 디렉토리 소유권을 변경하는 것은 좋은 옵션이 아니며 임시 패치입니다.


솔루션 / 제안 : npm의 기본 디렉토리 변경(공식 문서에서 )

계속 진행하기 전에 컴퓨터를 백업하십시오.

(선택 사항) 잘못된 설치가 있는 경우 먼저 제거하십시오.

 npm uninstall <package-name> # use sudo if you used it while installation npm cache verify # or, npm cache clean for npm version below 5.xx
  1. 전역 설치를 위한 디렉토리를 만드십시오:

    mkdir ~/.npm-global

  2. 새 디렉터리 경로를 사용하도록 npm을 구성합니다.

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

  3. ~/.profile 또는 ~/.bash_profile 파일을 열거나 만들고 다음 줄을 추가합니다.

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

  4. 명령줄로 돌아가서 시스템 변수를 업데이트하거나 터미널을 다시 시작합니다.

    source ~/.profile

  5. (선택 사항) 테스트: sudo를 사용하지 않고 패키지를 전역으로 다운로드합니다.

    npm install -g jshint


Nabeel Ahmed

제 경우에는 ~/tmp의 허가 때문입니다. 그래서 저는 다음을 수행합니다.

 sudo chown -R $USER ~/tmp

그리고 괜찮아!


bnPYSse

문제: npm이 전역 패키지 및 명령을 저장하는 데 사용하는 디렉터리에 쓸 수 있는 권한이 없습니다.

솔루션: npm에 대한 권한을 허용합니다.

터미널을 엽니다.

command + 스페이스바를 누른 다음 '터미널'을 입력하십시오.

다음 명령을 입력하십시오.

 sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
  • 참고: 비밀번호가 필요합니다.

이 솔루션은 필요한 디렉토리에만 권한을 부여하여 다른 디렉토리를 안전하고 안전하게 유지합니다.


Matt

sudo chown -R $(whoami) ~/.npm 이 작동하지 않거나 터미널이 아닌 명령 솔루션이 필요한 경우.

문제는 사용자 계정에 node_modules 폴더에 대한 쓰기 권한이 없으므로 다음을 수행할 수 있다는 것입니다.

  1. 파인더를 열고 cmd + shift + g 누르면 URL이 있는 폴더로 이동이 열립니다.

  2. 다음 경로를 작성하고 /usr/local/lib/node_modules 이동을 누르십시오.

  3. node_modules 폴더를 마우스 오른쪽 버튼으로 클릭하고 Get Info 선택합니다.

  4. sharing & permissions 섹션까지 아래로 스크롤합니다.

  5. 변경하려면 잠금을 해제하세요.

  6. + 누르고 사용자 계정을 추가하십시오.

  7. 권한 드롭다운에서 Read & Write 를 선택했는지 확인합니다.

sudo 없이 패키지를 설치할 수 있어야 하며 권한 문제가 해결되어야 합니다.


Amr Labib

NPM을 올바르게 구성하기 위한 또 다른 훌륭한 수정은 다음 명령을 실행합니다.

 npm config set prefix '~/.npm_packages' PATH=$PATH:$HOME/.npm_packages/bin; export PATH

Dev

가장 좋은 방법은 것 NPM 문서에 의해 제공되는합니다.


Ubuntu의 경우 제안된 솔루션은 Option#2입니다.

간단한 단계:
전역 설치를 위한 디렉토리를 만드십시오:
mkdir ~/.npm-global

새 디렉터리 경로를 사용하도록 npm을 구성합니다.
npm config set prefix '~/.npm-global'
npm config get prefix 는 접두사가 업데이트되었는지 여부를 확인하는 데 도움이 될 수 있습니다. 결과는 <귀하의 홈 디렉토리>/.npm-global입니다.

~/.profile 파일을 열거나 만들고 다음 줄을 추가합니다.
export PATH=~/.npm-global/bin:$PATH

명령줄로 돌아가서 시스템 변수를 업데이트합니다.
source ~/.profile

2-4단계 대신 해당 ENV 변수를 사용할 수도 있습니다(예: ~/.profile을 수정하지 않으려는 경우):

NPM_CONFIG_PREFIX=~/.npm-global


Mac의 경우 제안된 솔루션은 Option#3입니다.

Mac OS에서는 Homebrew 패키지 관리자를 사용하여 이 문제를 완전히 피할 수 있습니다.

brew install node


Himanshu

당신은 이것을 시도 할 수 있습니다, 우분투와 맥에서 작동

 sudo chown -R $(whoami) /usr/local/lib/node_modules

Adeojo Emmanuel IMM

아무도 이것을 언급하지 않았지만 실제로 권한이나 별도의 npm 설치를 엉망으로 만들 필요가 없습니다. 명령에 다른 캐시 폴더를 지정하면 문제가 해결됩니다.

 npm install --cache .npm npm run build --cache .npm

.npm 폴더가 생성됩니다.


Tofandel

나에게 가장 좋은 옵션은 npm 문서 npm config get prefix 실행하여 전역 node_modules가 기본적으로 설치되는 위치를 확인하는 것입니다. 내가 Trusty에서 하는 것처럼 /usr 을 얻으면 내가 했던 방식을 엉망으로 만들지 않고 안전하게 소유할 수 있는 폴더로 변경하고 싶을 것입니다.

그렇게 하려면 시스템에서 새 폴더를 선택하거나 만듭니다. 나는 Mac 사용자이기 때문에 일관성을 위해 홈 디렉토리 또는 저처럼 /usr/local 아래에 두고 싶을 수 있습니다(저는 우연히 사용하는 컴퓨터에 따라 다른 위치를 조사할 필요가 없는 것을 선호합니다. 앞). 그렇게 하는 또 다른 좋은 이유는 /usr/local 폴더가 이미 PATH에 있을 수 있지만(PATH를 엉망으로 만들고 싶지 않다면) 새로 만든 폴더가 없을 가능성이 있고 .bash-profile 또는 .bashrc 파일의 PATH에 직접 추가하십시오.

npm config set prefix '/usr/local' 을 사용하여 전역 모듈의 기본 위치를 변경하고 /usr/local/lib/node_modules 폴더를 만들고(npm에서 사용함) 폴더에 대한 권한을 변경했습니다. npm에서 다음 명령과 함께 사용합니다.

 sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

이제 모든 모듈을 전역적으로 안전하게 설치할 수 있습니다. 도움이 되었기를 바랍니다!


yago

이것이 Windows 8.1에서 문제를 해결한 방법입니다.

  • nodejs 설치로 이동합니다(보통 C:\Program Files\nodejs).
  • node_modules 폴더를 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동하십시오.
  • 보안 탭을 클릭하고 고급
  • 상단에 "Owner: SYSTEM"이 표시되고 변경을 클릭합니다.
  • 권한을 원하는 사용자를 입력하고 확인을 클릭합니다.
  • 고급 설정 하단의 "모든 자식 개체 권한 항목을 이 개체의 상속 가능한 권한 항목으로 바꾸기" 확인란을 선택하고 확인을 클릭합니다.
  • 필요한 npm 설치/업데이트를 수행하십시오.

KCaradonna

나는 소유자를 루트에서 내 사용자 이름으로 변경하여 해결합니다.

sudo chown -R me:me /home/me/.config/configstore/

사용자 이름과 그룹으로 나를 변경하십시오.


Salem

소유자를 변경하는 대신 우분투 그룹을 사용하여 이를 달성하고 싶습니다. 아주 간단합니다.

  1. 먼저 apt-get을 사용하여 nodejs와 npm을 설치하십시오.

    sudo apt-get update && sudo apt-get install nodejs npm

  2. 로그인한 사람, 즉 사용자 이름을 파악하고 다음 명령을 실행하여 터미널에서 확인하십시오.

    whoami

  3. 매우 간단한 명령을 사용하여 할당된 그룹 목록을 볼 수 있습니다. 일반적으로 첫 번째 그룹은 사용자 이름 자체입니다.

    groups

  4. 로그인한 사용자에 대한 액세스를 허용하려면 다음을 실행하십시오.

    sudo chmod 777 -R /usr/local && sudo chgrp $(whoami) -R /usr/local

  5. npm 및 nodejs 업데이트

    npm install -g npm

모든 설정이 완료되었습니다. 사용자는 sudo 없이 npm 명령을 실행할 수 있습니다.

이 링크를 참조할 수도 있습니다. https://askubuntu.com/a/1115373/687804


Gitesh Dalal

Mac OS X에서 Homebrew의 brew install npm 때 설치 경로는 bin/lib/node_modules/ 하위 폴더 /usr/local/share/npm/ 입니다.

이 명령을 실행하여 소유자를 현재 로그인한 사용자로 변경하면 모든 문제가 해결되고 sudo 없이 전역 NPM 패키지를 설치할 수 있습니다.

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


Joel Purra

사실 나도 같은 고민을 하고 있었다. 나는 우분투를 실행하고 있었다. 내 문제는 Ubuntu의 공개 키를 분실했기 때문에 발생합니다. 내 시스템을 업데이트해도 발생하지 않았습니다. GPG 오류가 발생했습니다. 이 경우 다음 명령을 사용하여 키를 다시 얻을 수 있습니다.

 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <key in GPG error>

그 후 npm은 잘 작동합니다!


sam100rav

John Papa는 이 문제의 역사와 추론을 지적하고 확실한 해결책을 제시합니다.

John Papa의 단계는 다음과 같습니다.

  1. brew를 사용하여 npm 없이 노드 설치
  2. .bash_profile/.bashrc를 업데이트하여 npm과 node가 패키지를 설치하고 찾을 위치를 알 수 있도록 합니다.
  3. brew를 사용하여 노드를 업데이트하고 npm을 사용하여 자체 업데이트

이것이 호기심에 도움이되기를 바랍니다!


theship

출처 : http:www.stackoverflow.com/questions/16151018/how-to-fix-npm-throwing-error-without-sudo

반응형