Ich habe Ubuntu mit WSL2 installiert.
\\wsl$\Ubuntu\home\ponomarchukov\nodejs
Jetzt versuche ich im Arbeitsverzeichnis, npm-Pakete zu installieren:
npm install express
Ich erhalte also diese Fehlermeldung:
-bash: /mnt/c/Program Files/nodejs/npm: /bin/sh^M: bad interpreter: No such file or directory
Wie kann dieses Problem gelöst werden?
Antwort1
Das npm
von Ihnen verwendete Shell-Skript hat am Ende einen Wagenrücklauf (Strg-M, ASCII 13). Auf Unix-Systemen ist die Angabe eines Wagenrücklaufs in einem Shell-Skript ein Fehler; Ihre Zeilen dürfen nur mit Zeilenvorschüben enden. Dies ist auch der Fall, wenn Sie die Bash-Version verwenden, die mit Git für Windows geliefert wird.
Sie sollten herausfinden, woher Sie Ihr npm
Shell-Skript beziehen, und es so korrigieren, dass es keine Zeilenumbrüche enthält. Sie können dies mit einem Programm wie tun dos2unix
. Wenn Sie dies sehen, weil Sie es mit Git ausgecheckt haben, lesen Sie die gitattributes
Handbuchseite, um mehr darüber zu erfahren, wie Sie bestimmte Dateien so einstellen, dass sie immer Unix-Zeilenenden haben ( eol=lf
).
Antwort2
Hast du WSL tatsächlich in dem Terminal gestartet, das du verwendest? Hast du außerdem node/npm in Ubuntu installiert? Sieht so aus, als würde es npm aus der Windows-Installation verwenden. Ich kann empfehlenkeine Ahnung, das über ein einfaches Installationsskript verfügt – dies ist ein Download-Manager für Node und ermöglicht eine einfache Installation/Aktualisierung von Node/NPM unter Linux.