Nom de l'interpréteur NodeJS( node
) sur Ubuntu a été renommé en nodejs
en raison d'un conflit de nom avec un autre paquet. Voici ce que dit le readme. Debian dit :
Le nom amont de la commande de l'interpréteur Node.js est " node ". Dans Debian, la commande de l'interpréteur a été changée en " nodejs ".
Cela a été fait pour éviter une collision d'espace de noms : d'autres commandes utilisent le même nom en amont, comme ax25-node du paquet "node". du paquet "node".
Les scripts appelant Node.js comme une commande shell doivent être modifiés pour plutôt utiliser la commande "nodejs".
Cependant, l'utilisation de nodejs nuit à l'installation des paquets en utilisant npm
. L'installation du paquet échoue avec l'erreur suivante :
sh: 1: node: not found 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
Comment faire comprendre à npm que nodejs est déjà installé sur le système mais que le nom de l'interpréteur est différent ?
29 votes
Vous pouvez essayer de
ln -s nodejs node
sur/usr/bin
. Mais c'est un peu du bricolage.1 votes
@vbo vous pouvez ajouter cela comme réponse - cela résout le problème !
2 votes
@HimelNagRana J'ai une autre réponse (meilleure, acceptée). Mon commentaire initial a également été transformé en réponse ( stackoverflow.com/a/21168305/539686 ).
4 votes
Utilisez NVM pour installer et gérer les versions de Node.js, github.com/creationix/nvm C'est facile et pratique !
2 votes
Je recommande vivement cette solution : stackoverflow.com/a/38325376/3197383 pour avoir le contrôle des versions de node et de npm à tout moment et pour tout usage.