Windows 怎么开发配置环境来着, WSL 好像没啥用啊

2022-01-25 10:31:00 +08:00
 pupboss
机缘巧合周末搞了台 Windows 台式机,体验了一波发现响应速度都超级快,不管是浏览器还是办公套件,于是萌生了用 Windows 做开发机的念头

但是我现在没搞明白 WSL 存在的意义,我举一个场景比如 nodejs 开发

宿主机的 sublime 或者 vscode 或者 Git GUI 如果想正常使用,得在宿主机装一套 sshd nodejs eslint 这类工具,好像就没 WSL 什么事了

如果说有的程序需要 Linux 环境,ok 我用 vscode remote wsl 插件连接到 WSL ,使用 WSL 里面的开发环境,但是 WSL 挂载 git 的时候,文件权限全部 777 ,也是很影响使用

文件权限问题,实在不行我把代码放在 WSL 内部,也能忍,但是和宿主机文件传输好 jb 慢啊,5 分钟传不完 200M 的碎文件

传输慢也就还能忍,大不了全部放在 WSL 里面,但是我的工作区是用 syncthing 同步的,WSL 安装完发现 systemctl 不能用

systemctl 不能用我也认了,大不了每次手动启动 syncthing ,但是启动完发现 WSL 的端口只能在 localhost 访问,而 NAS 连不上,或者说需要额外配置才能连上

可如果我在宿主机同步 syncthing ,就又会遇到 git 文件权限 777 问题,完美循环了

所以想请教下各位,Windows 下舒服的开发姿势是什么样的,WSL 一把梭,还是宿主机一把梭,还是有什么奇巧淫技
8238 次点击
所在节点    程序员
77 条回复
mzfbwu
2022-01-25 10:40:35 +08:00
我在公司是通过 vscode 的 sftp 把代码同步到开发服务器,或者用 remote-ssh 直接在服务器上改,本地只做一个编辑器使用。wsl 的话,我用了几款,都遇到过奇奇怪怪的问题,个人觉得 ubuntu18 相对好一点。
murmur
2022-01-25 10:41:42 +08:00
前端就用 windows 开发,用什么 wsl 。。。
hwdef
2022-01-25 10:41:58 +08:00
能宿主机就宿主机,实在不能宿主机,比如我编译 k8s 源码,就用 wsl ,觉得 wsl 也不好用,就 linux 虚拟机,

不要对 wsl 期望太高,把它看成一个轻量级的虚拟机用。
liaohongxing
2022-01-25 10:43:49 +08:00
在开启了 WSL 的 windows 上装 docker, docker 里启动 mysql postgresql redis, 既可以享受最新的 linux 软件镜像,主体在 windows 上开发。我就是这么用的

装纯 linux 的话 ,国产 微信 ,QQ ,GPU 闭源驱动又是大问题
Shazoo
2022-01-25 10:44:12 +08:00
WSL 跑服务遇到更新重启,会出现怪异的问题,导致重装。(环境变量全部丢失,甚至包含 userprofile 丢失,系统基本无救)

考虑到 win10 尿性,最好别用了……

目前就是 VMplayer 跑个 guest 主机,vscode remote debug
bthulu
2022-01-25 10:45:06 +08:00
前端有什么是 windows 下搞不定的吗非得要用 linux?
cmdOptionKana
2022-01-25 10:48:58 +08:00
直接用 Windows (关闭 wsl )不就行了?
pupboss
2022-01-25 10:58:00 +08:00
@mzfbwu
@murmur
@hwdef
@liaohongxing
@Shazoo
@bthulu
@cmdOptionKana 感谢各位答疑,你们还真是整齐,评价一边倒,看来结论就是 WSL 对开发没啥卵用,最多在里面用用 Linux 小工具集
hwdef
2022-01-25 11:09:26 +08:00
wsl 的存储和网络都有问题,,,我还是倾向与这玩意是个玩具。
harchiko
2022-01-25 11:15:45 +08:00
我是用命令行比较多, wsl 对我来说是使用 windows 的最大动力.

如果你习惯使用 windows 的工具链,那 wsl 对你来说是没什么用. 我很多工作的工具都是 Linux Only 的.

wsl 挂载 git 的时候权限问题,我没遇到过这个问题. 猜测可能是 git 从 windows 下拉的 repo, 我个人是 git 拉到 wsl 中运行,当然也有拉到 windows 目录下的,使用也没问题.

至于文件同步问题,我个人这边是没有进行文件同步的,即便是 windows 目录下 /mnt/c/Users/pc/Developer/test 这种文件,我用 git 的时候也在 wsl 下 git pull 之类的, windows 下没有进行过 git 操作.

我觉得 wsl 简直太香了.
harchiko
2022-01-25 11:18:10 +08:00
当然 wsl 也不是没有问题,比如上周,我打算使用 wsl 下的 golang 进行开发, goland 直接卡住了,查询了一圈 issue 目前这个问题无解, wsl2 下暂时就这么慢, wsl1 还行.
Trim21
2022-01-25 11:18:17 +08:00
你没用到的东西 Windows 上都有的话完全没必要用 wsl…
hyq
2022-01-25 11:19:27 +08:00
我觉得 wsl 挺好用,本人 c++,golang 开发,linux 运维,wsl 提供了一个和 linux 一样的 unix 环境,能很方便的和 windows 共享文件。vscode 能高效地集成 wsl 开发环境,体验比 ssh 好一个数量级。并且能很方便切换不同的 linux 发行版,系统版本。
有了 wsl ,基本就不用 linux 开发机了。
ShadowPower
2022-01-25 11:21:53 +08:00
用 WSL1 ,网络没问题;
项目文件放在 WSL 用户的 home 目录下;
用 vscode 搭配 remote-wsl 做开发;
需要 docker 时,不用 WSL2 版本,用 Hyper-V 版本,配置 DOCKER_HOST 让 WSL1 能连接 docker daemon ,用 mount --bind 把 mnt 下的目录映射到根目录,使其跟 Hyper-V 中的目录一致,以便正常挂载 Volume 。

用这玩意需要一定的 Linux 知识,并非开箱即用……
march1993
2022-01-25 11:24:48 +08:00
systemd 不能跑其实很莫名其妙,只要注释掉 systemd 里 `getpid_cached() != 1`就能执行。
wty
2022-01-25 11:25:19 +08:00
git config core.filemode false
比较时忽略文件属性,也许有用?
XTTX
2022-01-25 11:27:43 +08:00
@murmur #2 有些时候别人的项目只能用 node 14, 你电脑上是最新的 node 16. 这时候用 wsl+docker 就很合适
zengzizhao
2022-01-25 11:28:31 +08:00
直接用 Multipass 不香吗
pupboss
2022-01-25 11:29:18 +08:00
@wty 有用的,但是还有额外两个问题,所以我最终还是没改成 false

1 个是 git pull 默认的配置文件( git 仓库的配置)还是 filemode true
2 就是 filemode 偶尔还是会用到,比如代码仓库有几个脚本,想改成 +x 权限
2i2Re2PLMaDnghL
2022-01-25 11:30:51 +08:00
拿 WSL 写前端就跟拿 WINE 跑 mingw 写 C 一样绕远路

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/830414

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX