He instalado Ubuntu usando WSL2.
Ahora en el directorio de trabajo \\wsl$\Ubuntu\home\ponomarchukov\nodejs
intento instalar paquetes npm:
npm install express
Entonces, aparece este error:
-bash: /mnt/c/Program Files/nodejs/npm: /bin/sh^M: bad interpreter: No such file or directory
¿Cómo solucionar este problema?
Respuesta1
El npm
script de shell que está utilizando tiene un retorno de carro (Ctrl-M, ASCII 13) al final. En sistemas Unix, especificar un retorno de carro en un script de shell es un error; sus líneas deben terminar solo con saltos de línea. Incluso si estás usando la versión bash que viene con Git para Windows, este también es el caso.
Deberías averiguar de dónde obtienes tu npm
script de shell y arreglarlo para que no contenga retornos de carro. Es posible que desees hacer esto con un programa como dos2unix
. Si estás viendo esto porque lo comprobaste con Git, lee la gitattributes
página del manual para ver más sobre cómo configurar ciertos archivos para que siempre tengan finales de línea Unix ( eol=lf
).
Respuesta2
¿Realmente ha iniciado WSL en la terminal que está utilizando? Además, ¿has instalado node/npm en Ubuntu? Parece que está usando npm desde la instalación de Windows. Puedo recomendarnvm, que tiene un script de instalación simple: este es un administrador de descargas para node y permite una fácil instalación/actualización de node/npm en Linux.