web-dev-qa-db-fra.com

Erreur: EACCES: permission refusée

Je lance npm install lodash mais il jette Erreur: EACCES: permission refusée erreur. Je sais que c'est un problème de permission, mais à ma connaissance, la permission de Sudo n'est pas requise pour installer le module de noeud localement. Si je le lance avec Sudo, il s’installera dans le dossier ~/node_modules. drwxrwxr-x est l'autorisation de fichier du dossier existant. Je ne peux pas comprendre ce qui aurait pu mal se passer.

Ci-dessous le message d'erreur.

npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm  v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR!      'FSReqWrap.oncomplete (fs.js:82:15)' ] }
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!     /home/rupesh/Desktop/es6/npm-debug.log
53
xruptronics

La création de package.json à l'aide de npm init a résolu mon problème.

9
xruptronics

J'ai le même problème avec l'installation du serveur Webpack sur globalement, suivez les étapes de cette URL résolu mon problème, mon travail serait pour vous.

Les étapes mentionnées ci-dessus sont les suivantes: Sauvegardez votre ordinateur avant de commencer.

Créez un répertoire pour les installations globales:

1. mkdir ~/.npm-global

Configurez npm pour utiliser le nouveau chemin de répertoire:

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

Ouvrez ou créez un fichier ~/.profile et ajoutez cette ligne:

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

De retour sur la ligne de commande, mettez à jour vos variables système:

4 .source ~/.profile

Test: Télécharger un package globalement sans utiliser Sudo.

npm install -g jshint

Au lieu des étapes 2 à 4, vous pouvez utiliser la variable ENV correspondante (par exemple, si vous ne souhaitez pas modifier ~/.profile):

NPM_CONFIG_PREFIX=~/.npm-global
35
Vishal Patel

Cette commande corrige le problème. Cela a fonctionné pour moi:

Sudo npm install -g --unsafe-perm=true --allow-root
33

J'ai eu un problème sous Linux. J'ai écrit

chown -R myUserName ./* 

dans mon dossier de projet.

9
Sergey

D'après ce que je peux voir dans vos journaux, vous avez posté:

npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',

le répertoire /home/rupesh/node_modules/ ne dispose pas des autorisations nécessaires pour créer un répertoire. Exécutez donc chown -r rupesh:rupesh /home/rupesh/node_modules/, cela devrait le résoudre.

5
AJS

FWIW J'ai eu les mêmes symptômes, mais avec un paquet différent. Créer package.json et exécuter npm init a PAS résolu mon problème.

Sur ce système, apparemment, de nouveaux dossiers à cet emplacement étaient en cours de création avec des autorisations root. Au cours de npm install, de nouveaux dossiers sont créés. Cela a entraîné l'échec de l'installation de npm à mi-parcours, même avec Sudo.

La solution consistait à exécuter npm install app dans un emplacement différent sans racine umask.

4
Courtney Schwartz

Il n'a pas les autorisations d'écriture pour others (r-x). Essayer avec

chmod a+w <folder>

et répétez.

3
Juanjo Salvador

Commencez par installer sans -g (global) à la racine. Après avoir essayé d’utiliser -g (global), cela a fonctionné pour moi.

2
Renjith

J'ai résolu ce problème en modifiant l'autorisation de mon répertoire npm. Je suis allé dans le répertoire global npm pour moi à

/home/<user-name>

Je suis allé dans ce répertoire en entrant cette commande

cd /home/<user-name>

puis modifié l'autorisation du dossier .npm en entrant cette commande.

Sudo chmod -R 777 ".npm"

Cela a fonctionné comme un charme pour moi. Mais il y a une faille de sécurité avec ceci: votre répertoire global de paquets est accessible à tous les niveaux.

1
Aniruddh Agarwal

Exécutez ces commandes et le problème sera résolu!

Sudo chmod -R 777 /usr/local/bin
Sudo chmod -R 777 /usr/local/lib/node_modules
0
Nitin Jha

Essayez de donner toutes les autorisations à votre dossier de projet avec la commande ci-dessous

Sudo chmod -R 777 /yourProjectDirectoryName

courir avec

Sudo npm install lodash
0
Raj Gohel

Cela a résolu mon problème immédiatement - mac Mojave 10.14.6 - PhpStorm.

Rejet non géré Erreur: EACCES: autorisation refusée, mkdir '/Users/myname/.npm/_cacache/index-v5/fb/5a'

Sudo chown -R $USER:$GROUP ~/.npm
Sudo chown -R $USER:$GROUP ~/.config

Message original: https://stackoverflow.com/a/50639828

0
ulittle

Supprimer le dossier dist et cela résoudre mon problème!

0
Hekmat