522 votes

Impossible d'installer des paquets en utilisant le gestionnaire de paquets node dans Ubuntu

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 ).

5voto

frostcs Points 147

Votre système n'est pas en mesure de détecter le chemin du binaire node js.

1.quel noeud

2.Puis liaison douce entre le noeud et le noeudjs

ln -s [the path of nodejs] /usr/bin/node 

Je suppose que /usr/bin est dans votre chemin d'exécution. Vous pouvez ensuite tester en tapant node ou npm dans votre ligne de commande, et tout devrait fonctionner maintenant.

4voto

Désinstallez la version de node que vous avez

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs

installer nvm (Node Version Manager) https://github.com/creationix/nvm

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

Vous pouvez maintenant installer la version de node que vous voulez et passer d'une version à l'autre.

0 votes

FYI - toute personne utilisant la méthode ci-dessus, nvm Notez que le paquet nodejs-legacy est v0.10.25. (ou du moins, c'est ce que j'ai vu quand je l'ai essayé).

3voto

J'ai résolu le problème en dissociant /usr/sbin/node (qui est lié au paquet ax25-node), puis j'ai créé un lien vers nodejs en utilisant ceci en ligne de commande

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

Parce que le paquet tel que karma ne fonctionne pas avec le nom nodejs, cependant changer la première ligne de karma script de node à nodejs, mais je préfère résoudre ce problème une fois pour toutes

1voto

Jimmy Points 2017

Pour moi, la solution consistait à supprimer les paquets node* et les paquets npm.

Puis une nouvelle installation comme :

sudo apt-get install autoclean
sudo apt-get install nodejs-legacy
npm install

0 votes

sudo apt-get autoclean fait "pareil" que sudo apt-get install autoclean

1voto

Vinayk93 Points 181

Le problème n'est pas dans l'installateur
remplacer nodejs par node ou changer le chemin de /usr/bin/nodejs à /usr/bin/node

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