Quelle pourrait être la cause de l'erreur 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
Réponses:
changer vos permissions de fichier .. comme ça
vérifiez d'abord à qui appartient le répertoire
il refuse l'accès car le dossier node_module appartient à root
donc cela doit être changé en changeant root pour votre utilisateur mais exécutez d'abord la commande ci-dessous pour vérifier votre utilisateur actuel Comment puis-je obtenir le nom de l'utilisateur actif via la ligne de commande dans OS X?
OU
whoami
puis changer de propriétaire
OU
OU
la source
sudo chown -R myuser:Company\\Domain\ Users /usr/local/lib/node_modules
. Pour lister correctement le nom du groupe que j'ai faitid -gn myuser
.illegal group name
. J'ai donc changé la commande ensudo chown -R ownerName: /usr/local/lib/node_modules
et cela a fonctionné.chown
. github.com/nvm-sh/nvmPour minimiser le risque d'erreurs d'autorisation, vous pouvez configurer npm pour utiliser un répertoire différent. Dans cet exemple, vous allez créer et utiliser un répertoire caché dans votre répertoire personnel.
Faites des sauvegardes de votre ordinateur. Sur la ligne de commande, dans votre répertoire personnel, créez un répertoire pour les installations globales:
mkdir ~/.npm-global
Configurez npm pour utiliser le nouveau chemin de répertoire:
npm config set prefix '~/.npm-global'
Dans votre éditeur de texte préféré, ouvrez ou créez un
~/.profile
fichier et ajoutez cette ligne:
export PATH=~/.npm-global/bin:$PATH
Sur la ligne de commande, mettez à jour vos variables système:
source ~/.profile
Pour tester votre nouvelle configuration, installez un package globalement sans utiliser sudo
la source
npm config set prefix
(en particulier si vous écrivez un programme d'installation non root), vous voudrez peut-être remplacer laPREFIX
variable env ou fournir l'--prefix
option, les deux équivalentes ànpm config set prefix
. (Tout ce que vous devez faire est d'ajouter USER au propriétaire de / local / lib
la source
chown
vous courez un risque élevé de détruire la structure d'autorisation de l'ensemble de votre système de fichiers.sudo chmod -R 777 /
.essayez d'ajouter sudo avant la commande que vous essayez.
comme ceci: sudo npm install
L'utilisation de sudo avec une commande sous Linux / UNIX élève généralement vos autorisations aux niveaux de superutilisateur. Sous Windows, le compte superutilisateur est généralement appelé «Administrateur». Sous Linux / Unix, le compte superutilisateur est généralement nommé «root».
L'utilisateur root est autorisé à accéder, modifier ou supprimer presque tous les fichiers de votre ordinateur. Les comptes d'utilisateurs normaux peuvent accéder, modifier ou supprimer beaucoup moins de fichiers. Les restrictions sur un compte normal protègent votre ordinateur contre les programmes ou utilisateurs non autorisés ou nuisibles. Certains processus nécessitent que vous exécutiez des actions sur des fichiers ou des dossiers auxquels vous n'avez normalement pas accès. L'installation d'un programme accessible à tous est l'une de ces actions.
Dans votre cas, l'exécution de la commande d'installation avec sudo vous donne les autorisations du superutilisateur et vous permet de modifier des fichiers que votre utilisateur normal n'a pas l'autorisation de modifier.
la source
J'ai essayé la solution de la réponse donnée par @okanda mais cela n'a pas fonctionné pour moi.
Cependant, cela a fonctionné parfaitement lorsque je l'ai fait pour plusieurs dossiers comme mentionné dans ce fil: https://github.com/angular/angular-cli/issues/9676#issuecomment-464857493
la source
Lors de l'installation de packages globaux dans ubuntu , vous avez besoin d'autorisations d'écriture spéciales lorsque vous écrivez dans le
usr/bin
dossier. C'est pour des raisons de sécurité. Ainsi, chaque fois que vous installez un package global, utilisez:Pour votre cas spécifique, ce sera:
la source
Il semble que vous rencontriez des problèmes d'autorisation. Si vous installez,
npm-packages
il est possible que vous obteniez uneEACCES
erreur lorsque vous essayez d'installer un package globalement. Cela signifie que vous n'êtes pas autorisé à écrire dans les répertoiresnpm
utilisés pour stocker les packages et commandes globaux.Essayez d'exécuter des commandes:
sudo chmod u+x -R 775 ~/.npm
etsudo chown $USER -R ~/.npm
ou vous pouvez simplement exécuter n'importe quellenpm
commande avecsudo
, cela devrait résoudre votre problème.Si vous installez
npm-package
localement, vous devez être dans votre répertoire de projet local et essayer d'exécuter lasudo npm install <pkg-name>
commande pour installer le package requis. le but de l'utilisationsudo
est de modifier vos autorisations de propriétaire afin que vous puissiez autoriser votre utilisateur actuel à exécuter desnpm
commandes.Je vous recommande de jeter un œil à https://docs.npmjs.com/getting-started/fixing-npm-permissions
la source
J'essayais d'installer Reaper Expo et à part Sudo, j'ai dû ajouter --unsafe-perm
comme ça. Cela résout mon problème
la source
Si vous rencontrez ce problème sur votre Mac. Suivez ces étapes
Vérifiez d'abord qui est le propriétaire de ce fichier en utilisant la commande ci-dessous
vous trouverez un fichier comme ci-dessous l'un d'eux est ci-dessous
avez-vous remarqué que le fichier ci-dessus est propriétaire de la racine, pour apporter des modifications à l'intérieur, vous devez changer le propriétaire du chemin.
vous pouvez utiliser vérifier qui est l'utilisateur actuel par cette commande
puis vous pouvez changer en appelant cette commande (remplacez simplement votre nom d'utilisateur par ownerName)
dans mon cas, comme vous le savez, l'utilisateur est "yamsol", je vais appeler cette commande de cette façon
c'est tout.
la source
Soyez prudent avec toutes les réponses qui changent le propriétaire de tous les répertoires sous / usr / local Fondamentalement, ne salissez pas le système Linux !!!
Je pense que la meilleure façon est d'utiliser votre propre dossier pour localiser tous les packages globaux: https://www.competa.com/blog/how-to-run-npm-without-sudo/
la source
Vous pouvez installer npm via le gestionnaire de version de Node ou un programme d'installation de Node. Dans les documents, il a déclaré:
Puisque vous avez le erreur d'autorisation , vous avez probablement installé npm via un programme d'installation de nœud et vous devez maintenant le réinstaller avec un nvm (gestionnaire de version de nœud).
Heureusement, c'est très simple. Vous n'avez même pas besoin de supprimer votre version actuelle de npm ou Node.js.
Tout ce que vous devez faire c'est
Installez nvm. Pour une utilisation avec OSX ou Linux Node:
Cela crée un dossier nvm dans votre répertoire personnel.
ensuite
Installez npm et node.js via nvm. Pour ce faire, il suffit d'appeler
Vous pouvez maintenant installer votre package globalement sans utiliser
sudo
ni changer le propriétaire du dossiernode_modules
inusr
.la source
fish
, afin de fonctionner correctement nvm a besoin d'un fish-wrapper github.com/FabioAntunes/fish-nvmUtilisez cette commande pour installer en
npm
tant qu'utilisateur sudo:au lieu de npm install -g create-react-a pp.
la source
J'ai pu résoudre le problème en utilisant ce qui suit dans mac.
la source
Pour les utilisateurs NVM
et
remplacez
v8.9.1
par la version de votre nœud que vous utilisez.la source
sudo chown -R $USER home/samuel/.nvm/versions/node/v8.10.0/lib/node_modules
Il semble que vous ayez essayé d'installer un package npm globalement plutôt que localement, comme
man npm install
décrit ci - dessous:Généralement, lorsque vous configurez un projet npm (parmi beaucoup d'autres que vous pourriez avoir), ce n'est pas une bonne idée d'installer des packages sur les modules globaux Node.js (/ usr / local / lib / node_modules), comme votre journal de débogage. suggéré.
Au lieu d'utiliser
-g
, utilisez--save
, qui enregistrera automatiquement le package en tant que dépendance pour votrepackage.json
fichier:Comme ça:
Mais comme les autres réponses mentionnées, si vous allez utiliser
-g
, vous devez utilisersudo
( si votre utilisateur dispose des privilèges sudo: voir / etc / sudoers ) lors de l'exécutionnpm install express-generator -g
, mais en effet, ce n'est pas une bonne idée, ce qui peut entraîner des problèmes d'autorisation.REMARQUER
Il y a des instructions pour l'installation
express-generator
avec-g
option, afin d'avoir le scriptexpress-cli.js
disponible sur le chemin du système, mais vous pouvez également utiliser le script installé localement, situé sur lenode_modules
si votre projet npm:À mon humble avis, utiliser
-g
(également utilisersudo
) est comme des dracones hic sunt , si vous n'êtes pas sûr des conséquences.Pour plus d'informations:
la source
Cela s'est produit en raison de l'
npm
impossibilité d'accédernode_modules
localement à votre répertoire global , en exécutantpar exemple
résout le problème, vous pouvez maintenant exécuter à nouveau la commande que vous avez exécutée.
la source
Vous pouvez simplement changer de propriétaire ou simplement utiliser sudo avant de commander comme ceci
sudo chown -R [owner]:[owner] /usr/local/lib/node_modules
( changer de propriétaire )ou
c'est tout.
la source
Pour linux / ubuntu si la commande
npm install -g <package_name>
Correction: installez avec les autorisations root
sudo npm install <package_name> -g
la source
Vous avez besoin de l'autorisation des niveaux de superutilisateur pour installer React. Sous Linux / Unix, le compte superutilisateur est généralement nommé «root».
Pour obtenir le privilège de superutilisateur, exécutez simplement la commande suivante sur votre terminal:
puis exécutez simplement la commande pour installer React:
Cependant, l'équipe reactjs nous encourage à utiliser la commande suivante au lieu d'installer un package global.
la source
create-react-app
que les privilèges root doivent être installés en tant que packages globaux; sinon, vous ne pourrez pas l'installer. Cependant, l'équipe reactjs nous encourage à utiliser la commande suivantenpx create-react-app app_name
au lieu d'installer un package global.sudo chown -R $ USER / usr / local / lib / node_modules
la source
A aidé seulement ceci:
la source
Après de longues recherches, j'ai compris que rien n'est requis pour que Mac OS installe le cli angulaire. Utilisez simplement
sudo npm install -g @angular/cli
votre terminal. Ça a marché pour moi.la source
Semblable à la réponse de POsha mais c'est ce qui a fonctionné pour moi sur Ubuntu 19
De ce lien
https://github.com/inconshreveable/ngrok/issues/429
la source
Si vous utilisez Linux (par exemple: Arch)
Par défaut, cette commande installe le package sous / usr / lib / node_modules / npm et requiert les privilèges root pour ce faire.
Pour autoriser des installations à l'échelle de l'utilisateur
Pour autoriser les installations globales de packages pour l'utilisateur actuel, définissez la
npm_config_prefix
variable d'environnement. Ceci est utilisé à la fois par npm et par fil.Reconnectez-vous ou source pour mettre à jour les modifications.
Vous pouvez également spécifier le
--prefix
paramètre pournpm install
. Cependant, ce n'est pas recommandé, car vous devrez l'ajouter à chaque fois que vous installez un package global.Vous n'avez donc pas besoin de visualiser la permission du dossier
la source
J'ai pu me débarrasser de ce problème en installant
nvm
, puis en définissant le nœud sur la dernière version.nvm
utilisantcurl
(pour la dernière version, allez sur nvm.sh )Après avoir suivi les commandes ci-dessus, vous pourrez installer react / angular dans Ubuntu.
la source
Utilisez 'sudo npm install xyz' cela fonctionnera.
la source
Ajoutez simplement "sudo" avant la commande npm. C'est tout.
la source
J'ai utilisé sudo, mais cela n'a pas résolu le problème, j'ai résolu le problème en modifiant l'autorisation du dossier node_modules,
Si vous le souhaitez, vous pouvez remplacer 777 par tout autre code si vous ne définissez pas l'autorisation pour tous les utilisateurs / groupes.
la source
Pour ceux d'entre vous qui ne peuvent toujours pas résoudre le problème après avoir utilisé les solutions mentionnées ci-dessus. Essaye ça
Ça devrait faire l'affaire, bravo!
la source