node.js conflits: / sbin / node contre / usr / bin / node

32

J'ai deux machines Ubuntu 12.10: la machine A est une machine virtuelle VMWare et la machine B est un ancien ordinateur portable Acer. Sur les deux machines, j'ai installé le noeud en utilisant apt-get. Cependant, la machine A installe le binaire principal en tant que /usr/bin/node et la machine B en tant que /usr/bin/nodejs . Voici quelques comportements que j'ai observés:

  1. Les deux machines renvoient /usr/bin/node en réponse à la commande which node . Cependant, il n’existe pas de fichier de ce type sur la machine B.
  2. Emettre la commande node fonctionne pour la machine A et non pour B. Sur B, je dois utiliser nodejs à la place.
  3. Sur B, il existe un binaire appelé / sbin / node, A ne l’a pas.

Ces comportements posent un problème d’incohérence lors du développement sur les deux machines. Pour l’instant, j’ai travaillé en renommant les fichiers binaires de B en tant que tels:

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

Existe-t-il un moyen de remédier réellement à ce problème afin que ce nœud soit installé en tant que /usr/bin/node au lieu de /usr/bin/nodejs ?

    
posée Hai Vu 03.01.2013 - 15:30
la source

7 réponses

15

Sous Ubuntu 13.10, toutes les réponses ci-dessus ne fonctionnaient pas pour moi. Cela a finalement fonctionné quand j’ai installé nodejs-legacy

sudo apt-get install nodejs-legacy

Ceci m'a correctement fourni /usr/bin/node , de sorte que e. g. nodemon peut être utilisé.

    
réponse donnée Teetrinker 29.03.2014 - 21:12
la source
36

mise à jour: modifié les instructions ci-dessous pour utiliser le package nodejs-legacy . )

Essayez de supprimer complètement le package de noeud en conflit:

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

sudo apt-get install nodejs-legacy

# Confirm it worked
node --version       # v0.10.13
ls -la 'which node'  # ... /usr/bin/node -> /etc/alternatives/node

Cela m'est arrivé lorsque j'ai involontairement installé le package node non-node.js. Bien que j'aie fait apt-get remove node avant d'installer le package correct nodejs , je suppose que l'argument --purge est requis.

Informations générales :

There is a naming conflict with the node package (Amateur Packet Radio Node Program), and the nodejs binary has been renamed from node to nodejs. You'll need to symlink /usr/bin/node to /usr/bin/nodejs or you could uninstall the Amateur Packet Radio Node Program to avoid that conflict.

    
réponse donnée Leftium 15.07.2013 - 15:16
la source
11

Malheureusement pour moi, créer un lien symbolique n'a pas fonctionné. Ce qui a bien fonctionné pour moi, c’était de créer un alias. Dans ~/.bashrc ou ~/.bash_aliases (si ~/.bashrc charge ce fichier), ajoutez simplement la ligne suivante:

alias node="nodejs"

Redémarrez votre session bash en tapant bash dans la console pour que votre alias fonctionne.

    
réponse donnée Aust 21.03.2013 - 18:33
la source
7

Je pense que ça y est:

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

Utiliser les alternatives Debian.

    
réponse donnée user229115 30.12.2013 - 19:10
la source
1

Réponse tardive, mais pour des informations à jour ...

Si vous installez node.js à l'aide de la méthode recommandée à partir de installation de github de nœuds Lisez-moi , il est suggéré de suivre les instructions de l’article du blog de la source , plutôt que d'installer à partir du référentiel apt-get obsolète, node.js devrait s'exécuter à l'aide de la commande node , ainsi que de la commande nodejs , sans avoir à créer de nouveau lien symbolique.

Cette méthode de l'article est la suivante:

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

Notez que ceci concerne la v0.12, qui deviendra probablement obsolète dans un avenir pas si lointain.

De plus, si vous êtes derrière un proxy d'entreprise (comme moi), vous voudrez ajouter l'option -E à la commande sudo afin de conserver les vars env nécessaires au proxy:

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -
    
réponse donnée Erresen 01.06.2015 - 09:19
la source
1

Sous Ubuntu 14.04 , j'ai eu le même problème de nœud. Je n'avais pas travaillé "noeud", et "nodejs". Je viens de faire

sudo apt-get remove node

et juste après cela, node était en cours d'exécution, et nodejs est également en cours d'exécution :) Je suis nouveau sur Linux et c'est un malentendu pour moi. Cependant Bower est en marche !!!

    
réponse donnée Georgi Danchev 10.07.2016 - 09:04
la source
0
sudo getconf LONG_BIT
sudo uname -p
  • Confirmez l'architecture de votre CPU
  • Recherchez votre distribution node.js dans l'arborescence du répertoire à l'adresse link (remarque: différentes versions de différentes distributions node.js pour différentes architectures de CPU. )

Mon bureau est actuellement sous Ubuntu 15.10 AMD64, je vais donc utiliser l'URL suivante dans mon exemple d'installation (là encore, la distribution varie):

sudo wget https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-x64.tar.gz

Puis changez de répertoire pour votre répertoire de téléchargement:

sudo cd /home/name/Downloads

À partir de votre répertoire de téléchargement, exécutez les opérations suivantes:

sudo tar -C /usr/local --strip-components 1 -xzf node-v5.0.0-linux-x64.tar.gz

Confirmez votre installation de node.js avec les éléments suivants:

sudo ls -l /usr/local/bin/node
sudo ls -l /usr/local/bin/npm

réf. lien

    
réponse donnée nick indiessance 12.11.2015 - 21:50
la source

Lire d'autres questions sur les étiquettes