Der NodeJS-Interpreter name ( node
) unter Ubuntu wurde nodejs
aufgrund 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 node
in/usr/bin
. Es ist allerdings eine Art Hack.