我正在为 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
当我打开或关闭 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
我想在 WSL 2 中运行的 VS Code 中使用 Jupyter Notebook。常规 Python 在 WSL 中工作没有问题,这意味着基本 conda 环境已连接,我可以运行 .py 文件。此外,I\xe2\x80\x99m 能够运行该命令,jupyter notebook该命令将在 WSL 中启动笔记本服务器,从而将本地主机暴露给 Windows 系统。
但是,我想在 VS Code 中测试新的 Jupyter Notebook 功能,这对我来说不起作用;VS Code 显示:Jupyter Server: No Kernel和Python: Not Started(参见下面的屏幕截图)。
我的测试机是:
\n\n我做了什么:
\n\ncode .)python visual-studio-code jupyter-notebook windows-subsystem-for-linux pengwin
我在新的 Windows 终端中使用 WSL Ubuntu 和 Vim,但是如果我必须使用 Cv进入视觉块模式,我不能,因为它充当粘贴。
我可以将它重新绑定到其他东西,但我没有找到我必须添加的命令.vimrc,我认为它与inoremap 有关。
有什么建议吗?
看到此文档后,我试图在运行 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)
有没有办法安装适当的软件包并使其运行?
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 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) 我已经尝试过,但每次重新启动系统时,我的变量都会消失。
如何在 Ubuntu WSL2 上永久存储环境变量?
ubuntu environment-variables windows-subsystem-for-linux wsl-2
借助 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
我希望能够重新启动 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 进程命令,它告诉我正在运行哪个进程? )。
理想情况下,我希望命令等同于重新启动。我想这看起来应该是这样的:
wsl.exe -t <my found name>。windows-subsystem-for-linux ×10
wsl-2 ×3
ubuntu ×2
.net-5 ×1
.net-core ×1
bash ×1
copy-paste ×1
mongodb ×1
parceljs ×1
pengwin ×1
powershell ×1
python ×1
sudo ×1
ulimit ×1
vim ×1
virtualbox ×1
windows ×1