Der NodeJS-Interpreter name ( node) unter Ubuntu wurde nodejsaufgrund eines Namenskonflikts mit einem anderen Paket in umbenannt. Hier ist was die Readme. Debian sagt:
Der Upstream-Name für den Interpreter-Befehl Node.js lautet "node". In Debian wurde der Interpreter-Befehl in "nodejs" geändert.
Dies wurde durchgeführt, um eine Namespace-Kollision zu verhindern: Andere Befehle verwenden denselben Namen in ihrem Upstream, z. B. ax25-node aus dem "node" -Paket.
Skripte, die Node.js als Shell-Befehl aufrufen, müssen geändert werden, um stattdessen den Befehl "nodejs" zu verwenden.
Die Verwendung von nodejs macht es jedoch schwierig, Pakete mit zu installieren npm. Die Paketinstallation schlägt mit folgendem Fehler fehl:
sh: 1: node: not found npm WARN This failure might be due to the use of legacy binary "node" npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian
Wie kann ich npm verständlich machen, dass nodejs bereits auf dem System installiert ist, der Name des Interpreters jedoch unterschiedlich ist?
ln -s nodejs nodein/usr/bin. Es ist allerdings eine Art Hack.