560 votes

Erreur: EACCES: autorisation refusée, accédez à "/ usr / local / lib / node_modules"

Qu'est-ce qui pourrait causer 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
 

859voto

okandas Points 2201

changer les permissions des fichiers .. comme ceci

d'abord vérifier à qui appartient le répertoire

ls -la /usr/local/lib/node_modules

c'est refuser l'accès parce que le node_module dossier est la propriété de root

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

donc, ce qui doit être changé en modifiant la racine de votre utilisateur mais d'abord exécuter la commande ci-dessous pour vérifier votre actuelle de l'utilisateur Comment puis-je obtenir le nom de l'utilisateur actif via la ligne de commande sous mac OS X?

id -un

OU

whoami

puis changement de propriétaire

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

OU

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

OU

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

349voto

Naveen Raju Points 11

Afin de minimiser les risques d'autorisations des erreurs, vous pouvez configurer les mnp à utiliser un autre répertoire. Dans cet exemple, vous allez créer et utiliser un répertoire caché dans votre répertoire home.

Sauvegarder votre ordinateur. Sur la ligne de commande, dans votre répertoire, créez un répertoire mondial des installations: mkdir ~/.npm-global Configurer les mnp à utiliser le nouveau chemin d'accès au répertoire: npm config set prefix '~/.npm-global' Dans votre éditeur de texte préféré, ouvrez ou créez un ~/.profile le fichier et ajouter cette ligne: export PATH=~/.npm-global/bin:$PATH Sur la ligne de commande, mise à jour de votre système de variables: source ~/.profile Pour tester votre nouvelle configuration, l'installation d'un package dans le monde entier sans l'aide de sudo

82voto

Nizar Points 320

Tout ce que vous avez à faire est d’ajouter USER au propriétaire de / local / lib

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

41voto

Pradeep Kumar HK Points 101

essayer d'ajouter sudo avant la commande que vous essayez.

comme ceci : sudo npm install

L'utilisation de sudo avec une commande sous Linux/UNIX en général l'élève de vos autorisations d'accès de superutilisateur niveaux. Dans Windows, le compte super-utilisateur est généralement appelé 'Administrateur.' Sous Linux/Unix le compte super-utilisateur est généralement nommé "root".

La racine de l'utilisateur a l'autorisation d'accéder, de modifier ou de supprimer presque tous les fichiers sur votre ordinateur. Normal comptes d'utilisateurs peuvent accéder, de modifier ou de supprimer beaucoup moins de fichiers. Les restrictions sur un compte normal de protéger votre ordinateur des accès non autorisés ou des programmes malveillants ou des utilisateurs. Certains procédés de vous obliger à effectuer des actions sur les fichiers ou les dossiers que vous n'avez pas l'habitude de permissions d'accès. L'installation d'un programme que tout le monde peut accéder est l'une de ces actions.

Dans votre cas, l'exécution de l'installation de commande avec sudo vous donne les autorisations de l'utilisateur, et permet de modifier les fichiers que votre utilisateur n'est pas autorisé à modifier.

19voto

cinobili19 Points 110

Lors de l'installation de packages globaux dans ubuntu , vous devez disposer d'autorisations d'écriture spéciales pour pouvoir écrire dans le dossier usr/bin . C'est pour des raisons de sécurité. Donc, chaque fois que vous installez un paquet global, utilisez:

 sudo npm install -g [package-name]
 

Pour votre cas particulier, ce sera:

 sudo npm install -g typescript
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X