node e nodejs hanno versioni diverse


15

Ho aggiornato / installato con successo l'ultima versione del nodo js usando quei comandi (il curlmodo ufficiale non funziona per me):

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

Tuttavia, la versione del mio nodo e nodejs diventano diverse:

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

Sembra che il nuovo nodo sia installato /usr/local/bin/node, quindi ho provato:

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

Ma ritorna:

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

Uso anche questo link:

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

Userò alcuni framework che dipendono node, come Ionic. Quale versione del nodo utilizzerà?

Cosa devo fare per risolvere questo?

Grazie mille per il vostro aiuto


La vera domanda imo è, come faccio a dire n sovrascrivere eventuali versioni nodi esistenti e collegamento simbolico sia nodejse nodeal binario installato da n. E se n non è in grado di farlo, qual è l'approccio allo stato dell'arte? In un ambiente di lavoro è molto soggetto ad errori, se nodejs e node indirizzano versioni differenti di nodejs.
atripes

Risposte:


13

Passaggi che hanno risolto lo stesso problema per me:

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

Spiegazione

Hai installato due versioni di nodejs sul tuo computer, quindi devi rimuoverne una. La tua situazione:

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

È possibile rimuovere il nodejspacchetto tramite apt-get removecomando. Questo rimuoverà anche il file /usr/bin/nodejse non riceverai più il tuo messaggio di errore.

Ora puoi creare un link simbolico chiamato "/ usr / bin / nodejs", che punta sul sorgente "/ usr / local / bin / node". Nel tuo esempio hai un ordine errato di percorsi "da" e "a"

sudo ln -s source_file myfile

Ulteriori informazioni sulla creazione di collegamenti: come funzionano i collegamenti simbolici


5

L'errore:

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

è normalmente causato quando si hanno davvero due versioni di Nodejs, una con l'alias di nodee l'altra con l' nodejsalias, come possiamo vedere sul risultato dei comandi node --versione nodejs --version:

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

quindi non è possibile creare un collegamento simbolico per un file già esistente.

Per risolvere questo problema è necessario rimuovere completamente i due pacchetti utilizzando:

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

e reinstallare solo il nodejspacchetto usando il comando:

sudo apt-get install nodejs

e crea un collegamento simbolico usando:

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

o installa il nodejs-legacyche risolverà questo problema con il comando:

sudo apt-get install nodejs-legacy 

grazie mille, hai aggiunto le informazioni, ho già risolto il problema da solo. Ho votato.
Areim,

0

Per me il nodecomando è il NodeJS installato da nvme il nodejscomando è il NodeJS installato utilizzandoapt-get

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.