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?
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.
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
Ich denke, Sie sollten die neueste Knotenversion aktualisieren
Sudo npm cache clean -f
Sudo npm install -g n
Sudo n stable
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
In meinem Fall löste das Installieren von nodejs-legacy das Problem.
Sudo apt-get install nodejs-legacy
Mach einfach
$ Sudo apt-get install nodejs-legacy
Und es wird anfangen zu arbeiten.
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
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
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 ..
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.
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)
Sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
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
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.
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
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