질문자 :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
NoahNode를 설치할 때 사용한 권한은 npm 디렉토리 ( npm link
, npm install -g
등)에 작성하는 것과 같은 작업을 수행할 때 필요합니다.
아마도 루트 권한으로 노드 설치를 실행했을 것이므로 전역 패키지 설치에서 루트 권한을 요청합니다.
솔루션 1: NVM
권한으로 해킹하지 말고 올바른 방법으로 노드를 설치하십시오.
개발 머신에서는 루트 권한으로 노드를 설치 및 실행해서는 안 됩니다. 그렇지 않으면 npm link
, npm install -g
와 같은 권한이 필요합니다.
NVM (Node Version Manager)을 사용하면 루트 권한 없이 Node를 설치할 수 있으며 여러 버전의 Node를 설치하여 쉽게 사용할 수 있습니다. 개발에 적합합니다.
- 노드를 제거합니다(루트 권한이 필요할 수 있음). 도움이 될 수 있습니다.
- 그런 다음 이 페이지의 지침에 따라 NVM을 설치합니다.
- 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를 사용하는 경우 전역 패키지에 대한 사용자 전용 디렉터리를 만들고 npm
및 node
를 설정하여 전역적으로 설치된 패키지를 찾는 방법을 알 수 있습니다.
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
sutherBootstrap 3용 CSS를 컴파일하기 위해 Recess( https://github.com/twitter/recess )를 설치할 때 이 문제가 발생했습니다.
홈을 설치할 때:
-npm install recess -g
Noah가 말한 것처럼 home
디렉토리에서 권한을 잠금 해제해야 합니다.
sudo chown -R `whoami` ~/.npm
Xilo가 node_modules
디렉토리에 대한 쓰기 권한도 필요하므로 여전히 작동하지 않으면 다음을 시도하십시오.
sudo chown -R `whoami` /usr/local/lib/node_modules
여전히 오류가 표시되면 /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 WillEACCES
오류로 npm install
권한을 수정하는 방법에 대한 공식 문서 는 https://docs.npmjs.com/getting-started/fixing-npm-permissions 에 있습니다.
.pkg
설치 프로그램을 사용하여 노드를 새로 설치한 후 이 문제가 발생했습니다. 여기에 몇 가지 훌륭한 답변이 있지만 아직 npmjs.com에 대한 링크를 보지 못했습니다.
옵션 1: npm의 기본 디렉토리에 대한 권한 변경
npm의 디렉터리 경로를 찾습니다.
npm config get prefix
많은 시스템에서 이것은 /usr/local 입니다.
경고 : 표시된 경로가 /usr인 경우 옵션 2로 전환하십시오.
npm 디렉토리의 소유자를 현재 사용자의 이름(사용자 이름!)으로 변경합니다.
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
이것은 npm 및 일부 다른 도구( lib/node_modules , bin 및 share )에서 사용하는 하위 폴더의 권한을 변경합니다.
옵션 2: npm의 기본 디렉토리를 다른 디렉토리로 변경
예를 들어 다른 사용자와 시스템을 공유하는 경우와 같이 몇 가지 문제가 발생할 수 있으므로 npm이 사용하는 기본 디렉토리(즉, /usr)의 소유권을 변경하지 않으려는 경우가 있습니다.
대신, 다른 디렉토리를 모두 사용하도록 npm을 구성할 수 있습니다. 이 경우 홈 폴더의 숨겨진 디렉토리가 됩니다.
전역 설치를 위한 디렉토리를 만드십시오:
mkdir ~/.npm-global
새 디렉터리 경로를 사용하도록 npm을 구성합니다.
npm config set prefix '~/.npm-global'
~/.profile 파일을 열거나 만들고 다음 줄을 추가합니다.
export PATH=~/.npm-global/bin:$PATH
명령줄로 돌아가서 시스템 변수를 업데이트합니다.
source ~/.profile
HoppyKamper이 문제에 ~/.npm
이 사용자의 소유여야 npm
은 거기에 모듈을 설치하지 않았습니다.
실제로 내 문제를 해결한 것은 다음 명령입니다.
npm config set prefix ~/.npm export PATH="$PATH:$HOME/.npm/bin"
모든 전역 설치가 이 접두사 아래에 있는지 확인합니다. 그리고 사용자가 이 디렉토리를 소유하는 것이 중요합니다.
sandor여기에 더 많은 답변이 필요하지만 어쨌든 ..
Sindre Sorus에는 권한을 방해하지 않고 깔끔하게 설치하는 방법을 설명하는 OS X 및 Linux에서 sudo 없이 전역으로 npm 패키지 설치 가이드가 있습니다.
다음은 주어진 사용자에 대해 전역적으로 패키지를 설치하는 방법입니다.
글로벌 패키지를 위한 디렉토리 생성
mkdir "${HOME}/.npm-packages"
.bashrc/.zshrc에서 향후 사용을 위해 이 디렉토리를 참조하십시오.
NPM_PACKAGES="${HOME}/.npm-packages"
전역적으로 설치된 패키지를 저장할 위치를 npm에 지정합니다. $HOME/.npmrc
파일에 다음을 추가하십시오.
prefix=${HOME}/.npm-packages
노드가 그들을 찾을 수 있는지 확인하십시오. .bashrc/.zshrc에 다음을 추가합니다.
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
설치된 바이너리와 매뉴얼 페이지를 찾을 수 있는지 확인하십시오. .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 를 확인하십시오.
최신 업데이트는 이 가이드 의 출처를 확인하십시오.
ptimTL;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 remerNPM 모듈에서 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
HeberLZnpm 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íguezMac의 경우(Christoper Will의 답변에서 채택)
맥 OS X 10.9.4
시스템 환경 설정 > 사용자 및 그룹 > (잠금 해제) > +를 누릅니다.
새 계정 > "그룹"
계정 이름 : nodegrp
그룹을 생성한 후 이 그룹에 포함될 사용자를 선택합니다.
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
전역 설치를 위한 디렉토리를 만드십시오:
mkdir ~/.npm-global
새 디렉터리 경로를 사용하도록 npm을 구성합니다.
npm config set prefix '~/.npm-global'
~/.profile
또는 ~/.bash_profile
파일을 열거나 만들고 다음 줄을 추가합니다.
export PATH=~/.npm-global/bin:$PATH
명령줄로 돌아가서 시스템 변수를 업데이트하거나 터미널을 다시 시작합니다.
source ~/.profile
(선택 사항) 테스트: 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}
이 솔루션은 필요한 디렉토리에만 권한을 부여하여 다른 디렉토리를 안전하고 안전하게 유지합니다.
Mattsudo chown -R $(whoami) ~/.npm
이 작동하지 않거나 터미널이 아닌 명령 솔루션이 필요한 경우.
문제는 사용자 계정에 node_modules 폴더에 대한 쓰기 권한이 없으므로 다음을 수행할 수 있다는 것입니다.
파인더를 열고 cmd
+ shift
+ g
누르면 URL이 있는 폴더로 이동이 열립니다.
다음 경로를 작성하고 /usr/local/lib/node_modules
이동을 누르십시오.
node_modules
폴더를 마우스 오른쪽 버튼으로 클릭하고 Get Info
선택합니다.
sharing & permissions
섹션까지 아래로 스크롤합니다.
변경하려면 잠금을 해제하세요.
+
누르고 사용자 계정을 추가하십시오.
권한 드롭다운에서 Read & Write
를 선택했는지 확인합니다.
sudo
없이 패키지를 설치할 수 있어야 하며 권한 문제가 해결되어야 합니다.
Amr LabibNPM을 올바르게 구성하기 위한 또 다른 훌륭한 수정은 다음 명령을 실행합니다.
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소유자를 변경하는 대신 우분투 그룹을 사용하여 이를 달성하고 싶습니다. 아주 간단합니다.
먼저 apt-get을 사용하여 nodejs와 npm을 설치하십시오.
sudo apt-get update && sudo apt-get install nodejs npm
로그인한 사람, 즉 사용자 이름을 파악하고 다음 명령을 실행하여 터미널에서 확인하십시오.
whoami
매우 간단한 명령을 사용하여 할당된 그룹 목록을 볼 수 있습니다. 일반적으로 첫 번째 그룹은 사용자 이름 자체입니다.
groups
로그인한 사용자에 대한 액세스를 허용하려면 다음을 실행하십시오.
sudo chmod 777 -R /usr/local && sudo chgrp $(whoami) -R /usr/local
npm 및 nodejs 업데이트
npm install -g npm
모든 설정이 완료되었습니다. 사용자는 sudo 없이 npm 명령을 실행할 수 있습니다.
이 링크를 참조할 수도 있습니다. https://askubuntu.com/a/1115373/687804
Gitesh DalalMac 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/
OSX 홈브류
Joel Purra사실 나도 같은 고민을 하고 있었다. 나는 우분투를 실행하고 있었다. 내 문제는 Ubuntu의 공개 키를 분실했기 때문에 발생합니다. 내 시스템을 업데이트해도 발생하지 않았습니다. GPG 오류가 발생했습니다. 이 경우 다음 명령을 사용하여 키를 다시 얻을 수 있습니다.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <key in GPG error>
그 후 npm은 잘 작동합니다!
sam100ravJohn Papa는 이 문제의 역사와 추론을 지적하고 확실한 해결책을 제시합니다.
John Papa의 단계는 다음과 같습니다.
- brew를 사용하여 npm 없이 노드 설치
- .bash_profile/.bashrc를 업데이트하여 npm과 node가 패키지를 설치하고 찾을 위치를 알 수 있도록 합니다.
- brew를 사용하여 노드를 업데이트하고 npm을 사용하여 자체 업데이트
이것이 호기심에 도움이되기를 바랍니다!
theship출처 : http:www.stackoverflow.com/questions/16151018/how-to-fix-npm-throwing-error-without-sudo