标签: windows-subsystem-for-linux

如何在 WSL2 中以 sudo 模式运行 VScode?

我正在为 Linux 2 开发环境配置新的 Windows 子系统。我已经在 Ubuntu 18.04 的 Windows 和 WSL2 发行版中安装了 VSCode。当我以普通用户身份登录时,我可以在 Ubuntu 中正常打开 VSCode(通过 Windows 终端访问),使用如下命令:

simp1e@ZhuXian:/mnt/c/WINDOWS/system32$ code . 
Run Code Online (Sandbox Code Playgroud)

但是当我在前面添加sudo命令时,出现如下错误:

simp1e@ZhuXian:/mnt/c/WINDOWS/system32$ sudo code .
sudo: code: command not found                                                                                                                                                           
Run Code Online (Sandbox Code Playgroud)

起初,我切换到root用户后问题仍然存在。后来发现root用户的PATH里没有VSCode。所以我将 VSCode 路径添加到 /etc/environment。之后root用户就可以正常打开VSCode了,但是sudo code .还是有问题。我该怎么办?这仍然与PATH有关吗?

ubuntu sudo visual-studio-code windows-subsystem-for-linux windows-terminal

14
推荐指数
1
解决办法
7232
查看次数

如何让 Oracle vm VirtualBox 6.0 和 wsl 同时工作

当我打开或关闭 Windows 功能中的 Windows Subsystem for Linux 选项时

每次运行虚拟机时,VirtualBox 都会出错

调用 WHvSetupPartition 失败:ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED)。结果代码:E_FAIL (0x80004005) 组件:ConsoleWrap 接口:IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

有没有办法在不关闭 wsl 的情况下修复 VirtualBox 错误

windows virtualbox virtual-machine windows-subsystem-for-linux

14
推荐指数
2
解决办法
1万
查看次数

使用 WSL 2 的 VS Code 中的 Jupyter Notebook 无法正常工作

我想在 WSL 2 中运行的 VS Code 中使用 Jupyter Notebook。常规 Python 在 WSL 中工作没有问题,这意味着基本 conda 环境已连接,我可以运行 .py 文件。此外,I\xe2\x80\x99m 能够运行该命令,jupyter notebook该命令将在 WSL 中启动笔记本服务器,从而将本地主机暴露给 Windows 系统。

\n\n

但是,我想在 VS Code 中测试新的 Jupyter Notebook 功能,这对我来说不起作用;VS Code 显示:Jupyter Server: No KernelPython: Not Started(参见下面的屏幕截图)。

\n\n

我的测试机是:

\n\n
    \n
  • Windows 20H1 上的 WSL 2(使用 Pengwin 发行版)(19041.21)
  • \n
  • VS Code 1.41(安装了 Python 扩展)
  • \n
  • 蟒蛇
  • \n
\n\n

我做了什么:

\n\n
    \n
  1. 打开 WSL
  2. \n
  3. 在我的目标目录中打开 VS Code ( code .)
  4. \n
  5. 从命令面板创建一个新的 …

python visual-studio-code jupyter-notebook windows-subsystem-for-linux pengwin

14
推荐指数
2
解决办法
2万
查看次数

在 WSL@Windows 10 上使用 Cv 无法在 Vim 中使用可视块模式

我在新的 Windows 终端中使用 WSL Ubuntu 和 Vim,但是如果我必须使用 Cv进入视觉块模式,我不能,因为它充当粘贴。

我可以将它重新绑定到其他东西,但我没有找到我必须添加的命令.vimrc,我认为它与inoremap 有关

有什么建议吗?

vim copy-paste windows-subsystem-for-linux windows-terminal

14
推荐指数
3
解决办法
3962
查看次数

在 WSL 中安装 MongoDB

看到文档后,我试图在运行 Ubuntu 18.04 的 WSL 中安装 MongoDB 。但是 MongoDB 说:

重要事项Ubuntu 提供
mongodb包不是由 MongoDB Inc. 维护的,与官方mongodb-org包冲突。如果你已经在你的 Ubuntu 系统上安装了 mongodb 包,你必须先卸载 mongodb 包,然后才能继续这些说明。

MongoDB 还说 WSL 不支持 mongodb-org

适用于 LINUX 的 WINDOWS 子系统 (WSL) - 不受支持
MongoDB 不支持适用于 Linux 的 Windows 子系统 (WSL)。

所以,我安装mongod使用sudo apt install mongodb,当我运行mongo它显示错误:

connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2020-06-21T13:33:40.606+0530 E  QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017
Run Code Online (Sandbox Code Playgroud)

有没有办法安装适当的软件包并使其运行?

mongodb windows-subsystem-for-linux

14
推荐指数
4
解决办法
2万
查看次数

Is this the correct way to Import a WSL export, overwriting "default" installation?

I have created a WSL (version 1) Ubuntu 20.04 distro which I have exported, as a backup. I have made some changes to the original distro and want to revert back to export.

The original distro install is called: Ubuntu-20.04

wsl --list
Run Code Online (Sandbox Code Playgroud)

Output:

Windows Subsystem for Linux Distributions:
Ubuntu-20.04 (Default)
Run Code Online (Sandbox Code Playgroud)

The installation folder for Ubuntu is the default folder from installation:

C:\Users\<my user name>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_xxxxx
Run Code Online (Sandbox Code Playgroud)

(I've changed the user name and UID)

I've looked at the import and export options and …

windows-subsystem-for-linux

14
推荐指数
1
解决办法
2万
查看次数

如何在 WSL2 上的 Ubuntu 20.04 中提高打开文件的限制?

我的设置如下所示:Windows 10, Release 1909 (Build 18363.1082),在 Ubuntu 20.04 环境中使用 WSL2。大多数时候一切都很好,但有些问题我无法解决。

在使用parcel(React bundler) 进行开发期间,我遇到了 bundler 显然同时打开大量文件的问题,并且在某个时候,我遇到了以下问题:

EMFILE: too many open files, open '/home/myusername/Projects/some-project-path/node_modules/@material-ui/icons/esm/RoundedCornerRounded.js'
Run Code Online (Sandbox Code Playgroud)

由于parcel看似不容易支持使用类似的东西graceful-fs,我试图增加在 Ubuntu 环境中打开文件的限制。到目前为止我尝试过的:

  • 一个简单的ulimit -n 4096(默认情况下是最高的),但显然(到目前为止?)还不够
  • 我尝试增加到fs.files-max非常高的值/etc/sysctl.conf,但它似乎没有效果(无论sysctl -p是在 重启之后还是重启之后wsl
  • 我也尝试增加fs.inotify.max_user_watches,但这似乎也没有效果
  • 还设置软硬限制/etc/security/limits.conf似乎没有效果
  • 我还发现,信息变更DefaultLimitNOFILE/etc/systemd/system.conf可以有效果(所以我这样做,以及)

有没有人设法在 WSL2 上的 Ubuntu 20.04 上解决类似的系统?这让我很困惑,它阻止我parcel在这个环境中使用。这真的很遗憾,因为其他一切都运行良好。


更新

所以我发现我在不同地方(可能是/etc/security/limits.conf)的变化产生了某种影响。只是在直接登录时不会。这说明了这一点:

donmartin@SOMEMACHINE:~$ ulimit -Hn
4096
donmartin@SOMEMACHINE:~$ su donmartin
Password: …
Run Code Online (Sandbox Code Playgroud)

ulimit windows-subsystem-for-linux parceljs wsl-2

14
推荐指数
1
解决办法
4954
查看次数

在 Ubuntu WSL 中,如何存储永久环境变量?

我已经尝试过,但每次重新启动系统时,我的变量都会消失。

如何在 Ubuntu WSL2 上永久存储环境变量?

ubuntu environment-variables windows-subsystem-for-linux wsl-2

14
推荐指数
3
解决办法
3万
查看次数

如何使用 Visual Studio 和 WSL 2 调试 .NET Core 单元测试?

借助 Visual Studio,我可以调试在 Windows 和 WSL 2 中运行的 .NET Core 应用程序。对于 WSL 2,我使用此扩展。这工作正常。我还可以在 Windows 中调试我的单元测试。这也工作得很好。但是,我不知道如何使用在 WSL 2 中运行的 Visual Studio 来调试我的单元测试。我希望有人可以帮助我并解释我如何不仅可以调试 WSL 2 中的控制台应用程序和 Web 应用程序,还可以调试我的单元测试。请告诉我。

visual-studio .net-core windows-subsystem-for-linux .net-5 wsl-2

14
推荐指数
2
解决办法
3885
查看次数

从 WSL 会话内部关闭或重新启动 WSL 会话

我希望能够重新启动 WSL 会话。这样做有点尴尬,因为 WSL 不使用 systemd,因此我们无法使用reboot. 在 WSL 会话中,我们可以运行任何 Windows 可执行文件:

boss@Asus: ~ $ wsl.exe -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2
  fedoraremix     Stopped         1
  Alpine          Stopped         1
  Ubuntu          Stopped         1
Run Code Online (Sandbox Code Playgroud)

因此,我们可以使用wsl.exe(你必须确保.exe在调用Windows命令时始终添加,否则它们将不起作用)来关闭当前正在运行的WSL会话wsl.exe -t Ubuntu-20.03,但问题是我不知道会话名称。

当我们在 WSL 会话中时,hostname情况有所不同,因此我不知道如何查找我所在的当前正在运行的会话的名称(也许是一个 Windows 进程命令,它告诉我正在运行哪个进程? )。

理想情况下,我希望命令等同于重新启动。我想这看起来应该是这样的:

  • 运行一个异步命令,该命令将在未来 5-10 秒内启动一个新会话,以允许前一个会话完全关闭(并且该会话终止时不会终止)。
  • 使用 终止当前正在运行的会话wsl.exe -t <my found name>
  • 几秒钟后,新会话将启动。

bash powershell windows-subsystem-for-linux

14
推荐指数
1
解决办法
2万
查看次数