90 votes

Erreur : EACCES : permission denied, accès '/usr/lib/node_modules'.

J'essaie d'installer Typescript avec la commande npm install -g typescript et il renvoie cette erreur :

    npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, access '/usr/lib/node_modules'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'access',
    npm ERR!   path: '/usr/lib/node_modules' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.
    npm ERR! Linux 4.4.0-93-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "typescript"
    npm ERR! node v6.11.2
    npm ERR! npm  v3.10.10
    npm ERR! path npm-debug.log.1024969454
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall open

    npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'open',
    npm ERR!   path: 'npm-debug.log.1024969454' }
    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!     /npm-debug.log
    jramirez@jramirez:/$ ^C
    jramirez@jramirez:/$ npm install typescript
    npm WARN checkPermissions Missing write access to /
    /
     typescript@2.5.2 

    npm WARN enoent ENOENT: no such file or directory, open '/package.json'
    npm WARN !invalid#1 No description
    npm WARN !invalid#1 No repository field.
    npm WARN !invalid#1 No README data
    npm WARN !invalid#1 No license field.
    npm ERR! Linux 4.4.0-93-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript"
    npm ERR! node v6.11.2
    npm ERR! npm  v3.10.10
    npm ERR! path /
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall access

    npm ERR! Error: EACCES: permission denied, access '/'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, access '/'
    npm ERR!     at Error (native) errno: -13, code: 'EACCES', syscall: 'access', path: '/' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.
    npm ERR! Linux 4.4.0-93-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript"
    npm ERR! node v6.11.2
    npm ERR! npm  v3.10.10
    npm ERR! path npm-debug.log.2387664261
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall open

    npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'open',
    npm ERR!   path: 'npm-debug.log.2387664261' }
    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!     /npm-debug.log

En outre, je dirige npm install typescript (sans -g), mais cela ne fonctionne pas. Existe-t-il un autre moyen d'installer typescript ? Mon système d'exploitation est Linux Ubuntu 16.04. Je n'utilise que rarement node et je ne sais pas comment résoudre ce problème.

Ma question est la suivante : quels sont exactement les répertoires qui ont besoin de cette autorisation ?

5 votes

Essayez sudo npm install -g typescript

306voto

Il n'est pas recommandé d'utiliser sudo avec npm install, suivez plutôt les étapes de la doc officielle de npmjs :)

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

mkdir ~/.npm-global

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

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

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

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

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

source ~/.profile

Test : Télécharger un paquet globalement sans utiliser sudo.

npm install -g typescript

Fuente: https://docs.npmjs.com/getting-started/fixing-npm-permissions

2 votes

Tu as sauvé ma journée, mec. Ça marche parfaitement, merci.

5 votes

Ne devrait pas être l'étape 3 export PATH="~/.npm-global/bin:$PATH" être mis en .bash_aliases (inclus à partir de .bashrc ou directement là...) pour la persistance ?

0 votes

Solution recommandée (Y)

16voto

Juan Points 2542

Lors de l'installation de paquets globaux dans ubuntu, vous avez besoin de droits d'écriture spéciaux car vous écrivez dans le fichier usr/bin dossier. C'est pour des raisons de sécurité.

Ainsi, chaque fois que vous installez un paquet global, utilisez :

sudo npm install -g [package-name]

pour votre cas spécifique :

sudo npm install -g typescript

Quand vous l'essayez sans -g tout ce que vous faites, c'est installer le paquet localement dans le dossier où vous vous trouvez :

donc : npm install typescript créera un node_modules dans le dossier où vous vous trouvez.

1 votes

Est-ce que ce serait terriblement mal d'opter pour une chmod g+rw sur /usr/lib/node_modules/ à la place ?

27 votes

Vous ne devez pas utiliser sudo avec NPM install.

0 votes

La notion selon laquelle sudo ne devrait pas être utilisé avec NPM est erronée et ne s'aligne pas sur le paradigme de l'installation de binaires globaux dans des emplacements spécifiés par le système UNIX. Standard de la hiérarchie des systèmes de fichiers .

7voto

Vishal Patel Points 378

J'ai le même problème avec l'installation du serveur webpack sur le monde, les étapes de l'utilisation ont résolu mon problème, mon être de travail pour vous.

Étapes mentionnées ci-dessus : Faites une sauvegarde de 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 du 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 paquet 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 voulez pas modifier ~/.profile) :

NPM_CONFIG_PREFIX=~/.npm-global

0voto

Gian Dal Pont Points 1

1) Allez dans le répertoire " /usr/local/lib/node_modules "

2) Cliquez sur le dossier et cliquez à droite sur Get info

3) Cliquez sur le verrou en bas à droite

4) Saisissez le mot de passe de votre fenêtre pour la déverrouiller

5) Vérifiez à la fois la valeur de Roue y Tout le monde a Lire & Écrire à

6) Retournez dans votre terminal et essayez à nouveau d'installer le Typescript.

0 votes

wheel c'est un truc BSD/RedHat, pas dans les systèmes basés sur Debian comme Ubuntu unix.stackexchange.com/questions/4460/

-3voto

f.a.abadi Points 78

Cela a fonctionné pour moi.

sudo npm install -g coffee-script

entonces

sudo npm install -g typescript

4 votes

Essayez d'éviter d'utiliser sudo avec npm install qui peut être dangereux en termes de sécurité. Suivez les étapes fournies dans la documentation officielle de npmjs. docs.npmjs.com/getting-started/fixing-npm-permissions

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