525 Stimmen

Kann keine Pakete mit dem Node Package Manager in Ubuntu installieren

Der NodeJS-Interpreter-Name(node) auf Ubuntu wurde aufgrund eines Namenskonflikts mit einem anderen Paket in nodejs umbenannt. Hier ist, was in der Readme-Datei von Debian steht:

Der ursprüngliche Name für den Node.js-Interpreter-Befehl lautet "node". In Debian wurde der Interpreter-Befehl in "nodejs" geändert.

Dies wurde durchgeführt, um Kollisionen mit Namensräumen zu verhindern: Andere Befehle verwenden im Ursprung denselben Namen, wie z.B. ax25-node aus dem Paket "node".

Skripte, die Node.js als Shell-Befehl aufrufen, müssen stattdessen den Befehl "nodejs" verwenden.

Die Verwendung von nodejs führt jedoch dazu, dass bei der Installation von Paketen mit npm Fehler auftreten. Die Paketinstallation schlägt mit dem folgenden Fehler fehl:

sh: 1: node: not found
npm WARN Dieses Problem könnte auf die Verwendung des veralteten Binärformats "node" zurückzuführen sein
npm WARN Weitere Erklärungen finden Sie unter /usr/share/doc/nodejs/README.Debian

Wie kann ich npm dazu bringen zu verstehen, dass nodejs bereits auf dem System installiert ist, der Interpreter-Name jedoch anders ist?

5voto

frostcs Punkte 333

Ihr System kann das Pfad-Node.js-Binary nicht erkennen.

1. Welches Node

2. Dann verknüpfen Sie Node mit Node.js

ln -s [der Pfad von Node.js] /usr/bin/node 

Ich gehe davon aus, dass /usr/bin in Ihrem Ausführungspfad liegt. Dann können Sie testen, indem Sie Node oder npm in Ihre Befehlszeile eingeben, und jetzt sollte alles funktionieren.

4voto

Deinstalliere die aktuelle Node-Version

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

Installiere nvm (Node Version Manager) https://github.com/creationix/nvm

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

Jetzt kannst du jede gewünschte Node-Version installieren und zwischen den Versionen wechseln.

3voto

Ich habe es repariert, indem ich /usr/sbin/node (das mit dem ax25-node Paket verlinkt ist) entkoppelt habe, dann habe ich einen Link zu nodejs mit diesem Befehl in der Befehlszeile erstellt

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

Weil Pakete wie Karma nicht mit dem Namen nodejs funktionieren, habe ich jedoch die erste Zeile des Karma-Skripts von node auf nodejs geändert, aber ich ziehe es vor, dieses Problem einmal und für alle zu lösen

1voto

Jimmy Punkte 2125

Für mich war die Lösung, die Node*-Pakete und auch die npm-Pakete zu entfernen.

Dann eine Neuinstallation wie folgt:

sudo apt-get install autoclean
sudo apt-get install nodejs-legacy
npm install

1voto

Vinayk93 Punkte 353

Das Problem liegt nicht beim Installer
Ersetze nodejs durch node oder ändere den Pfad von /usr/bin/nodejs zu /usr/bin/node

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