node & nodejs ont une version différente

15

J'ai réussi à mettre à jour / installer la dernière version de node js en utilisant ces commandes (la curlmanière officielle ne fonctionne pas pour moi):

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node

Cependant, la version de mon noeud et de nodejs devient différente:

$ node --version
v5.0.0
$ nodejs --version
v0.10.25

Il semble que le nouveau nœud soit installé /usr/local/bin/node, j'ai donc essayé:

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

Mais ça revient:

ln: failed to create symbolic link ‘/usr/local/bin/node’: File exists

J'utilise également ce lien:

$ sudo ln -s /usr/bin/nodejs /usr/bin/node
ln: failed to create symbolic link ‘/usr/bin/node’: File exists

J'utiliserai certains frameworks qui dépendent node, comme Ionic. Quelle version de nœud utilisera-t-elle?

Que dois-je faire pour résoudre ce problème?

Merci beaucoup pour votre aide

Blaze Tama
la source
La vraie question est imo, comment puis-je dire n effacera toutes les versions de nœud existant et un lien symbolique à la fois nodejset nodele binaire installé par n. Et si n est incapable de le faire, quelle est l'approche de pointe? Dans un environnement de travail, il est très sujet aux erreurs, si nodejs et node adressent des versions de nodejs différentes.
atripes le

Réponses:

13

Étapes qui ont résolu le même problème pour moi:

sudo apt-get remove nodejs
sudo ln -s /usr/bin/node /usr/bin/nodejs

Explication

Vous avez installé deux versions de nodejs sur votre ordinateur, vous devez donc en supprimer une. Ta situation:

node v5.0.0 - you will keep this one
nodejs v0.10.25 - this you can remove

Vous pouvez supprimer le nodejspackage via la apt-get removecommande. Cela supprimera également le fichier /usr/bin/nodejset vous n'obtiendrez plus votre message d'erreur.

Vous pouvez maintenant créer un lien symbolique appelé "/ usr / bin / nodejs", qui pointe sur la source "/ usr / local / bin / node". Dans votre exemple, vous avez un mauvais ordre de chemins "de" et "vers"

sudo ln -s source_file myfile

Plus d'informations sur la création de liens: fonctionnement des liens symboliques

areim
la source
5

L'erreur:

ln: failed to create symbolic link ‘/usr/bin/node’: File exists

est normalement causé lorsque vous avez vraiment deux versions des Nodejs, une avec l'alias de la nodeet l'autre avec l' nodejsalias, comme nous pouvons le voir sur le résultat des commandes node --versionet nodejs --version:

$ node --version
v5.0.0
$ nodejs --version
v0.10.25

vous ne pouvez donc pas créer de lien symbolique pour un fichier qui existe déjà.

Pour résoudre ce problème, vous devez supprimer complètement les deux packages à l'aide de:

sudo apt-get purge node
sudo apt-get purge nodejs
sudo rm -rf bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node

et réinstallez uniquement le nodejspackage à l'aide de la commande:

sudo apt-get install nodejs

et créer un lien symbolique en utilisant:

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

ou installez le nodejs-legacyqui résoudra ce problème avec la commande:

sudo apt-get install nodejs-legacy 
valdeci
la source
merci beaucoup, vous avez ajouté les informations, j'ai déjà résolu le problème par moi-même. J'ai voté positivement.
areim
0

Pour moi, la nodecommande est le NodeJS installé par nvmet la nodejscommande est le NodeJS installé à l'aideapt-get

Alexander Elgin
la source