当前位置: 首页 > 知识库问答 >
问题:

如何从WSL中删除Win10的路径

甄佐
2023-03-14

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

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

共有1个答案

江迪
2023-03-14

>

  • 对于低于17713的Windows构建:WSL使用WSL_DISTRIBUTION_FLAGS枚举来配置其行为以及Windows和Linux端之间的互操作性。下面是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使用默认标志=0x7(即0+1+2+4)。如果该标志=0x5(即0+1+4),Windows NT路径将不会追加到$path环境变量中。那么,如何找到标志注册表值呢?在注册表编辑器AKA中打开hkcu\software\microsoft\windows\currentversion\lxss注册表路径。regedit.exe。使用UID值打开每个子键,并将distributionname与已安装的分发名称匹配。然后编辑/将标志DWORD注册表值添加0x5

    对于高于17713的Windows构建:在新的构建中,WSL使用WSL.conf文件配置其行为以及Windows和Linux端之间的互操作性。该wsl.conf文件遵循INI文件格式。运行wsl.exebash.exe。创建文件/etc/wsl.conf。然后用Linux中的任何文本编辑器添加下面的interop部分。

      [interop]
      enabled=false # enable launch of Windows binaries; default is true
      appendWindowsPath=false # append Windows path to $PATH variable; default is true
    

    正如AndrewBourgeois所提到的,您可能需要使用wsl--shutdownwsl-t 关闭wsl的当前实例,以使更改生效。

  •  类似资料:
    • 问题内容: 我如何消除在代码点火器中位于中心某处的每个路径中的突出?我要清洁非吗? 问题答案: 如果您使用的是Apache,请将.htaccess文件放在根Web目录中,其中包含以下内容:

    • 假设我的下一个XML来自Oracle队列到驼峰路径: 我想在我的路线中处理这个交换主体,并删除一些元素,例如,然后继续处理主体: 最简单的方法是什么?当然,可以通过声明一些bean或Camel处理器来完成,该处理器将主体作为XML封送/解封送并返回。 但是我想知道骆驼是否有另一种方法?

    • 问题内容: 在每行末尾添加\ n,结束程序正常工作,仅在最后一行工作… 请举个例子,我在任何解决方案中都尝试不了什么,而我发现这里不适合我。 问题答案: 您可以分割最后一个字符: 也许更好的方法是使用字符串库:

    • 问题内容: 如何从静态页面的网址中删除? 另外,我需要将任何网址重定向到没有该网址的网址。(即到)。 问题答案: 感谢您的答复。我已经解决了我的问题。假设我的页面在下,则适用以下.htaccess 规则。

    • 问题内容: 这是一种提交方法: 有可能做下面的事情吗? 我如何从中删除或修改值 问题答案: 除了将项目追加到FormData对象之外,您不能执行任何其他操作。参见规格。如果在实际构造对象之前使用词典/对象存储要添加/修改的所有值,那会更好。

    • 我有一个包含一些文件路径的长文本。 我想做的是从其中删除路径。文件路径都类似于: 我知道使用“^/all”将选择以/all开头的句子,并选择以.js$结尾的句子。但我无法将这些合并在一起以选择整个文件路径。 毕竟,正则表达式应该放在下面的代码上以删除路径。 我能为它写正则表达式吗?有什么工具吗?