我之前一直是在 linux 下开发( go/node/python/java 都有,但不涉及机器学习这种需要显卡的开发),积累了大量的 shell 脚本、工具链、程序、配置等,日常使用 vs code 或者 jetbrains 开发。
这么多年了,linux 的图形界面的稳定性一直挺烂的,但考虑到其生态系统与命令行的强大,一直忍了下来,偶尔桌面崩溃,或者图形界面的 bug 啥的,倒也可以忍受。
直到最近几个月常常需要远程桌面办公,linux 下就没一个好用的远程桌面,效果比微软自带的 RDP 差远了,这件事促使我决定迁移到 win10 。
虽说很多软件与编程语言的工具链,有 windows 原生版本,但我基本不考虑,只考虑 wsl,一来,我原先在 linux 下积累的大量的脚本、程序、配置,不想再重新搞一遍,二来,原生 win 下,win 的路径分隔、win 系统对 utf8 的支持烂,这些对编程并不友好。
想问问,目前阶段,WSLg 能否完美替代 Linux 下日常开发?运行 vs code 或者 jetbrains 的图形界面,运行各种编程语言的工具链,性能跟原生 linux 比,能差多少?
![]() | 1 raaaaaar 2021-06-17 13:39:06 +08:00 via Android 怎么说呢,有些命令,文件啥的和真正的 Linux 还是有区别的,经常有些文件,命令不存在啥的 |
2 AoEiuV020 2021-06-17 13:39:33 +08:00 via Android ![]() 最近在用 wsl2+vcxsrv 搞 Linux 环境安卓开发,最大问题是输入法不支持,其他没感觉比直接 window 差,但理论上是肯定有差距的, |
![]() | 4 rububio 2021-06-17 13:46:38 +08:00 via Android 现在 wslg 稳定性挺差的,再等等吧,现在时不时 Linux 图形程序就打不开了,报错 connection refused,需要重启 wsl 或者重启系统才能解决。。 |
5 MakeItGreat 2021-06-17 13:47:00 +08:00 via Android ![]() 如果你是因为远程桌面,可以虚拟机里 linux 啊 |
![]() | 6 3dwelcome 2021-06-17 13:48:33 +08:00 去 github 上看了一下 WSLg, 原理就是一个远程桌面,把 linux 内部 GUI RDP 远程到 windows host 上。 如果只是 vs code/jetbrains,那用 exe 版本也没什么问题吧。 |
![]() | 7 sunny2580839896 2021-06-17 13:48:57 +08:00 systemctl 貌似不能用 |
![]() | 9 no1xsyzy 2021-06-17 13:51:54 +08:00 ![]() init 进程是 WSL 自己的,所以相应的一堆东西没得用 dbus 支持诡异 输入法得 WSL 内和 Windows 内各自装一套 WSL2 的话防火墙需要仔细配置一下,并且 IP 会变,倒不是不能解决,但也就那样吧…… |
![]() | 10 no1xsyzy 2021-06-17 13:54:21 +08:00 对了, VS Code 可以把 WSL 当 remote,基本没什么异样感 JB 付费版也可以,但完成度据说还不如 VSC |
11 wangsd 2021-06-17 13:58:16 +08:00 感觉没有 Windows 下快 |
![]() | 12 hwdef 2021-06-17 14:01:35 +08:00 此时此刻, 2021.6.17,是不可用的,也不是正式版,还是 dev,甚至都不是 beta,,, 用了一会,,感觉,,linux 的窗口都挺丑,好像是默认的 gtk,缩放还是有问题,没有中文字体,要自己装。 |
![]() | 13 clf 2021-06-17 14:02:31 +08:00 Jetbrains+Docker 的方案应该更好? |
![]() | 14 jswh 2021-06-17 14:08:32 +08:00 wsl 目前的影响日常使用体验的,其实是磁盘性能,尤其是小文件一多。 |
15 bthulu 2021-06-17 14:13:34 +08:00 ![]() 并不能, 这就是个小玩具, 别想拿来当生产力 |
![]() | 16 BeautifulSoap 2021-06-17 14:13:56 +08:00 ![]() 不一定要用 WSLg,传统的 vcxsrv 运行 GUI 方法你也能用在 wsl 上(和 windows 没有过多文件硬件交互的话,推荐直接上 wsl2 ) 总体来说这类方法最大问题还是在输入法,你没法直接用 windows 输入法在 linux 的 gui 里输入文字,你需要在 wsl2 或虚拟机里配置 linux 的输入法 对输入法的不便能接受的话,那么 lz 基本能大致完美替代 Linux 的开发了(对 systemd 有刚需的话 wsl2 可能比较折腾) |
![]() | 17 LokiSharp 2021-06-17 14:13:58 +08:00 直接用 Linux 虚拟机开发不就好了 |
19 NIYIKI 2021-06-17 14:29:01 +08:00 不能 |
![]() | 20 Dragonphy 2021-06-17 14:34:46 +08:00 1. GUI 缩放不行; 2. VSCode 开发的话不需要 GUI,直接用 remote 插件就行了,我一直用 WSL2 做前端开发,windows 桌面 IDEA |
21 charlie21 2021-06-17 15:15:34 +08:00 win 10 远程桌面很好 WSL 里使用 linux 工具链很好( win 作为宿主机) WSL 本身可以安装一个 xfce 桌面环境,然后( win 作为一端) xrdp 3389 端口连进去( WSL 作为远程桌面的另一端)。这种方案相当于远程连接到任何一台 linux 电脑 参考 zhihu.com/question/350529856/answer/1237413438 内置 WSL 2 的 Windows 10 可以完全取代桌面版 Linux 吗 WSLg 本身和 WSL 耦合得太紧了,故而不值得用 |
22 thunderw 2021-06-17 15:17:37 +08:00 |
23 ysn2233 2021-06-17 15:23:06 +08:00 我现在用 vcxsrv 配 wsl2 下的 ide 开发就和 linux 下没什么区别了 |
![]() | 24 silkriver 2021-06-17 15:25:36 +08:00 Linux 下远程桌面服务端程序用 xrdp,客户端程序用 remmina,我觉得比微软自带的 RDP 强 |
25 surfwave 2021-06-17 15:35:03 +08:00 WSL2 时不时就自动更换 IP,很麻烦,不推荐了。 |
26 fo0o7hU2tr6v6TCe 2021-06-17 15:37:42 +08:00 替代可以,完美不行 |
![]() | 27 LokiSharp 2021-06-17 15:38:48 +08:00 WSL 是个残废,WSL2 就是个阉割版虚拟机 |
![]() | 28 lxrmido 2021-06-17 16:00:01 +08:00 不能,设备经常变来变去,三天两头就要 winsock reset 一次才能连上网,配置好的端口、IP 绑定经常失效。推荐 VSC 的 ssh remote 开发,配合 vsc 内置的终端还是很好用的。 |
![]() | 29 Nerv 2021-06-17 16:02:57 +08:00 via Android ubuntu 的图形界面稳定性本来就堪忧,再套上个 wsl2,真的是 bug 多到飞起,至少现在是这样。 |
![]() | 30 Kaisar 2021-06-17 16:11:54 +08:00 linux 下远程桌面用 vnc 目前用起来没什么问题啊 或者说问题不大 |
![]() | 31 zjsxwc 2021-06-17 16:17:31 +08:00 不能,还不如直接 win 下开虚拟机玩 linux, 或者继续 linux 下开虚拟机玩 win 我选择后者。 |
32 sleepm 2021-06-17 16:18:45 +08:00 @lxrmido 下载个 uu 加速器,找齿轮菜单里的网络工具,修复 lsp,不重启就好了,不用 winsock reset 几年用 ubuntu 开发,桌面没崩过,见过最多的错误是 wps 的,不影响使用(大学几年用的 fedora,也很稳定) 远程桌面 anydesk todesk rustdesk + zerotier 还是可以的 在家 wsl2,文件在 wsl2 里速度快,在挂载的 /mnt 下就比较慢,有时候会怀疑人生,变 ip 是痛点,不过可以写脚本设置自动更新 ip 到 win10 hosts |
33 polaa 2021-06-17 16:27:08 +08:00 我现在的方式是 vscode 通过 remote ssh 进行开发 Pycharm 也是设置 remote deployment 环境 ubuntu 装的 server 版 没有 GUI 感觉良好 |
![]() | 34 hihanley 2021-06-17 17:32:09 +08:00 Java 开发,一直 Win10 + VMWare,装 Ubuntu Server,然后用 Jetbrains 的 Projector 开发,Projector 越来越好用了,中文输入也快支持了。 偶尔也用 VSCode SSH Remote,写 JS,Python,Go |
![]() | 35 JustRuning 2021-06-17 17:35:27 +08:00 用过一段时间,最大的问题是 IO 问题,当挂载的文件过多的时候挺别慢。 |
![]() | 36 johnsona 2021-06-17 17:38:32 +08:00 via iPhone 不能 双系统虚拟机拉倒 |
37 MiniUniverse 2021-06-17 17:50:08 +08:00 via Android Manjaro 欢迎你 |
38 zone10 2021-06-17 17:56:03 +08:00 最好的 Linux: Docker + VS Code Remote Containers 次好的 Linux: Ubuntu Server + VS Code Remote SSH |
![]() | 39 aristolochic 2021-06-17 18:38:07 +08:00 目前可公开的情报( x 以下仅针对 WSL2 GUI 的话 WSLg 倒是挺好用的,就是会设置奇怪的 XDG Runtime 目录环境变量,而且加了个库不是软链接,Arch 每次更新会提示比较烦; Systemd 的话现在 Genie 已经比较成熟了,没遇到什么坑,除了需要放弃在 WSL 里挂载 Windows 文件系统的能力(说起来我用的 zsh 配置由于会高亮路径,要检查 Windows 的目录,结果就是输入有肉眼可见的延迟。用了 Genie 后由于没有 Windows 目录了,体验反而上升了,这才知道是什么原因。 USB 的话还得自己折腾网络方案,每次需要自己折腾 USB 的时候就想到之前 WSLg 没出的时候配置音频的痛苦,就觉得自己用 WSL 是为了省时间的,就放弃了; 嵌套虚拟化的话近期更新的内核默认开启了 KVM,但目前 Libvirt 是不行的,会嫌弃 WSL 没有设备信息(当然没有)然后 error,不知道其他怎么样,比如手动拼接 QEMU-KVM 命令能不能行,我是懒得折腾了。 |
40 alexkkaa 2021-06-17 18:40:30 +08:00 via Android 个人觉得 gnome 现在已经很好了 |
![]() | 41 dingwen07 2021-06-17 18:44:51 +08:00 目前还不支持大多数程序的高分辨率,正式版比较推荐 踩 WSL2 吹 WSL1 的,你们不知道这俩可以同时开启使用的吗?需要 WSL1 就进 WSL1,需要 2 就进 2 。文件 I/O,WSL1 和 2 分别是 Windows 文件系统更快和 Linux 文件系统更快,那就把需要大量 Windows 文件系统操作的任务放到 WSL1,把需要大量 Linux 文件系统操作的任务放到 WSL2 进行不就得了。 |
42 raynor2011 2021-06-17 18:46:06 +08:00 wsl2 + emacs 图形化界面 , 用了很久了, 没什么问题 |
![]() | 43 flyhaozi 2021-06-17 18:53:55 +08:00 无图形界面的 wsl2 就可以胜任很多开发工作了,毕竟 wslg 需要 windows 10 预览版,目前还是先用稳定版比较好,另外稳定版的 wsl2 当前只能手动一步步安装: https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps 编辑器支持方面,vscode 和 jetbrains 都可以用 windows 版来连接到 wsl2, vscode: https://code.visualstudio.com/blogs/2019/09/03/wsl2 , jetbrains: https://www.jetbrains.com/help/idea/how-to-use-wsl-development-environment-in-product.html, vscode 远程连接 wsl2 的体验目前已经很完美了,可以直接在 wsl2 目录输入 code .在 vscode windows 版中打开项目,也可以使用 wsl2 中的 git ; jetbrains 没有用过,目测体验可能没有那么好。 性能方面,由于 wsl2 本质上还是虚拟机,所以项目文件一定要放在 wsl2 中性能才不会受影响,在 wsl2 中读取 windows 文件性能并不太好。根据微软的文档 nodejs 在 wsl2 里的性能是要比 windows 版好的。 语言和工具链支持方面,nodejs 和 python web 在 wsl2 下的开发都有微软官方的入门文档: https://docs.microsoft.com/zh-cn/windows/dev-environment/Javascript/nodejs-on-wsl, https://docs.microsoft.com/zh-cn/windows/python/web-frameworks, 就个人的体验来看,前端的开发工具链在 wsl2 下是完全没有问题的。 wsl2 目前很大的一个问题是没有 systemd,wsl2 也不会随 windows 启动而启动,如果有需要长期运行的服务 wsl2 并不适合,wsl2 更合适用来开发调试,不能拿来当作生产环境。 |
![]() | 44 46Gnj0E0OBmad377 2021-06-17 19:08:40 +08:00 via iPhone 弄个 hyperv 的 vm 就完事了 |
![]() | 45 SenLief 2021-06-17 19:14:46 +08:00 via Android @flyhaozi 有两个替代的工具,不过都需要在 win 下的终端执行的。开机自启可以利用计划任务吧。 |
![]() | 47 akira 2021-06-17 20:03:29 +08:00 在 win 下跑有 ui 的 在 linux server 下面跑没 ui 的 |
![]() | 48 Dragonphy 2021-06-17 20:17:50 +08:00 wsl2 用 docker 就好了,systemctl 不好用 |
![]() | 49 kksco 2021-06-17 22:24:42 +08:00 我觉得 ubuntu 也还好,非要说缺点就是 jetbrains 家的 ide 总是莫名其妙的内存泄露把内存吃满。。 |
50 her999 2021-06-18 00:27:38 +08:00 ubuntu 的桌面很稳定。输入法可以用 搜狗 和 rime |
51 hei1000 2021-06-18 05:13:59 +08:00 "这么多年了,linux 的图形界面的稳定性一直挺烂的"????不知道你用的什么发行版和桌面环境,我用的 Manjaro+XFCE/KDE 很稳定啊,很少出问题,我的 Win10 都只安装在虚拟机里面,日常就 Linux 桌面环境 |
52 zxCoder 2021-06-18 08:47:03 +08:00 还是稍微有一点别扭 |
![]() | 53 DonaldY 2021-06-18 09:46:45 +08:00 ubuntu 也不稳定哈。浏览器老是崩溃。gnome-shell 飙高 |
![]() | 54 join 2021-06-18 10:07:35 +08:00 linux 的 gui 本身就这么烂,指望非原生 wslg 会好? 幼稚。 |
55 FakNoCNName 2021-06-18 10:10:50 +08:00 @DonaldY 16\18 确实有这个问题,20.04 用到现在还没出现过 gnome 把机器跑死的情况。 |
56 FakNoCNName 2021-06-18 10:13:46 +08:00 Linux 确实没有太好用的远程工具,向日葵、toDesk 也不那么好使。 不过可以考虑 ssh 过去 vim 开发,但如果能 ssh 过去就说明你的机器可以暴露到公网上,这样的话在 linux 上装个 RDP 服务器,用 RDP 客户端远程连过来开发更爽。 |
57 EIJAM 2021-06-18 10:26:45 +08:00 wsl 就是个杂合怪胎,换个名字叫“狮虎兽”。想要替代 Linux 是不可能的 |
58 thtznet 2021-06-18 11:32:26 +08:00 想太多,不要为了技术而技术,直接虚拟机,不想装第三方的就用自带的 Hyper-V,所有问题都不是问题,只是不够酷罢了。 |
![]() | 59 richardwong 2021-06-18 12:36:29 +08:00 @raynor2011 怎么配的,我中文没法输入,也没法显示 |
![]() | 60 HankAviator 2021-06-18 12:39:31 +08:00 via Android @no1xsyzy wsl2,IP 变化的问题,我之前也遇到过。后来为了修复罗技鼠标驱动,打开页面空白的问题,把 wsl2 导出之后导入,结果就可以识别出来真正的 IP 地址。 写到这儿才想到是不是被导入成 wsl1 了…… |
61 raynor2011 2021-06-18 12:43:49 +08:00 @richardwong 中文输入法用的 fcitx, 然后把系统语言改成中文 |
![]() | 64 fkmc 2021-06-18 15:21:06 +08:00 目前 还是 manjaro + kvm 虚拟化 windows 使用 remmina spice 协议连接 复制粘贴 到虚拟机没什么问题 外加一个 smb |
65 hz2019 2021-06-18 15:55:10 +08:00 如果是用 vscode,可以直接 win-vscode+WSL,体验很好。jetbrains 对 WSL 的支持也不错,只是需要经过一些配置,比如 WSL python 开 venv,win-vscode 打开不需要配置,win-jetbrains 得写个脚本来指定目录。WSLg 的 vscode 没用过,用的 QtCreator,按键上的体验不太好,尤其和 win 上的窗口进行切换,比如 qtcreator-vim 在 insert 模式下切到 win,在切回来,有时候会莫名其妙不停自动输入 jjjjjjjjj 。。。。 |
![]() | 67 crazykay 2021-06-18 18:25:52 +08:00 小前端一枚, Linux base 开发使用好多年了, 觉得 Linux 下图形界面的稳定性一点也不烂. wechat-devtools-linux 实在没有作者跳出来维护了,腾讯更新了版本之后就折腾不好. 最近刚好 win11 出来, 搞个硬盘装来试试, 顺便恰口饭, 日子太难了 PS. 远程办公一定要远程桌面是什么逻辑? 远程桌面解决方案也挺多的啊, rustdesk 啥的 |
![]() | 68 libook 2021-06-18 18:56:04 +08:00 看干啥,如果只是做做 Web 开发啥的应该没问题,但如果做系统开发可能问题会比较多,毕竟 WSL 和 Linux 差别还挺大的。 比如每次启动 IP 会变,不能使用服务管理(如 Systemd ),没法访问一些硬件设备。 目前我是用的在 Win10 上用 Cygwin 装 XServer,然后从 WSL2 里启动基于 X 的程序,可以做到让 Win10 来管理窗口。 我的配置信息在 GitHub 上,可以搜 WSL-GUI 输入法据说在 WSL2 里装 Fcitx,我没试过,平时没有输入中文的需求。 其实微软完全可以走 X 那一套,都不需要多少开发成本。 |
![]() | 69 Outshine 2021-06-18 19:04:47 +08:00 wsl2 太难用,我已经换了 deepin 。。。 |
71 Donahue 2021-06-18 21:12:25 +08:00 ubuntu20.04 原生桌面我觉得挺好用,远程用自带的一个软件 好像叫 remmia |
![]() | 72 chaleaoch 2021-06-19 01:23:12 +08:00 jetbrains 和 vscode 都有了支持远程开发的方案了. 我用 windows + docker |
![]() | 73 chaleaoch 2021-06-19 01:23:27 +08:00 |
![]() | 74 Showfom PRO 不如虚拟机做开发环境的好 |
75 harwck 2021-06-19 09:58:38 +08:00 via Android 没有 systemctl,io performance 烂成不知道什么样,用的头疼 |
![]() | 76 magicdu 2021-06-19 16:28:33 +08:00 ubuntu 用的自带的 remote desktop 感觉还可以啊 |
78 harwck 2021-06-20 05:53:37 +08:00 @lm902 wsl2 也是有 systemd 的,但已有人解了 真正致命的是 io,就如上面有人了,小文件一多的我和 native linux 可以有上百倍的差距。 |
79 ysn2233 2021-06-20 17:03:09 +08:00 可能没法媲美 linux 开发环境,但绝对不会比 macos 差 |
80 ysn2233 2021-06-20 17:04:10 +08:00 @harwck 只用 wsl2 内部的文件系统不会吧,只是和 windows 文件系统交互比较慢,用 wslg 的目的就是直接在 wsl2 里打开 ide 了,文件性能问题应该影响不大。 |
81 aneostart173 2021-06-21 08:56:11 +08:00 图形性能感觉不是很好,开个 emacs 都会卡。 |