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)
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:
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.
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
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
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:
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”
Zweitens, was ich getan habe, ist ein symbolischer Link auf “nodejs”:
sudo ln -s /usr/bin/nodejs /usr/sbin/node
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)
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.
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 Nichtbenutzungzsh
? (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