programing

오류: EACCES: 권한이 거부되었습니다. '/usr/local/lib/node_modules'에 액세스하십시오.

showcode 2023. 5. 20. 11:04
반응형

오류: EACCES: 권한이 거부되었습니다. '/usr/local/lib/node_modules'에 액세스하십시오.

입니까?Error: EACCES: permission denied, access '/usr/local/lib/node_modules'?

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!  { 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! A complete log of this run can be found in:
npm ERR!     /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log

파일 사용 권한 변경...이것처럼.

먼저 디렉토리 소유자 확인

ls -la /usr/local/lib/node_modules

node_message 폴더가 루트에서 소유하고 있기 때문에 액세스를 거부하고 있습니다.

drwxr-xr-x   3 root    wheel  102 Jun 24 23:24 node_modules

따라서 사용자에게 루트를 변경하여 변경해야 하지만 아래 명령을 먼저 실행하여 현재 사용자를 확인하십시오. OS X에서 명령줄을 통해 활성 사용자의 이름을 가져오려면 어떻게 해야 합니까?

id -unORwhoami

그러면 소유자 변경

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules

OR

sudo chown -R ownerName: /usr/local/lib/node_modules

OR

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

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

컴퓨터를 백업합니다.명령줄의 홈 디렉토리에 글로벌 설치를 위한 디렉토리를 생성합니다.

mkdir ~/.npm-global

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

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

▁the▁or▁create를 열거나 만듭니다.~/.profile파일을 작성하고 다음 행을 추가합니다.

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

명령줄에서 시스템 변수를 업데이트합니다.

source ~/.profile

구성을 을 사용하지 않고 전체적으로 합니다.sudo.


출처: NPM 웹사이트.

@okanda에서 제시한 답의 해결을 시도해 보았지만 저에게는 효과가 없었습니다.

그러나 이 스레드에 언급된 것과 같은 여러 폴더에 대해 수행했을 때 완벽하게 작동했습니다. https://github.com/angular/angular-cli/issues/9676#issuecomment-464857493

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

/local/lib 소유자에 USER를 추가하기만 하면 됩니다.

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

편집:

node_modules 폴더만 정확하게 대상으로 지정하려면 이전 명령을 사용하기 전에 다음 명령을 사용해 보십시오.

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

당신이 시도하는 어떤 명령 에 sudo를 추가해 보세요.

이와 같이 : sundpm 설치

Linux/UNIX에서 sudo를 명령과 함께 사용하면 일반적으로 권한이 슈퍼 사용자 수준으로 상승합니다.Windows(윈도우)에서 슈퍼 사용자 계정은 일반적으로 '관리자'라고 합니다.Linux/Unix에서 슈퍼 사용자 계정의 이름은 일반적으로 'root'입니다.

루트 사용자는 컴퓨터의 거의 모든 파일에 액세스하거나 수정 또는 삭제할 수 있는 권한을 가지고 있습니다.일반 사용자 계정은 훨씬 적은 수의 파일에 액세스하거나 수정 또는 삭제할 수 있습니다.일반 계정에 대한 제한은 권한이 없거나 유해한 프로그램 또는 사용자로부터 컴퓨터를 보호합니다.일부 프로세스에서는 일반적으로 액세스 권한이 없는 파일 또는 폴더에 대해 작업을 수행해야 합니다.모든 사용자가 액세스할 수 있는 프로그램 설치는 이러한 작업 중 하나입니다.

이 경우 sudo와 함께 설치 명령을 실행하면 수퍼유저의 권한이 부여되며 일반 사용자가 수정할 권한이 없는 파일을 수정할 수 있습니다.

노드 버전 관리자 또는 노드 설치 관리자를 통해 npm을 설치할 수 있습니다.문서에는 다음과 같이 나와 있습니다.

노드 설치 프로세스는 로컬 사용 권한이 있는 디렉토리에 npm을 설치하고 전체적으로 npm 패키지를 실행할 때 사용 권한 오류를 발생시킬 수 있으므로 노드 설치 관리자를 사용하지 않는 것이 좋습니다.

NPM은 실제로 이러한 오류를 방지하기 위해 노드 버전 관리자를 사용할 것을 권장합니다.

사용 권한 오류가 있으므로 노드 설치 관리자를 통해 npm을 설치한 후 nvm(노드 버전 관리자)을 사용하여 다시 설치해야 합니다.

다행히도, 이것은 매우 간단합니다.현재 버전의 npm 또는 Node.js를 제거할 필요도 없습니다.

당신이 해야 할 일은

  1. nvm을 설치합니다.OSX 또는 Linux 노드의 경우 다음을 사용합니다.

     curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/<VERSION>/install.sh | bash
    

<VERSION>.

그러면 홈 디렉토리에 vm 폴더가 생성됩니다.

그리고나서

  1. npm 및 node.js를 nvm을 통해 설치합니다.그러시려면, 그냥 전화하세요.

     nvm install node 
    

("node"는 최신 버전의 별칭입니다.)

이제 패키지를 사용하지 않고 전체적으로 설치할 수 있습니다.sudo 또는소변의 것.node_modulesusr폴더를 누릅니다.

Mac에서 이 문제가 발생하는 경우 먼저 다음 단계를 수행하십시오. 아래 명령을 사용하여 이 파일의 소유자를 확인하십시오.

ls -la /usr/local/lib/node_modules

아래에 일부 파일이 있으며 그 중 하나가 아래에 나열되어 있습니다.

drwxr-xr-x   3 root    wheel  768 May 29 02:21 node_modules

위의 파일이 root에 의해 소유되고 있다는 것을 알고 계십니까?내부를 변경하려면 경로의 소유권을 변경해야 합니다.

이 명령을 사용하여 현재 사용자가 누구인지 확인할 수 있습니다.

id -un (in my case user is Yamsol)

그런 다음 이 명령을 호출하여 변경할 수 있습니다(사용자 이름을 ownerName으로 바꾸기만 하면 됩니다).

sudo chown -R ownerName: /usr/local/lib/node_modules

당신이 알다시피 나의 경우 사용자는 "얌솔"입니다. 나는 이 명령을 이런 식으로 부를 것입니다.

sudo chown -R yamsol: /usr/local/lib/node_modules

바로 그겁니다.

권한 문제가 발생한 것 같습니다.npm-packages그러면 당신이 받을 가능성이 있을 수도.EACCES패키지를 전체적으로 설치하려고 할 때 오류가 발생했습니다.즉, 디렉토리에 쓸 수 있는 권한이 없습니다.npm를 사용하여 글로벌 패키지 및 명령을 저장합니다.

명령을 .sudo chmod u+x -R 775 ~/.npm그리고.sudo chown $USER -R ~/.npm또는 아무 것이나 실행할 수 있습니다.npm으로 합니다.sudo문제를 해결할 수 있습니다.

npm-package, "" "" "" "" "" "" "" "" ""를 볼 수 .sudo npm install <pkg-name>필요한 패키지를 설치하는 명령입니다.사용 목적sudo이 변경되어 현재 에게 즉, 현사자게실권행부한수여을소있권변한유다경을 실행할 권한을 부여할 수 있습니다.npm명령을 실행합니다.

는 당신이 https://docs.npmjs.com/getting-started/fixing-npm-permissions 을 보는 것을 추천합니다.

unbuntu에서 글로벌 패키지를 설치하는 동안 다음에 쓸 때 특별한 쓰기 권한이 필요합니다.usr/bin폴더를 누릅니다.보안상의 이유로 그렇습니다.따라서 글로벌 패키지를 설치할 때마다 다음을 사용합니다.

sudo npm install -g [package-name]

구체적인 경우는 다음과 같습니다.

sudo npm install -g typescript

/usr/local에서 모든 디렉토리의 소유자를 변경하는 모든 응답에 주의합니다. 기본적으로 Linux 시스템을 망치지 마십시오!

용사를 합니다.sudo당신의 지역적인 것 또한 정말 나쁜 추천입니다.

www.competa.com 의 원래 링크가 끊어졌으므로 여기서 원래 접근 방식은 다음과 같습니다.

npm config set prefix ~/.npm

# open your .bashrc (Linux) or .bash_profile (Mac) file for editing:
nano ~/.bashrc # for Linux
# or...
nano ~/.bash_profile # for Mac if you haven't created a .bashrc file

# add these lines:
export PATH="$PATH:$HOME/npm/bin"
export NODE_PATH="$NODE_PATH:$HOME/npm/lib/node_modules"

# save the file and then enter this command or logout and login to make the changes take effect:
. ~/.bashrc
# or...
. ~/.bash_profile

옵션 B: NVM과 같은 버전 관리자 사용

권한을 부여한 후에도 여전히 작동하지 않으면 다음 명령을 실행해 보십시오.

mkdir ~/.npm-global

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

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

source ~/.profile

그리고 마지막으로 이 명령으로 테스트합니다.

npm install -g jshint

Windows에서는 작동하지 않습니다.

나는 리액트 엑스포를 설치하려고 했고 sudo를 제외하고는 --unsafe-perm을 추가해야 했습니다.

이것처럼.이렇게 하면 문제가 해결됩니다.

sudo npm install -g expo-cli --unsafe-perm

이 문제를 주의 깊게 검토합니다.

https://ionicframework.com/docs/developing/tips#resolving-permission-errors

sudo chown -R $(whoami) /usr/local/{lib/node_modules,bin,share}
sudo chown -R $(whoami) ~/.npm ~/.npmrc

센트에서 발견됨OS 8 스트림

해결책

(1/4) node_modules 폴더 만들기

$ sudo mkdir /usr/local/lib/node_modules

(2/4) 현재 사용자 소유

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

하기 (3/4) »binfolder

$ sudo chown -R $USER /usr/local/bin/

하기 (4/4) »sharefolder

$ sudo chown -R $USER /usr/local/share/

nvm 사용자의 경우

sudo chown -R $USER /home/bereket/.nvm/versions/node/v8.9.1/lib/node_modules 

그리고.

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

체교다를 v8.9.1사용 중인 노드 버전을 사용합니다.

이 anpm 로컬이 하려고 한 .man npm install설명:

-g 또는 --global 인수를 지정하면 npm이 패키지를 로컬이 아닌 전역으로 설치합니다.

일반적으로 pm 프로젝트를 설정할 때는 디버그 로그에서 제안한 대로 Node.js 글로벌 모듈(/usr/local/lib/node_modules)에 패키지를 설치하는 것이 좋지 않습니다.

사하는대를 사용하는 에.-g,사용하다--save으로 사용자의 키패자종저로다니장에 으로 저장됩니다.package.json파일 이름:

다음과 같이:

$ npm install express-generator --save

$ cat package.json 
{
  "name": "first_app_generator",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
},
  "author": "ivanleoncz",
  "license": "MIT",
  "dependencies": {
    "express-generator": "^4.16.0"
  }
}

하지만 다른 답변들이 언급했듯이, 만약 당신이 사용할 것이라면.-g은 야합니다해사를 사용해야 .sudo(사용자에게 sudo 권한이 있는 경우 /etc/sudoers 참조)을 수행할 때npm install express-generator -g하지만 실제로는 허가 문제를 일으킬 수 있는 좋은 생각이 아닙니다.

공지

이있다니를 설치하는 .express-generator와 함께-g, 를 " " "로express-cli.js도 있지만 할 수 있습니다.이는 " 템스경서스설도다사수있용"에 있습니다.node_modules 당신의 프로젝트npm 프트경우의:

$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp

/usr/bin/env와 같은 메시지가 표시되는 경우: 'node': 해당 파일 또는 디렉토리가 표시되지 않습니다. 설치합니다.nodejs-legacy (데비우/분투안)

사용, 용사-g (으)로 사용)sudo)는 결과에 대해 확신이 없는 경우 hic sunt dracon과 같습니다.

자세한 내용은 다음을 참조하십시오.

저는 mac에서 다음을 사용하여 문제를 해결할 수 있었습니다.

sudo npm install -g @aws-amplify/cli --unsafe-perm=true

은 이의결발습니다했생로과는의 로 발생했습니다.npm귀하의 수 .node_modules디렉토리, 중

sudo chown -R Name: /usr/local/lib/node_modules

예.

sudo chown -R developerayo: /usr/local/lib/node_modules

이제 실행한 명령을 다시 실행할 수 있습니다.

위에서 언급한 솔루션을 사용한 후에도 여전히 문제를 해결할 수 없는 분들을 위해.사용해 보세요.

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

그거면 충분해요, 건배!

그것은 100% 일입니다.

sudochown -R $(whoami) $(npm 구성 접두사 가져오기)/{lib/node_modules,bin,share}

아래의 명령은 나에게 효과가 있었습니다.

sudo npm install -g appium --unsafe-perm=true --allow-root

내 맥에서도 아이오닉을 설치하는 동안 비슷한 문제가 발생합니다.

는 령을실행니다 합니다.sudo chown -R $USER /usr/local/오류에 지정된 대로 업데이트할 수 있는 경로입니다.

하여 이명사여설을 설치합니다.npm 사용자sudo 용자서로:

sudo npm install -g create-react-app 

npm을 설치하는 대신 -g create-syslog-app을 설치합니다.

단순히 소유자를 변경하거나 이렇게 명령하기 전에 sudo를 사용할 수 있습니다.

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules(소유자 변경)

또는

sudo npm install -g json-server

바로 그겁니다.

linux / unbuntu의 경우 명령어

npm install -g <package_name>

npm WARN deprecated superagent@4.1.0: Please note that v5.0.1+ of superagent removes User-Agent header by default, therefore you may need to add it yourself (e.g. GitHub blocks requests without a User-Agent header).  This notice will go away with v5.0.2+ once it is released.

npm ERR! path ../lib/node_modules/<package_name>/bin/..

npm ERR! code EACCES

npm ERR! errno -13

npm ERR! syscall symlink

npm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules
/<package_name>/bin/..' -> '/usr/local/bin/<package_name>'

npm ERR!  { [Error: EACCES: permission denied, symlink '../lib/node_modules/<package_name>/bin/..' -> '/usr/local/bin/<package_name>']

npm ERR!   cause:
npm ERR!    { Error: EACCES: permission denied, symlink '../lib/node_modules/<package_name>/bin/..' -> '/usr/local/bin/<package_name>'

npm ERR!      errno: -13,

npm ERR!      code: 'EACCES',

npm ERR!      syscall: 'symlink',

npm ERR!      path: '../lib/node_modules/<package_name>/bin/..',
npm ERR!      dest: '/usr/local/bin/ionic' },

npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, symlink \'../lib/node_modules/ionic/bin/ionic\' -> \'/usr/local/bin/ionic\'',

npm ERR!   errno: -13,

npm ERR!   code: 'EACCES',

npm ERR!   syscall: 'symlink',

npm ERR!   path: '../lib/node_modules/<package-name>/bin/<package-name>',

npm ERR!   dest: '/usr/local/bin/<package-name>' }

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 (though this is not recommended).


npm ERR! A complete log of this run can be found in:

npm ERR!     /home/User/.npm/_logs/2019-07-29T01_20_10_566Z-debug.log

수정 : 루트 권한으로 설치

sudo npm install <package_name> -g

React를 설치하려면 Superuser 수준의 권한이 필요합니다.Linux/Unix에서 슈퍼 사용자 계정의 이름은 일반적으로 'root'입니다.

슈퍼 사용자 권한을 얻으려면 터미널에서 다음 명령을 실행하십시오.

sudo -i

그런 다음 명령을 실행하여 React를 설치합니다.

npm install -g create-react-app

그러나 reactjs 팀은 글로벌 패키지를 설치하는 대신 다음 명령을 사용할 것을 권장합니다.

npx create-react-app app_name

sudochown -R $USER /usr/local/lib/node_modules

POsha의 대답과 비슷하지만 이것이 Ubuntu 19에서 제게 효과가 있었던 것입니다.

sudo npm i -g ngrok --unsafe-perm=true --allow-root

이 링크에서

https://github.com/inconshreveable/ngrok/issues/429

npm 명령 앞에 "sudo"를 추가하면 됩니다.바로 그거야.

brew 제거 노드

brew 설치 노드

sundpm install -g "your_package" --sundam-package=true --allow-root

이것이 누군가에게 도움이 되기를 바랍니다.

언급URL : https://stackoverflow.com/questions/48910876/error-eacces-permission-denied-access-usr-local-lib-node-modules

반응형