繁体   English   中英

如何在 Windows 上的 WSL2 中强制我的 Linux 发行版使用 Linux 版本的 nvm 而不是 Windows 版本?

[英]How do I force my Linux distro in WSL2 on Windows to use the Linux version of nvm and not the Windows version?

我安装了 Windows 的 nvm,当我通过 WSL2 登录我的 Pengwin Linux 发行版时执行whereis nvm ,它显示它正在使用 Windows 文件系统上的二进制文件安装在/mnt/c/Users/seefe/AppData/Roaming/nvm/nvm.exe 尽管还经历了 nvm 的 Linux 安装过程,我认为这会隐藏 Windows 版本。

gatsby-cli相同。 问题是在 Linux 土地上,运行 nvm 和 gatsby 是一件苦差事,因为跨文件系统的命令响应时间太慢了。 当在 Linux 中安装和使用专门针对 Linux 文件系统的包时,WSL 环境策略是什么来确保我通过 npm 安装的任何包?

很抱歉最初用这个答案把你引向了错误的方向。

在测试 WSL session(我自己通常使用n )中再次安装nvm后,我看到 Linux nvm安装为 bash function ,而不是二进制文件。 这意味着whereis nvm实际上并没有看到它,因为whereis只查找文件

> type nvm | head -1
nvm is a function

需要注意两点:

  • 在没有完全限定路径(绝对或相对)的情况下输入时,function 将优先于二进制。 所以只要type nvm返回 function,你应该没问题。

    你提到(在评论中)你的路径以/home/seefer/.nvm/versions/node/v14.18.0/bin开头的事实意味着Linux nvm工作正常并将正确激活目录添加到你的路径.

    如果您在使用nvm usenvm install命令后遇到nodenpm问题,请告诉我们。

  • 虽然whereis nvm找到/mnt/c/Users/seefe/AppData/Roaming/nvm/nvm.exe ,但您必须实际运行nvm.exe才能运行 Windows 版本。

不过,这里还有一件事需要注意,这与另一个答案有关。

npm上的 npm 很奇怪,因为它实际上确实附带了一个名为npmshell 脚本(即使它适用于 Windows),该脚本又调用 Windows npm.exe 如果您安装了 Windows Node/NPM(这听起来像您安装的),请注意始终使用 Linux nvm 激活Linux版本(以便将其添加到路径中)。

否则,您可能会遇到 Windows npm尝试在 WSL/Linux 下运行的问题。

小心这个。 只要您已使用 Linux 激活节点/npm 安装

暂无
暂无

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

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