wsl安装的软件包优先于Windows

时间:2019-08-05 10:29:54

标签: windows windows-subsystem-for-linux

我的Windows 10中已经安装了一些软件/工具,包括。 Node.js,Git等。我正在WSL中设置我的开发环境。

即使在Windows中安装了相同的软件包,我也应该在WSL下再次安装它们吗?我需要在Windows下安装这些工具,才能使用其他工具,例如Eclipse IDE。使用互操作的优点和缺点是什么?如果我在两者上都具有相同的软件,则哪个安装优先于哪个安装?目前,我都安装了Node,并且从WSL获得了nodenode.exe

我想避免可能发生的问题,例如通过在每个系统上使用略有不同的软件版本(例如Git),并维护单独的配置。因此,我认为Windows与WSL之间的无缝集成可能更好,但是另一方面,我希望通过安装所有依赖项来使WSL是“独立的”(如果有任何价值的话)。

1 个答案:

答案 0 :(得分:0)

使用情况视情况而定。例如git,如果代码位于C:驱动器中,则最好使用Windows版本,因为Windows版本负责换行。您可以创建别名:alias git=git.exe

Node为例,最好使用Linux版本并隐藏Windows版本。在WSL中,Windows程序优先。例如,如果您在Windows和WSL中具有Node.js,则Windows优先。最安全的方法是在启动WSL时从路径中删除Windows。

例如,要在WSL中隐藏npm的Windows版本,请将其放在您的〜/ .bashrc中:

WIN_NPM_PATH="\$(dirname "\$(which npm)")"
WIN_C_PATH="\$(wslpath 'C:\')"
if [[ "\${WIN_NPM_PATH}" == "\${WIN_C_PATH}"* ]]; then
  PATH=\$(echo "\${PATH}" | sed -e "s#\${WIN_NPM_PATH}##")
fi

此代码摘自Pengwin项目:https://github.com/WhitewaterFoundry/pengwin-setup/blob/91e471be48736fe3f7aa92154e868b191e951b4e/pengwin-setup.d/nodejs.sh#L35

希望有帮助