簡體   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