Erreur: EACCES: le refus d'une autorisation, d'accéder à "/usr/lib/node_modules'
Je suis en train d'installer la machine avec la commande npm install -g typescript
, et 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
De plus j'ai également npm install typescript
(sans l'option-g), mais ne marche pas, ou n'existe rien d'autre moyen pour installer tapuscrit?
Mon système d'exploitation est Linux Ubuntu 16.04.
J'utilise rarement node
et ne sais pas résoudre ce problème.
Ma question est : Exactement, ce que les répertoires des besoins qui permmisions ?
Essayez
sudo npm install -g typescript
OriginalL'auteur jjoselon | 2017-09-05
Vous devez vous connecter pour publier un commentaire.
Il n'est pas recommandé d'utiliser sudo avec npm de l'installer, suivez les étapes à partir de npmjs officiel docs à la place 🙂
Faire un répertoire mondial des installations:
Configurer les mnp à utiliser le nouveau chemin d'accès au répertoire:
Ouvrez ou créez un ~/.le fichier de profil et ajouter cette ligne:
De retour sur la ligne de commande, mise à jour de votre système de variables:
Test: Téléchargement d'un package à l'échelle mondiale, sans l'utilisation de sudo.
ne devrait pas l'étape 3
export PATH="~/.npm-global/bin:$PATH"
être mis en.bash_aliases
(inclus à partir de.bashrc
, ou directement là-bas...) pour la persistance?solution recommandée (Y)
C'est une bien meilleure réponse. Pas de jongler avec
sudo
ou des autorisations de répertoire.Cela devrait être la bonne réponse!
OriginalL'auteur Euler Ribeiro Sudbrack
Lors de l'installation globale des paquets sous ubuntu, vous devez spéciale, des autorisations d'écriture que vous écrivez à la
usr/bin
dossier. C'est pour des raisons de sécurité.Donc, chaque fois que vous installez un package global, utilisation:
sudo npm install -g [package-name]
pour votre cas spécifique:
sudo npm install -g typescript
Lorsque vous l'essayer sans
-g
tout ce que vous êtes en train de faire est d'installer le paquet localement dans quel dossier vous êtes dans:donc:
npm install typescript
permettra de créer unnode_modules
dossier dans le dossier où vous vous trouvez.chmod g+rw
sur/usr/lib/node_modules/
à la place?Vous ne devez pas utiliser sudo avec NPM install.
La notion que sudo ne doit pas être utilisé avec les MNP est mauvais et ne s'aligne pas avec le paradigme de l'installation globale binaires dans les emplacements spécifiés par l'UNIX Filesystem hierarchy Standard.
OriginalL'auteur Juan
J'ai le même problème avec webpack serveur d'installation à l'échelle mondiale, d'Utiliser les étapes Résolu mon problème, mon travail pour vous.
Étapes mention ci-dessus Il y a: Back-up de votre ordinateur avant de commencer.
Faire un répertoire mondial des installations:
1.
mkdir ~/.npm-global
Configurer les mnp à utiliser le nouveau chemin d'accès au répertoire:
2.
npm config set prefix '~/.npm-global'
Ouvrez ou créez un ~/.le fichier de profil et ajouter cette ligne:
3.
export PATH=~/.npm-global/bin:$PATH
De retour sur la ligne de commande, mise à jour de votre système de variables:
4.
source ~/.profile
Test: Téléchargement d'un package à l'échelle mondiale, sans l'utilisation de sudo.
npm install -g jshint
Au lieu de les étapes 2 à 4, vous pouvez utiliser le correspondant ENV variable (par exemple, si vous ne voulez pas modifier ~/.de profil):
NPM_CONFIG_PREFIX=~/.npm-global
OriginalL'auteur Vishal Patel
cela a fonctionné pour moi.
puis
OriginalL'auteur f.a.abadi