不是标题党,真的是在某个官方问题解决网站上微软专家建议别用。。
写在起那面
经常在windows环境下开发的同学,难免会遇到要linux开发环境的时候,这时候最容易想到的就是装个虚拟机。确实,搞个虚拟机省时省力,我的建议是别用这windows子系统,难用的一匹。
没办法,总有同学不听劝,比如我。主要是这wsl这个名字听起来就很帅啊喂,虚拟机,太low了(不是。其实我想用wsl最主要原因,就是启动的快,并且有的IDE可以直接访问到wsl的文件系统,简直不要太方便。
磕磕碰碰搞了小两天,碰到了许多坑终于可以顺畅使用了,气不过,决定把我踩到的坑记录一下,给后面的同学一些前车之鉴,可恶!
本文按照wsl官方安装文档流程安装:设置 WSL 开发环境 | Microsoft Docs
-
找不到windows终端
由于要复现我之前踩的那些坑,所以我把电脑整个重装系统了,就这良苦用心,还不值一个小小的👍吗?言归正传,安装wsl的第一步,就是在Windows终端或者powershell(管理员权限)中输入wsl --install即可自动安装。
很怪,windows11居然不自带windows terminal!?如果你是新电脑,或者像我一样吃饱了撑的重装了系统,那你尝试打开windows终端的时候就会出现这种情况:
这时候去windows商店下一个就好啦:
-
wsl和VMware不兼容问题
具体是由于wsl是基于windows自带的实现虚拟化的软件开发的,好巧不巧VMware和Hyper-v是互不兼容的,如果要用vmware跑虚拟机的话就得禁用Hyper-v,自然wsl就用不了了。
-
docker一直占用wsl,使得wsl在后台把内存跑满了
这个问题真的太蠢了,就是因为docker这个笨蛋强制退出的时候不会自动关闭wsl。并且,如果wsl不进行设置,系统会给wsl要多少给多少内存,直到你内存跑满,wsl在后台直接卡死,用wsl --shutdown也不起作用。
你可能会说,重启一下不就好了。很难过的是,wsl也会自动重启,然后还原你重启前的情况,也就是你内存跑满的情况。这个时候唯一的办法,就是把wsl禁用,就是关闭windows的子系统选项,重启一遍后再打开再重启一遍。
但每次用完都要这么整一下实在是太抱歉了。。这里给出一个解决办法,给wsl配置.wslconfig文件,限制wsl的内存使用等方面,以免电脑卡死:
在user目录(C:\Users\user_name)下,创建一个txt文件,内容如下:
[wsl2]
processros=3 #最大核数,一般设为电脑最大核数的一半
memory=8GB #最大内存,设为电脑最大内存的一半
swap=8GB #和memory设置为一样就行
localhostForwarding=true