Nodejs vs. Node auf Ubuntu 12.04

Lesezeit: 7 Minuten

Nodejs vs Node auf Ubuntu 1204
Jatin

Ich habe nodejs auf Ubuntu gemäß den angegebenen Anweisungen installiert Hier

Wenn ich schreibe node --version im terminal sehe ich das:
-bash: /usr/sbin/node: No such file or directory

Ich kann Knoten in sehen /usr/sbin/ Verzeichnis aber.

Schreiben npm --version zeigt an 1.3.5

Schreiben nodejs --version zeigt an v0.10.15

Außerdem kann ich den Knoten in der sehen /usr/bin/ Verzeichnis.

Also, wie bekomme ich node Arbeiten?

Auch, wenn ich benutze zsch statt bash, dann node Befehl funktioniert.

  • Wenn “Sie einen Knoten in /usr/bin/ sehen”, was ist dann die Ausgabe von ls -l /usr/bin/node?

    – Randunel

    8. August 2013 um 15:51 Uhr


  • @randunel Ich habe diese Ausgabe bekommen lrwxrwxrwx 1 root root 22 Jan 1 2013 /usr/bin/node -> /etc/alternatives/node

    – Jatin

    8. August 2013 um 16:00 Uhr

  • Hast du irgendwelche Änderungen an Shell rc vorgenommen?

    – Randunel

    8. August 2013 um 16:13 Uhr

  • Dies sieht aus wie ein Shell-Problem nach Ihrer Bearbeitung, was tut export | grep PATH Ausgabe bei Nichtbenutzung zsh? (es sollte drucken /usr/bin unter anderem)

    – Randunel

    8. August 2013 um 16:17 Uhr


  • Lösung + Erklärung hier: stackoverflow.com/questions/21168141/…

    – throbi

    15. April 2016 um 10:08 Uhr

1647257710 858 Nodejs vs Node auf Ubuntu 1204
Randunel

Sie müssen manuell einen Symlink erstellen /usr/bin/node. Shortcut 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 gefundenen Pfad fest which nodejs:

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

Später bearbeiten

Ich habe diese Erklärung in dem von Ihnen geposteten Link gefunden

Es gibt einen 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 symbolisch verlinken oder das Amateur Packet Radio Node Program deinstallieren, um diesen Konflikt zu vermeiden.

Später später bearbeiten

Es ist schon eine Weile her, dass ich darauf geantwortet habe. Obwohl die Lösung, die ich hier gepostet habe, mehrere Male für mich funktioniert hat, haben Benutzer einige weitere Lösungen in den Kommentaren gemeldet:

Von @user229115

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

Von AskUbuntu (Benutzer leftium)

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

  • Okay! Obwohl, wenn ich benutze zshdann ist die node Befehl funktioniert.

    – Jatin

    8. August 2013 um 16:04 Uhr

  • Wie deinstalliere ich außerdem das Amateur Packet Radio Node-Programm? Ich habe es versucht sudo apt-get remove node aber es sagt Package node is not installed, so not removed

    – Jatin

    8. August 2013 um 16:06 Uhr

  • Sie müssen es nicht deinstallieren, nach Ihren Kommentaren sieht dies nach einem Shell-Problem aus, nicht nach einem Knotenpaketproblem.

    – Randunel

    8. August 2013 um 16:14 Uhr

  • @randunels Antwort hat bei mir nicht funktioniert /usr/bin/env node würde nicht funktionieren. Die Lösung von @ BennyMcBenBen hat funktioniert

    – Francoisrv

    27. Mai 2014 um 14:36 ​​Uhr

  • @Tinos Antwort ist die richtige, siehe die nodejs-legacy Beschreibung des Pakets. Die von @BennyMcBenBen verlinkte Antwort wurde ebenfalls mit ähnlichen Anweisungen aktualisiert.

    – Trikasse

    15. Dezember 2015 um 17:29 Uhr

Ich denke das ist es:

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

Verwendung von Debian-Alternativen.

  • Dies scheint die bessere Option zu sein als die akzeptierte Antwort, da der Ordner /usr/bin/ nicht manuell geändert wird und die Infrastruktur für alternative Befehle verwendet wird

    – Dominik Fretz

    21. Februar 2014 um 10:34 Uhr


  • Ich habe es nicht ausprobiert, aber ich habe es mir angeschaut update-alternative Dokumente. Wenn es wirklich funktioniert, dann ist es eine bessere Lösung 🙂

    – Randunel

    4. März 2014 um 10:21 Uhr

  • können Sie genauer sagen, was das tut?

    – bkorso

    9. Juni 2014 um 23:05 Uhr

  • @DominikFretz meh. Das Endergebnis ist exakt dasselbe mit einem Debian-spezifischen Befehl im Vergleich zu einem POSIX-kompatiblen Befehl. (Das hättest du tun können update-alternatives --install /usr/local/bin/fribjazt node /usr/bin/nodejs 10.) Jedem das Seine, aber ich bevorzuge die Ebene ln.

    – kojiro

    15. Februar 2016 um 2:34 Uhr

  • Ich musste source ~/.bashrc damit dies wirksam wird

    – iNult

    12. April 2016 um 15:31 Uhr

1647257711 166 Nodejs vs Node auf Ubuntu 1204
Tino

Anscheinend 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: Faustregel:

Wenn Sie installiert haben nodejs aber die fehlen /usr/bin/node Binary, dann auch installieren nodejs-legacy. Dadurch wird nur der fehlende Softlink erstellt.

Laut meinen Tests haben Ubuntu 17.10 und höher bereits den Kompatibilitäts-Softlink /usr/bin/node an Ort und Stelle nach nodejs installiert ist, also nodejs-legacy fehlt in diesen Releases, da es nicht mehr benötigt wird.

  • es scheint, dass nodejs-legacy nicht mehr gepflegt wird. der neueste Build endet am 10.04.2013

    – Francoisrv

    26. Mai 2014 um 20:15 Uhr

  • nodejs-legacy braucht nicht viel Pflege. Es fügt nur einen ähnlichen Softlink hinzu sudo ln -s nodejs /usr/bin/nodezumindest am LTS 14.04

    – Tine

    10. Juni 2014 um 15:57 Uhr


  • Unter Ubuntu 14.04 installieren nodejs und nodejs-legacy dieselbe Version von Node (0.10.25). +1 an @Tino.

    – Mark E. Haase

    1. August 2014 um 19:19 Uhr

  • Funktioniert bei mir auch in Debian Jessie. Dies sollte die akzeptierte Antwort sein, da die Dinge so sein sollen. Nur Personen, die das Amateurfunkpaket verwenden, sollten dies nicht tun. Ich frage mich, warum sie das Radiopaket nicht umbenannt haben, wie sie es mit Chromium-BSU getan haben.

    – Jerome

    14. Oktober 2016 um 12:25 Uhr

  • Dies führt zu 2 Node-Instanzen auf Ihrem System und wird nicht mehr gepflegt … Empfehlen Sie stattdessen, auf nodejs zu verlinken.

    – PodTech.io

    14. Januar 2018 um 14:08 Uhr

Nodejs vs Node auf Ubuntu 1204
Dmytro Medvid

Ich habe das gleiche Problem in Ubuntu 14.04.

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

Ich habe dieses Problem auf folgende Weise behoben:

  1. Installieren Sie nodejs-legacy

    sudo apt-get install nodejs-legacy

Wenn ich danach “node” in die Befehlszeile eingebe, erhalte ich eine Fehlermeldung “/usr/sbin/node: No such file or directory”

  1. Zweitens, was ich getan habe, ist ein symbolischer Link auf “nodejs”:

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

Nodejs vs Node auf Ubuntu 1204
Rotareti

Knotenversionsmanager (nvm)

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

Es ist ganz einfach:

Installieren Sie eine nodejs-Version:

$ nvm install 4.4

Jetzt haben Sie zusätzlich zu der bereits installierten Version noch nodejs 4.4 und können die node Befehl, um die neu installierte Version zu erreichen:

$ node -v    // The new version added by nvm.
v4.4.5
$ nodejs -v  // The OS version is untouched and still available.
v0.10.25

Sie können weitere nodejs-Versionen installieren und einfach zwischen ihnen wechseln:

$ nvm install 6.2
$ nvm use 6.2
Now using node v6.2.1 (npm v3.9.3)
$ node -v
v6.2.1
$ nvm use 4.4
Now using node v4.4.5 (npm v2.15.5)

1647257712 759 Nodejs vs Node auf Ubuntu 1204
CHsurfer

Das ist mir auch passiert.

node -v => 0.10.2
nodejs -v => 5.5.0

Das Problem war, dass ich vor einiger Zeit den Knoten aus der Quelle installiert hatte. Laufen

which node

immer auf diese lokale Installation verwiesen. Ebenfalls,

echo NODE_PATH

wies auf die lokale Installation hin.

Das Löschen des Verzeichnisses mit der Quellinstallation hat nicht geholfen. Es hat gerade den Knotenbefehl gebrochen. Am Ende hat es gereicht, die Umgebungsvariable NODE_PATH zurückzusetzen und zu bereinigen und dann nodejs neu zu installieren.

unset NODE_PATH
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

Danach,

node -v => 5.5.0

und npm install begann für Pakete zu arbeiten, die von Node => 5.0 abhängen.

1647257712 424 Nodejs vs Node auf Ubuntu 1204
Phil

Ich bin neu in all dem, aber für mich hat ein einfacher Alias ​​funktioniert:

alias node="env NODE_NO_READLINE=1 rlwrap nodejs"

zumindest um Dinge direkt in Bash auszuführen und .js-Dateien auszuführen.

  • Ohne gearbeitet rlwrap. Danke!

    – Schurik

    6. Januar 2017 um 15:18 Uhr

  • Danke @Phill, du bist großartig!

    – Yusril Herlian Syah

    27. Oktober 2017 um 16:48 Uhr

1001330cookie-checkNodejs vs. Node auf Ubuntu 12.04

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy