gpt4 book ai didi

linux - 如何从 WSL 中删除 Win10 的 PATH

转载 作者:IT王子 更新时间:2023-10-29 00:09:48 29 4
gpt4 key购买 nike

我在 Win10 中使用 Windows 子系统 Linux(Ubuntu 18.04),并在其中安装了 Maven。另外,我之前在Win10里安装了一个maven。现在,当我在 WSL 中使用 mvn compile 时,它告诉我 maven 编译失败。我使用 which mvn 并发现它引用了安装在 Win10 中的 Maven。

此外,我运行env,发现Win10的Path被添加到WSL的Path中。我在使用WSL的时候不想使用Win10的Path中的任何东西,怎么办?

最佳答案

对于 Windows 版本 HIGHER than 17713 :

WSL 使用文件 /etc/wsl.conf 在每个 Linux VM 的文件系统中配置其行为。将以下配置设置 ( explained here ) 添加到 /etc/wsl.conf , 如有必要,创建该文件:

[interop]
appendWindowsPath = false

请注意 appendWindowsPath 必须[interop]下为此工作。您可能需要使用 wsl --shutdown 关闭当前的 WSL 实例。或 wsl -t <Distribution>以使更改生效。您还可以添加选项 enabled = false , 也在 [interop] 下部分,以禁用从 WSL 内部启动 Windows 二进制文件的能力。

对于低于 17713 的 Windows 版本:

WSL 使用 WSL_DISTRIBUTION_FLAGS Enumeration配置它的行为。这是来自 wslapi.h 的代码片段头文件。

/* Flags specifying WSL behavior */
typedef enum
{
WSL_DISTRIBUTION_FLAGS_NONE = 0x0,
WSL_DISTRIBUTION_FLAGS_ENABLE_INTEROP = 0x1,
WSL_DISTRIBUTION_FLAGS_APPEND_NT_PATH = 0x2,
WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING = 0x4
} WSL_DISTRIBUTION_FLAGS;

#define WSL_DISTRIBUTION_FLAGS_VALID (WSL_DISTRIBUTION_FLAGS_ENABLE_INTEROP | WSL_DISTRIBUTION_FLAGS_APPEND_NT_PATH | WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING)
#define WSL_DISTRIBUTION_FLAGS_DEFAULT (WSL_DISTRIBUTION_FLAGS_ENABLE_INTEROP | WSL_DISTRIBUTION_FLAGS_APPEND_NT_PATH | WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING)

首次启动时,WSL 使用默认的 flag = 0x7 (即 0+1+2+4)。如果那个flag = 0x5 (即 0+1+4),Windows NT 路径将不会附加到 $PATH 中环境变量。要查找该标志的注册表值,请打开 HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss在注册表编辑器中又名。 regedit.exe .使用 UID 值打开每个子项并匹配 DistributionName使用您安装的发行版名称。然后编辑/添加 Flags DWORD 注册表值到 0x5 .

关于linux - 如何从 WSL 中删除 Win10 的 PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51336147/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com