35 votes

NPM ne fonctionne plus

Je n'ai donc pas fait attention et j'ai exécuté cette commande

npm install npm install jasmine-node -g

qui a provoqué cette -

    npm http GET https://registry.npmjs.org/install
npm http GET https://registry.npmjs.org/jasmine-node
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/install
npm http GET https://registry.npmjs.org/install/-/install-0.1.7.tgz
npm http 200 https://registry.npmjs.org/install/-/install-0.1.7.tgz
npm http 200 https://registry.npmjs.org/jasmine-node
npm http GET https://registry.npmjs.org/jasmine-node/-/jasmine-node-1.4.0.tgz
npm http 200 https://registry.npmjs.org/jasmine-node/-/jasmine-node-1.4.0.tgz
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-1.2.15.tgz
npm http 200 https://registry.npmjs.org/npm/-/npm-1.2.15.tgz
npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/install'
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/install']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/install',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/install',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR!      'Object.oncomplete (fs.js:297:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "npm" "install" "jasmine-node" "-g"
npm ERR! cwd /Users/psanker/Google Drive/Coding/Javascript/WhatsGoingOn
npm ERR! node -v v0.8.17
npm ERR! npm -v 1.2.0
npm ERR! path /usr/local/lib/node_modules/install
npm ERR! fstream_path /usr/local/lib/node_modules/install
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/install'
npm ERR! fstream_stack DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:297:15)
npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node'
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/jasmine-node',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/jasmine-node',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR!      'Object.oncomplete (fs.js:297:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "npm" "install" "jasmine-node" "-g"
npm ERR! cwd /Users/psanker/Google Drive/Coding/Javascript/WhatsGoingOn
npm ERR! node -v v0.8.17
npm ERR! npm -v 1.2.0
npm ERR! path /usr/local/lib/node_modules/jasmine-node
npm ERR! fstream_path /usr/local/lib/node_modules/jasmine-node
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node'
npm ERR! fstream_stack DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:297:15)
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR! error rolling back  npm@1.2.15 { [Error: EACCES, unlink '/usr/local/lib/node_modules/npm']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/npm' }
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR!  { [Error: EACCES, unlink '/usr/local/lib/node_modules/npm']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/npm' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "npm" "install" "jasmine-node" "-g"
npm ERR! cwd /Users/psanker/Google Drive/Coding/Javascript/WhatsGoingOn
npm ERR! node -v v0.8.17
npm ERR! npm -v 1.2.0
npm ERR! path /usr/local/lib/node_modules/npm
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/psanker/Google Drive/Coding/Javascript/WhatsGoingOn/npm-debug.log
npm ERR! not ok code 0

Maintenant, lorsque j'essaie de lancer

npm install jasmine-node -g

J'obtiens

-bash: /usr/local/bin/npm: No such file or directory

Que se passe-t-il ?

0 votes

Comment avez-vous installé node sur votre machine ?

0 votes

Je déconseille d'installer des paquets npm en tant que Root/administrateur. Voir ici pour une solution alternative : coderwall.com/p/6aumug/

115voto

Lorsque vous exécutez npm install -g somepackage, vous pouvez obtenir une erreur EACCES vous demandant d'exécuter à nouveau la commande en tant que Root/Administrator. Il s'agit d'un problème de permissions.

C'est facile à réparer Ouvrez votre terminal (Applications > Utilitaires > Terminal).

sudo chown -R $USER /usr/local

** Je vous recommande fortement de ne pas utiliser la gestion des paquets avec sudo (sudo npm -g install something), car vous pourriez avoir des problèmes plus tard **.

Référence : http://foohack.com/2010/08/intro-to-npm/

** Update **

La raison est que cela peut causer des problèmes de permissions avec beaucoup d'autres applications, je vous conseille donc de ne pas le faire.

Une meilleure solution pour une installation globale :

sudo chown -R `whoami` ~/.npm

6 votes

Je comprends que l'utilisation d'un utilisateur distinct soit bénéfique contre l'accès à la racine. Néanmoins, je ne recommanderais pas de faire "sudo chown -R $USER /usr/local". En effet, ce que vous essayez de faire ici, c'est de permettre à $USER d'accéder à tout ce qui se trouve dans /usr/local. Je ne voudrais pas que ce $USER spécifique ait toutes les permissions. La solution consiste simplement à trouver le dossier exact dans /usr/local ou n'importe quel autre emplacement et à lui donner uniquement le droit d'être utilisé par $USER. Cette solution est également très vulnérable aux abus. Une autre solution que je préfère est de "chmoder" le paquet exact avec QUELQUES permissions SUPPLÉMENTAIRES pour des utilisateurs distincts.

8 votes

J'ai effectué cette commande, mais en la qualifiant uniquement pour le répertoire node_modules. /usr/local/lib/node_modules et cela a fonctionné à merveille.

1 votes

@pruett vous pouvez installer node en utilisant ceci liste

30voto

asgoth Points 14599

J'ai moi-même essayé.

Vous devez installer npm encore une fois. Si vous utilisez git C'est le moyen le plus simple :

git clone http://github.com/isaacs/npm.git
cd npm
sudo make install

Sinon, il y a aussi un script d'installation script :

curl http://npmjs.org/install.sh | sh

(il est possible que vous deviez utiliser sudo sh au lieu de sh ).

Installez ensuite à nouveau votre module :

sudo npm install jasmine-node -g

ÉDITER 23/01/2014 :

Maintenant, npm est livré avec NodeJs lui-même, il suffit donc de réinstaller NodeJs .

2 votes

Ahh oui, comme mon unixfoo est faible, j'ai fait sudo curl://npmjs.org/install.sh | sh qui s'est avéré erroné. Je n'avais pas réalisé que la tuyauterie nécessitait une autre couche de sudo ! Merci d'avance

0 votes

@Michael Je suis tombé dans ce piège moi aussi ;)

0 votes

Devrait être curl -L npmjs.com/install.sh | sh maintenant github.com/npm/npm#fancy-install-unix

10voto

romainberger Points 2203

Regardez l'erreur

Please try running this command again as root/Administrator.

Vous devez l'exécuter avec sudo

$ sudo npm install jasmine-node -g

0 votes

@praks5432 sudo pas trouvé ? je suis désolée mais c'est tout ce que je peux faire pour vous aider... Je n'ai aucune idée de ce qu'il faut faire dans ce cas.

0 votes

Cette astuce m'a aidé dans l'installation de Windows env. L'installation était bloquée à la deuxième commande "GET", sans aucun message d'erreur...

1 votes

@romainberger ce n'est pas une bonne idée d'utiliser npm en tant que Root, cela vous causera des problèmes plus tard

6voto

Aaron Mcguire Points 48

Cela a fonctionné pour moi (OSX). J'ai dû l'exécuter dans mon répertoire utilisateur.

cd ~

curl -L http://npmjs.org/install.sh | sudo sh

-2voto

Klang Wutcharin Points 37

Essayez ceci pour corriger l'erreur :

npm install bower --registry http://registry.npmjs.org/

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