在 WSL Ubuntu 20.04 上安装 npm 后,我收到消息“/usr/bin/env: 'bash\r': No such file or directory”

Zym*_*tik 4 windows ubuntu node.js npm windows-subsystem-for-linux

从终端运行npm installornpm命令时,我看到以下消息。执行node工作按预期进行。

    > npm install
    /usr/bin/env: ‘bash\r’: No such file or directory
Run Code Online (Sandbox Code Playgroud)

fsa*_*ter 13

我遇到了同样的问题,安装完nodejs和npm后,只需重新启动我的wsl即可wsl --shutdown解决问题,你可以尝试这个。


Zym*_*tik 6

这是一个行尾问题,但不是来自 Ubuntu。使用以下命令确保您确实拥有nodenpm正确安装:

sudo apt install nodejs npm

然后通过/etc/wsl.conf在 WSL 中编辑文件来停止与 WSL 共享的 Windows 路径变量。如果文件不存在,sudo touch /etc/wsl.conf请先执行。使用命令编辑文件sudo nano /etc/wsl.conf并添加以下配置:

[interop]
appendWindowsPath = false
Run Code Online (Sandbox Code Playgroud)

然后wsl --shutdown在 Windows 中使用命令重新启动 WSL2 。

注意:这也会影响pyenv命令,请参阅/usr/bin/env: 'bash\r': No such file or directory: Incompatible line-endings (WSL?)

  • @shadoweb 它将停止将 Windows 路径附加到 WSL 路径。如果您依赖 WSL 中可用的 Windows 路径,则该路径将不再可用。我想不出这会导致问题的任何情况,也许堆栈溢出社区可以提供帮助? (3认同)
  • 感谢 @zymotik 解释了这个问题,我想知道我的 WSL 如何获取所有这些 Windows 目录。我在安装新版本的 nodejs 后遇到了同样的问题。我不想禁用编写代码的能力。所以我只是通过将此行添加到我的 ~/.bashrc PATH=$(echo "$PATH" | sed -e 's%:/mnt/c/Program Files/nodejs%%') 来删除 Windows NodeJS 路径 (3认同)

小智 6

我也遇到了这个问题,在相同的发行版和版本上运行。在阅读了每个人的评论后,我认为首先尝试的最简单的解决方案是“将其关闭然后再次打开”,并且它起作用了!我在 Windows(不是 ubuntu)终端中运行了这个。

wsl --shutdown
Run Code Online (Sandbox Code Playgroud)