it-swarm.com.de

NodeJs kann nicht installiert werden:/usr/bin/env: node: Keine solche Datei oder Verzeichnis

Ich versuche, nodeJs in Ubuntu 14.04 zu installieren, um GruntJs verwenden zu können.

Ich habe über Ubuntu auf andere Weise gelesen , es zu tun ( Probleme? ), also habe ich es gemacht, um es zu installieren:

Sudo apt-get install npm

Sudo npm install -g grunt-cli

Nach dem Schreiben habe ich den Fehler erhalten:

/usr/bin/env: node: No such file or directory

Also habe ich versucht:

curl -sL https://deb.nodesource.com/setup | Sudo bash -

Sudo apt-get install -y nodejs

Sudo apt-get update

Und nochmal versuchen, und immer noch den Fehler bekommen, habe ich versucht:

Sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/

Sudo apt-get install -y nodejs

Ich habe diese Nachricht erhalten:

nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.

Ich habe eine Bereinigung versucht, nur für den Fall:

Sudo apt-get autoremove

Aber nein, der Fehler ist immer noch da: wenn ich grunt tippe, bekomme ich noch /usr/bin/env: node: No such file or directory

Was soll ich machen?

280
Rosamunda

Antwort gefunden Nur wenn es jemandem hilft, poste ich es hier:

Durch einen Symlink wird das Problem gelöst: ln -s /usr/bin/nodejs /usr/bin/node (Mein Dank und +1 Stimme an bodokaiser ).

HINWEIS: Ich denke, dass dieser Beitrag kein genaues Duplikat ist, da dieser Beitrag eine Browser-Frage war.

771
Rosamunda

Das Problem betrifft nicht die Version des Knotens. Stattdessen wird NodeJS standardmäßig in Ubuntu installiert. Wenn Sie eine Node-Anwendung in Ubuntu ausführen, müssen Sie nodejs somethign.js anstelle von node something.js ausführen.

Der im Terminal aufgerufene Anwendungsname lautet also nodejs und nicht node. Aus diesem Grund ist es notwendig, dass ein Symlink alle als node erhaltenen Befehle an nodejs weiterleitet.

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

Ich denke, Sie sollten die neueste Knotenversion aktualisieren

Sudo npm cache clean -f
Sudo npm install -g n
Sudo n stable
45
vanlan228

wenn Sie mit dem Befehl nodejs auf einen Knoten im Ubuntu-Terminal zugreifen können, können Sie dieses Problem ganz einfach mit - lösen, indem Sie mit

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

und dies kann das Problem lösen

28
Hiro

In meinem Fall löste das Installieren von nodejs-legacy das Problem.

Sudo apt-get install nodejs-legacy
24
Suleyman Arslan

Mach einfach

$ Sudo apt-get install nodejs-legacy

Und es wird anfangen zu arbeiten.

10

Ich habe festgestellt, dass dies häufig ein falscher Name ist. Wenn Sie von einem Paket-Manager aus installieren, werden Sie möglicherweise als nodejs bezeichnet 

ln -s /usr/bin/nodejs /usr/bin/node
9
Ahmad Awais

Wenn Sie bereits nodejs installiert haben (prüfen Sie mit which nodejs) und Sie kein anderes Paket installieren möchten, können Sie als root

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
7
Tom Hale

Als ich Schluck benutzte, bekam ich diesen Fehler.

~$ gulp

/ usr/bin/env: 'node': Keine solche Datei oder Verzeichnis

Dies wurde durch Ausführen des folgenden Befehls entfernt, den Sie berücksichtigen müssen, dass das Verzeichnis/usr/bin alle Berechtigungen hat.

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

das funktioniert für mich ..

6
Naveen Gupta

Dafür gibt es zwei Lösungen:

a) Setzen Sie Ihre PATH-Variable auf "/ usr/local/bin".

export PATH="$PATH:/usr/local/bin"

b) Erstellen Sie einen Symlink zu "/ usr/bin", der sich bereits in Ihrem PFAD befindet

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

Ich hoffe, es hilft.

4
Pavel

Während ln -s die offensichtlich einfachste Lösung ist, eine Erklärung:

Aufgrund eines Konflikts mit einem anderen Paket wird die ausführbare Datei aus der Ubuntu-Repositories werden Knoten als Knoten bezeichnet. Behalten Sie dies in Denken Sie daran, wie Sie Software ausführen.

Dieser Hinweis wird bei der Installation von Sudo apt-get install nodejs angezeigt.

Ein anderes bekanntes Tool (ich weiß nicht, was es tut. Obwohl es in Ubuntu-Repositorys bekannt ist, wird es in 16.04 nicht standardmäßig installiert), belegt diesen Namespace.

Wäre schön gewesen, wenn Ubuntu einen Rat gegeben hätte, wie man dies "sauber" beheben könnte, wenn nicht per Hand tun, was das Paket sonst tun würde. (eine Kollision bleibt eine Kollision ... wenn + wann würde sie auftreten)

4
Frank Nocke
Sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
2
KARTHIKEYAN.A

Befolgen Sie diese Befehle, um das Problem zu beheben.

schritt 1. Öffnen Sie das Terminal und geben Sie Folgendes ein:

Sudo npm cache clean -f

Dieser Befehl bereinigt den gesamten NPM-Cache

dann Passwort eingeben

schritt 2.

Sudo npm install -g n

schritt 3.

Sudo n stable 

Mit diesem Befehl können Sie die neueste stabile Version des Knotens installieren.

Jetzt wird die neueste Version von node installiert. Sie können die Version überprüfen, indem Sie:

node -v
2
Anandhu Raj

Je nachdem, wie Sie Ihren Knoten installiert haben, befindet sich die meiste Zeit möglicherweise nicht in/usr/bin /. In meinem eigenen Fall habe ich nvm zum Installieren verwendet, sodass sich mein Knoten in ./nvm/versions befand.

Mit diesem Befehl which node habe ich den Pfad herausgefunden, aber um die Arbeit zu erleichtern, können Sie diesen Befehl ausführen.

nodepath=$(which node); Sudo ln -s $nodepath /usr/bin/node

der obige Befehl erhält den Ort Ihres Knotens und erstellt einen Link für Sie.

1
akisoft

Für meinen Fall Link DidNICHTArbeit wie folgt

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

Sie können jedoch/usr/local/bin/lessc als root öffnen und die erste Zeile von node zu nodejs ändern.

- #!/usr/bin/env-Knoten

+ #!/usr/bin/env nodejs

1
Tanvir Ahmad

Benennen Sie einfach den Befehl oder Dateinamen ln -s /usr/bin/nodejs /usr/bin/node mit diesem Befehl um

Für mich funktionierte die akzeptierte Antwort noch nicht. Ich begann wie hier vorgeschlagen:

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

Nachdem ich das getan hatte, erhielt ich die folgende Fehlermeldung: 

/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 let notifier = required ('update-notifier') ({pkg}) ^^^

SyntaxError: Deklarationen im Blockbereich (let, const, function, class) außerhalb des strikten Modus noch nicht unterstützt bei exports.runInThisContext (vm.js: 53: 16) at Module._compile (module.js: 374: 25) at Object.Module._extensions..js (module.js: 417: 10) bei Module.load (module.js: 344: 32) at Function.Module._load (module.js: 301: 12) bei Function.Module.runMain (module.js: 442: 10) beim Start (node.js: 136: 18) at node.js: 966: 3

Die Lösung bestand darin, die neueste Version des Knotens von https://nodejs.org/de/download/ herunterzuladen.

Dann tat ich:

Sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1

Nun war das Update endlich erfolgreich: npm -v wurde von 3.2.1 auf 6.4.1 geändert

0
Blackbam