node & nodejs haben unterschiedliche Versionen

15

Ich aktualisiere / installiere die neueste Version von Node Js erfolgreich mit den folgenden Befehlen (die offizielle curlMethode funktioniert bei mir nicht):

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

Die Version von my node und nodejs wird jedoch anders:

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

Es scheint, dass der neue Knoten installiert ist /usr/local/bin/node, also habe ich versucht:

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

Aber es kehrt zurück:

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

Ich benutze auch diesen Link:

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

Ich werde einige Frameworks verwenden, die davon abhängen node, wie Ionic. Welche Knotenversion wird verwendet?

Was soll ich tun, um das zu lösen?

Vielen dank für Deine Hilfe

Blaze Tama
quelle
Die eigentliche Frage imo ist, wie kann ich feststellen , n alle vorhandenen Knoten Versionen zu überschreiben und Symlink beide nodejsund nodedie binären von n installiert ist . Und wenn n dazu nicht in der Lage ist, wie lautet der Stand der Technik? In einer Arbeitsumgebung ist es sehr fehleranfällig, wenn nodejs und node unterschiedliche nodejs-Versionen ansprechen.
Reife

Antworten:

13

Schritte, die das gleiche Problem für mich gelöst haben:

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

Erläuterung

Sie haben zwei Versionen von nodejs auf Ihrem Computer installiert, sodass Sie eine davon entfernen müssen. Deine Situation:

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

Sie können das nodejsPaket per apt-get removeBefehl entfernen . Dadurch wird auch die Datei entfernt /usr/bin/nodejsund Sie erhalten keine Fehlermeldung mehr.

Jetzt können Sie einen symbolischen Link mit dem Namen "/ usr / bin / nodejs" erstellen, der auf die Quelle "/ usr / local / bin / node" verweist. In Ihrem Beispiel haben Sie die falsche Reihenfolge der Pfade "von" und "nach"

sudo ln -s source_file myfile

Weitere Informationen zum Erstellen von Links: Funktionsweise symbolischer Links

areim
quelle
5

Der Fehler:

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

wird normalerweise verursacht, wenn Sie wirklich zwei Versionen der Nodejs haben, eine mit dem Alias ​​der nodeund die andere mit dem nodejsAlias, wie wir am Ergebnis der Befehle sehen können node --versionund nodejs --version:

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

Sie können also keine symbolische Verknüpfung für eine bereits vorhandene Datei erstellen.

Um dies zu lösen, müssen Sie die beiden Pakete vollständig entfernen:

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

und installieren Sie nur das nodejsPaket mit dem folgenden Befehl neu:

sudo apt-get install nodejs

und erstellen Sie eine symbolische Verknüpfung mit:

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

oder installieren Sie das nodejs-legacyProgramm, mit dem das Problem behoben werden kann:

sudo apt-get install nodejs-legacy 
valdeci
quelle
Vielen Dank, Sie haben die Informationen hinzugefügt, ich habe das Problem bereits selbst gelöst. Ich habe gestimmt.
Areim
0

Für mich ist der nodeBefehl der NodeJS, der von installiert wurde, nvmund der nodejsBefehl ist der NodeJS, der mit installiert wurdeapt-get

Alexander Elgin
quelle