我之前一直是在 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 1
最近在用 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 1
如果你是因为远程桌面,可以虚拟机里 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 1
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 1
并不能, 这就是个小玩具, 别想拿来当生产力
|
16
BeautifulSoap 2021-06-17 14:13:56 +08:00 1
不一定要用 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
tsaohai 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
wccc 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 2021-06-19 02:19:39 +08:00
不如虚拟机做开发环境的好
|
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 都会卡。
|