390 Stimmen

Nodejs vs node auf ubuntu 12.04

Ich habe Node.js auf Ubuntu gemäß den Anweisungen hier installiert.

Wenn ich node --version im Terminal eingebe, sehe ich folgendes:
-bash: /usr/sbin/node: Datei oder Verzeichnis nicht gefunden

Ich kann Node in dem Verzeichnis /usr/sbin/ jedoch sehen.

Das Schreiben von npm --version zeigt 1.3.5
Das Schreiben von nodejs --version zeigt v0.10.15

Außerdem kann ich Node im Verzeichnis /usr/bin/ sehen.

Also, wie bekomme ich node zum Laufen?

Außerdem, wenn ich anstelle von Bash zsh verwende, funktioniert der Befehl node.

613voto

randunel Punkte 8898

Sie müssen manuell einen Symlink /usr/bin/node erstellen. Verknüpfung für bash-kompatible Shells:

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

Oder wenn Sie nicht-standardmäßige Shells verwenden, codieren Sie einfach den Pfad, den Sie mit which nodejs finden:

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

Spätere Bearbeitung

Ich habe diese Erklärung in dem Link gefunden, den Sie gepostet haben

Es besteht ein Namenskonflikt mit dem node-Paket (Amateur Packet Radio Node Program), und die nodejs-Binärdatei wurde von node in nodejs umbenannt. Sie müssen /usr/bin/node mit /usr/bin/nodejs verlinken, oder Sie könnten das Amateur Packet Radio Node Program deinstallieren, um diesen Konflikt zu vermeiden.

Noch spätere Bearbeitung

Es ist eine Weile her, seit ich das beantwortet habe. Obwohl die Lösung, die ich hier oben gepostet habe, mehrmals für mich funktioniert hat, haben Benutzer in den Kommentaren noch ein paar weitere Lösungen gemeldet:

Von @user229115

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

Von AskUbuntu (Nutzer leftium)

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

90voto

user229115 Punkte 1071

Ich glaube, das ist es:

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

Verwendung von Debian-Alternativen.

68voto

Tino Punkte 8393

Offensichtlich unterscheidet sich die Lösung zwischen den Ubuntu-Versionen. Folgendes hat bei mir unter Ubuntu 13.10 funktioniert:

sudo apt-get install nodejs-legacy

HTH

Bearbeiten: Daumenregel:

Wenn Sie nodejs installiert haben, aber das /usr/bin/node Binary fehlt, installieren Sie auch nodejs-legacy. Dies erstellt lediglich den fehlenden Softlink.

Nach meinen Tests haben Ubuntu 17.10 und höhere Versionen bereits den Kompatibilitäts-Softlink /usr/bin/node an Ort und Stelle, nachdem nodejs installiert wurde, daher fehlt nodejs-legacy in diesen Versionen, da es nicht mehr benötigt wird.

30voto

Dmytro Medvid Punkte 4648

Ich habe dasselbe Problem in Ubuntu 14.04.

Ich habe "nodejs" installiert und es funktioniert, aber nur wenn ich den Befehl "nodejs" verwende. Wenn ich "node" versuche zu verwenden, passiert nichts.

Ich habe dieses Problem folgendermaßen behoben:

  1. Installieren Sie nodejs-legacy

    sudo apt-get install nodejs-legacy

Nachdem ich das getan habe, erhalte ich beim Eingeben von "node" in der Befehlszeile eine Fehlermeldung "/usr/sbin/node: Datei oder Verzeichnis nicht gefunden".

  1. Zweitens habe ich einen symbolischen Link auf "nodejs" erstellt:

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

12voto

Rotareti Punkte 39876

Node Version Manager (nvm)

Wenn Sie mehrere Node.js-Versionen installieren und einfach zwischen ihnen wechseln möchten, würde ich empfehlen, Node Version Manager zu verwenden. Es löst auch das Namensproblem (node vs nodejs).

Es ist ganz einfach:

Installieren Sie eine Node.js-Version:

$ nvm install 4.4

Jetzt haben Sie Node.js 4.4 zusätzlich zur bereits installierten Version und Sie können einfach den Befehl node verwenden, um die neu installierte Version zu erreichen:

$ node -v    // Die von nvm hinzugefügte neue Version.
v4.4.5
$ nodejs -v  // Die Betriebssystem-Version bleibt unberührt und weiterhin verfügbar.
v0.10.25

Sie können weitere Node.js-Versionen installieren und einfach zwischen ihnen wechseln:

$ nvm install 6.2
$ nvm use 6.2
Jetzt wird Node v6.2.1 verwendet (npm v3.9.3)
$ node -v
v6.2.1
$ nvm use 4.4
Jetzt wird Node v4.4.5 verwendet (npm v2.15.5)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X