npm install-g yo commande gives - > ERR! yo@1.1.0 postinstall: "nœud scripts/médecin.js`

je viens d'essayer de faire une installation npm mais obtenir cette erreur à propos de doctor,js à la fin. Ai-je besoin de s'inquiéter à ce sujet?

npm install-g yo

. .

npm http 304 https://registry.npmjs.org/graceful-fs
npm http 200 https://registry.npmjs.org/fstream/-/fstream-0.1.25.tgz
/usr/local/bin/yo -> /usr/local/lib/node_modules/yo/cli.js

> yo@1.1.0 postinstall /usr/local/lib/node_modules/yo
> node scripts/doctor.js

npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR! yo@1.1.0 postinstall: `node scripts/doctor.js`
npm ERR! `sh "-c" "node scripts/doctor.js"` failed with 1
npm ERR! 
npm ERR! Failed at the yo@1.1.0 postinstall script.
npm ERR! This is most likely a problem with the yo package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node scripts/doctor.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls yo
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.11.0-12-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "yo"
npm ERR! cwd /etc/libvirt/qemu
npm ERR! node -v v0.10.15
npm ERR! npm -v 1.2.18
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /etc/libvirt/qemu/npm-debug.log
npm ERR! not ok code 0

EDIT_____________--

pour une raison quelconque nœud -v sorties de rien dans le terminal

j'ai le dernier nœud installé:

WebstormProjects # sudo apt-get nœud d'installation Lecture des listes de paquets... Faire La construction de l'arbre des dépendances Lecture des informations d'état... Faire node est déjà la nouvelle version. 0 améliorée, 0 nouvellement installée, 0 pour supprimer et 143 pas améliorée.

16
demandé sur FutuToad 2014-01-02 14:39:50

7 réponses

La solution à ce lien a fonctionné pour moi:

http://plaidzooks.tumblr.com/post/36894116867/using-node-js-on-debian-ubuntu-systems

Ubuntu est livré avec un paquet qui crée automatiquement un lien de sorte que la commande 'nodejs' ne peut être invoquée comme 'node' qu'en créant un lien.

sudo apt-get install nodejs-legacy

et cela a permis à Yeoman de travailler.

29
répondu Antonio Drusin 2014-03-20 13:38:07

de même j'ai eu ce même problème (bien que sur un Mac). J'ai désinstallé et mis à niveau le noeud vers la dernière version (v0.10.24) mais sans succès.

Le lien fix a fonctionné pour moi, mais avec une légère modifier:

sudo ln -s /usr/local/bin/node /usr/bin/node

10
répondu joesch 2014-01-07 14:24:16

je crois que cela peut être dû à la façon dont node a été installé sur votre système. Apparemment, parfois lors de L'installation de Node via un gestionnaire de paquets, le binaire lié est nodejs, (donc nodejs _command_ est la commande qui fonctionne sur votre machine, pas beaucoup plus commun node _comamand_. Vous pouvez soit réinstaller Node (la dernière version est maintenant 0.10.24)nodejs.org, ou d'essayer cette solution de cette question connexe:

pour toute personne souhaitant utilisez toujours le paquet de noeud de leur système d'exploitation la solution simple pour cela est de déterminer où le noeud est installé sur votre système d'exploitation et ensuite de créer un lien symbolique.

par exemple, j'ai eu le problème sur ubuntu et le répertoire d'installation est /usr/bin. Pour créer le lien symbolique, vous pouvez exécuter:

sudo ln-s /usr/bin/nodejs /usr/bin/node

dans windows, vous pouvez utiliser la commande mklink.. Assurez-vous d'ouvrir l'invite de commande en tant que administrateur

7
répondu Stephen 2014-01-02 13:19:33

Vous devez installer nodejs de cette façon:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
6
répondu Flavio Troia 2014-02-25 11:22:54

j'ai eu cette même erreur sur une installation propre Ubuntu 13.10 et aucune quantité de lien sym (noeud > nodejs) ou d'installation/désinstallation m'a aidé.

Je n'ai pas une compréhension assez profonde de l'environnement du noeud pour le dépanner correctement mais J'ai pu installer Yeoman globalement en clonant le repo et en supprimant le contrôle postinstall du paquet.json.

Si quelqu'un d'autre veut essayer cette solution:

Clone Yeoman..

cd ~
git clone https://github.com/yeoman/yo

Modifier paquet.json..

nano yo/package.json

.. pour supprimer ces lignes..

"scripts": {
    "test": "grunt",
    "postinstall": "node ./scripts/doctor",
    "postupdate": "node ./scripts/doctor"
},

ensuite, installez-le en utilisant npm..

cd yo
npm install -g

Si vous voulez nettoyer, vous pouvez retirer la Garde des pensions..

cd ..
rm -R yo/

Evidemment, votre kilométrage peut varier, mais ça fonctionne pour moi jusqu'à présent.

j'ai aussi remarqué que j'ai réussi à lancer le doctor.js script indépendant du processus d'installation. Je ne sais pas pourquoi il a échoué si dur dans le premier lieu..

3
répondu Molomby 2014-02-10 01:58:13

sur Ubuntu 14.04, j'ai essayé à la fois d'installer le paquet legacy (réponse de per Antonio) et de créer le lien symbolique manuellement (réponse de per Stephen). Ni travaillé. Le paquet Ubuntu a la version 0.10.25 de node.JS, mais Yeoman semble avoir besoin d'une nouvelle version.

Après installation de la dernière version de node.js from NodeSource (actuellement v6.9.1), J'ai pu installer Yeoman en utilisant npm install -g yo.

0
répondu Josh Milthorpe 2017-04-13 12:22:45

Pour résoudre ce problème, vous devez installer le paquet nodejs-legacy.

sudo apt-get install nodejs-legacy
-1
répondu user3712694 2014-06-05 19:36:59