V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
James369
V2EX  ›  程序员

用 wsl2+vscode 开发,还挺香的

  •  
  •   James369 · 2022-06-21 15:31:44 +08:00 · 5216 次点击
    这是一个创建于 888 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前觉得 windows 不务正业,还搞一个 wsl 子系统进来做什么,安装一个虚拟机不就可以搞定。现在慢慢有了一些新体会。

    首先,wsl 确实比虚拟机要轻量,安装完 ps 一下进程就明白,很干净,没有多余的进程。 另外,互操作性不错,可以直接在 wsl 中运行 windows 命令(也有 tab 键补全命令)。两者的文件系统也可以互相打开。 现在,又可以将 vscode 挂到 wsl 中来开发,那真是爽了,毕竟用 linux 做开发环境,后端依赖库和软件包更新都很方便。又可以解决没有前端 IDE 编辑器的问题。

    有了这些能力,win10 系统被我保留了下来,不然早就格式化安装 linux 了。当然,使用中也发现一些问题,比如:

    • wsl 中无法设置静态 ip ,每次启动都变了。
    • wsl 中挂的 win 文件系统,文件权限和属主( chmod/chown )好像有问题,全是 root ,777 。 不知道怎么处理比较好?
    第 1 条附言  ·  2022-06-22 10:20:58 +08:00
    目前已经可以满足日常开发需求,后续有时间还想玩的东西:

    + 尝试集成 Docker Container 。
    + 直接从 wsl 中开启 linux GUI 应用。
    + 安装 Cuda 使用 GPU 进行玩玩 AI 训练。
    15 条回复    2022-06-22 10:06:00 +08:00
    xtreme1
        1
    xtreme1  
       2022-06-21 16:15:49 +08:00   ❤️ 7
    windows 访问 wsl2 的服务, 微软做了兼容, 直接用 127.0.0.1 就可以了
    wsl2 访问 windows 主机可以用 主机名.mshome.net
    主机名:Windows 设置--系统--关于--设备名称的小写

    wsl 的文件权限 微软文档很清楚了
    https://docs.microsoft.com/zh-cn/windows/wsl/file-permissions
    stormlin
        2
    stormlin  
       2022-06-21 16:53:01 +08:00   ❤️ 1
    那你这个反正都是 vscode remote ssh ,那和直接 virutal box 又有什么不同
    mayday526
        3
    mayday526  
       2022-06-21 17:10:19 +08:00
    文件如果在宿主机这边,编译很慢
    shea
        4
    shea  
       2022-06-21 17:18:25 +08:00
    我现在也是用的这种方式, 相比较直接在 linux 上开发, 还是很香的, 不过 idea 貌似没有像 vscode-remote-wsl 插件的方便, 有个远程开发, 发现还是不尽人意, 在这里求一个解决方案
    James369
        5
    James369  
    OP
       2022-06-21 18:04:19 +08:00
    @xtreme1 竟然用 127.0.0.1 ,微软还真是简单粗暴,哈哈
    James369
        6
    James369  
    OP
       2022-06-21 18:06:30 +08:00
    @stormlin #2 既然 wsl 称之为子系统,那么应该会被深度整合,互连互通,同时也更轻量。
    kid740246048
        7
    kid740246048  
       2022-06-21 18:21:41 +08:00
    目前已经可以设置静态 ip 了,只是需要 wsl 版本大于 0.51.2
    参考: https://github.com/microsoft/WSL/issues/4150#issuecomment-1018524753
    libook
        8
    libook  
       2022-06-21 18:29:14 +08:00
    我在 Windows 上用 Cygwin 装 XServer ,然后在 WSL2 里装 IntelliJ ,可以直接投到 Windows 的 XServer 上,使用起来跟直接在 Windows 上跑 IntelliJ 一样。

    WSL 内尽量使用自己的文件系统,建议仅在需要文件传输的时候才在 WSL 内部访问 Windows 的文件系统,以避免一些兼容性和 hook 问题。
    clf
        9
    clf  
       2022-06-21 18:32:15 +08:00
    wsl2 的 io 性能感觉有点难受,整体查询会比直接在 VMware 里跑 linux 慢一些?
    zed1018
        10
    zed1018  
       2022-06-21 18:58:03 +08:00
    > wsl 中挂的 win 文件系统,文件权限和属主( chmod/chown )好像有问题,全是 root ,777 。 不知道怎么处理比较好?

    user 的部分应该是跟你安装发行版的默认用户有关,我这里是我当时创建的用户是 owner 。然后权限的话默认确实是 777 ,但是可以在 /etc/wsl.conf 里调 u/f/dmask 。参考这个 https://docs.microsoft.com/zh-cn/windows/wsl/wsl-config#wslconf

    https://i.imgur.com/XWIvwbu_d.webp
    zed1018
        11
    zed1018  
       2022-06-21 18:59:43 +08:00
    imycc
        12
    imycc  
       2022-06-21 19:06:29 +08:00
    之前阻碍我从虚拟机切换到 wsl 的最大问题就是这个 umask ,看着难受,虽然可以自己配置,但总觉得微软这么搞可能有它的理由,干脆不用了。
    MEIyiyi
        13
    MEIyiyi  
       2022-06-21 19:09:47 +08:00 via Android
    wsl 我也装,但运行速度没 cmd powershell 快
    bthulu
        14
    bthulu  
       2022-06-22 08:10:35 +08:00
    写个 js 用什么 wsl, 是 windows 下不能开发么?
    cheng6563
        15
    cheng6563  
       2022-06-22 10:06:00 +08:00
    再用用,你会用回 vm 的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1059 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:01 · PVG 04:01 · LAX 12:01 · JFK 15:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.