繁体   English   中英

在 WSL2 中:安装了适用于 Windows 10 nodejs 的 Ubuntu 20.04,但 npm 不工作

[英]In WSL2: Ubuntu 20.04 for Windows 10 nodejs is installed but npm is not working

我在我的Windows 10操作系统中使用WSL2:Ubuntu 20.04 当我执行node -v命令时,我使用命令sudo apt-get install -y nodejs nodejs得到v12.18.3

mrd@DESKTOP-2EO5K4H:/mnt/c/Users/musfi$ node -v
v12.18.3

但是当我执行npm -v命令时,我得到以下命令

mrd@DESKTOP-2EO5K4H:/mnt/c/Users/musfi$ npm -v
-bash: /mnt/c/Program Files/nodejs/npm: /bin/sh^M: bad interpreter: No such file or directory

我也做whereis命令。 希望这将有助于找到解决方案。

mrd@DESKTOP-2EO5K4H:/mnt/c/Users/musfi$ whereis node
node: /usr/bin/node /usr/include/node /mnt/c/Program Files/nodejs/node.exe /usr/share/man/man1/node.1.gz

mrd@DESKTOP-2EO5K4H:/mnt/c/Users/musfi$ whereis npm
npm: /usr/bin/npm /mnt/c/Program Files/nodejs/npm /mnt/c/Program Files/nodejs/npm.cmd /usr/share/man/man1/npm.1

我已经尝试了几乎所有的 stackoverflow 解决方案和 github 问题,但对我没有任何帮助。
希望任何善良的灵魂都能解决这个问题。 提前致谢。

尝试这个

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sudo apt install npm

以下错误的解决方法: -bash: /mnt/c/Program Files/nodejs/npm: /bin/sh^M: bad interpreter: No such file or directory

编辑~/.bashrc在文件末尾追加:

# strip out problematic Windows %PATH%
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g')

现在npm init可以工作了。

更好的方法是在 Windows 用户目录中配置/etc/wsl.conf

将此添加到/etc/wsl.conf中,因此 Windows 路径不会优先

[interop]
appendWindowsPath=false

有关更多配置详细信息,请查看此处的 Microsoft 开发博客。

对于所有 Unix/Linux/MacOS 操作系统,我总是宁愿使用“节点版本管理器”。 它通常可以在 Linux 和 MacOS 上完美运行(并且还有一个 Windows 端口),并且可以通过一种非常简单的方式正确安装nodenpm而无需成为root

见这里: https ://github.com/nvm-sh/nvm

我可以在我的机器上确认它也适用于 WSL2 上的 Ubuntu 20.04。

要在 WSL 中安装nodejs ,请不要使用apt遵循 Microsoft 的指导:

如果您通过apt安装nodejs ,另请参阅如何删除它:

为了npmWSL1下工作:


WSL2 注释

注意:如果您使用 VPN,您的容器连接很可能会在 WSL2 下被破坏(例如,使用 Cisco AnyConnect ) - 修复有效,但 GWSL 将被破坏,因此 Xorg 应用程序无法正常工作。

我以为我的 WSL 容器在 WSL2 下运行(我使用wsl --update升级了 WSL 内核)——在使用 WSL 设置 Visual Studio 时,我看到了 WSL1 警告。 您还必须升级容器:

wsl --set-version ubuntu-22.04 2
wsl --set-default-version 2

要使 Visual Studio 集成在 WSL 中与 Ubuntu 22.04正常工作,您目前还必须升级gzip以在 WSL 中安装VS Code Server for x64code .:在 Linux 终端中):

wget http://ftp.debian.org/debian/pool/main/g/gzip/gzip_1.12-1_amd64.deb
sudo dpkg -i ./gzip_1.12-1_amd64.deb

最后我升级了npm并且一切正常(选择以下命令之一):

  • nvm install-latest-npm
  • npm install -g npm@latest

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM