最近在学 kratos,go 语言的一个微服务框架。kratos 的 cli 工具提供了很多便利,连 makefile 都帮你生成好了。那么问题来了,这个 makefile 是基于 Linux 命令写的,Windows 系统下由于缺少一些命令,powershell 和 cmd 下运行 make 会报很多错。虽然动过装双系统的想法,但是开销太大了,linux 系统的存储空间也不可能完全利用起来。

突然想到之前捣鼓了一段时间的 WSL2(Windows Subsystem for Linux 2),这不是有现成 Linux 环境嘛,而且也装了 docker,干脆就在 WSL2 里面搞一个远程开发环境呗。

打开 intellij idea (后简称 idea)的 welcome 界面,可以看到一个 Remote Development 选项(我的版本是 2021.3.3),点击里面的 ssh -> new connection,顺着引导一步步走,最终会在本地安装一个 jetbrains gateway 和 jetbrains client,在服务器(也就是 wsl2)里面安装一个 idea 的后端,打开项目的时候会在服务器里启动后端,然后自动打开 client 连接后端。代码提示、插件啥的都和本地的 idea 没区别。

不过要吐槽的一点就是这玩意的下载是真的慢啊,而且实验室的网络只有 10Mbps 的小水管带宽,真的折磨。

make 终于能正常使用了。不过这个方案有一个终极问题,内存占用巨大。运行了 idea 后端的 wsl2 占用超过了 6GB,jetbrains client 差不多占了 500 多 MB,我开发的时候还需要开几个浏览器,算 2GB 吧,有时候还要开个 DataGrip,算 1GB 吧,还有 QQ 微信啥的,加起来我的 16GB 内存占了 15GB 了,系统也一卡一卡的。

所以我换了一根 16GB 的内存,现在 24GB 内存完全不卡😋

其他还有一些小问题,比如说 wsl2 的 ip 地址不是静态的,每次重启 Windows 都会变一次,在网上搜到了解决方案

2022-11-07

关于 ip 地址不是静态的问题,新版本的 idea(版本 2022.3 或 Jetbrains Gateway 2022.3)已经支持直连 wsl 了,不需要通过 ssh 连接了。从根本上解决问题😄。

2022-12-05