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

有了 Linux 子系统, Windows 作为 Java + Python 的开发环境时机是否成熟?

  •  
  •   kyrre · 2018-06-15 17:47:23 +08:00 · 10638 次点击
    这是一个创建于 2345 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先,各位大佬不要推荐 Mac,我用了 10 年了,不需要洗脑了。大家就事论事。
    也不用推荐虚拟机方式,不喜欢。

    尝试过在 windows10 上装 WLS,但感觉不是很方便,当时项目紧张,就没花心思去折腾,直接用 BitBash 认怂。
    然后各种不爽,特别是字符集导致的各种乱码。

    过了一年,现在的 Windows10 里的 Linux 据说支持的更多了?不光是 Ubunut 了?
    有谁驯服了的,好心分享一下。
    第 1 条附言  ·  2018-06-15 21:15:00 +08:00
    下午试了一把,发现还是不爽。尤其是两个系统间共享文件,太蛋疼。

    默认进入的 linux home 目录在 windows 文件系统里没找到。Windows 的目录虽然能够通过 /mnt/盘符 /的方式定位到,但文件模式是 777,系统洁癖的我表示无法忍受。

    目前给我的感觉是还不如 git bash。
    64 条回复    2018-06-21 11:19:28 +08:00
    kingname
        1
    kingname  
       2018-06-15 17:56:42 +08:00 via iPhone
    你试一试配置配置 mysql-python 你就知道成熟不成熟了
    vale666
        2
    vale666  
       2018-06-15 17:58:58 +08:00   ❤️ 1
    你说的 BitBash 是指 git-bash 吗?
    heimeil
        3
    heimeil  
       2018-06-15 17:59:10 +08:00   ❤️ 2
    WSL, Git bash, Ubuntu
    ysc3839
        4
    ysc3839  
       2018-06-15 18:04:16 +08:00
    我前几天尝试在 WSL Ubuntu 18.04 里安装 php7.2-fpm,配合 nginx 使用,结果发现网页无法完全加载,据说是已知问题,就放弃了。
    lscho
        5
    lscho  
       2018-06-15 18:05:26 +08:00
    虚拟机才是王道
    iConnect
        6
    iConnect  
       2018-06-15 18:06:33 +08:00 via Android
    @kingname 现在 mysql-python 是可用?还得不可用?
    kindjeff
        7
    kindjeff  
       2018-06-15 18:07:31 +08:00   ❤️ 1
    编译 Python 速度奇慢
    kyrre
        8
    kyrre  
    OP
       2018-06-15 18:13:08 +08:00
    @vale666 对,我手误了。gitbash。

    @kindjeff Python 一般不会自编译吧?
    vale666
        9
    vale666  
       2018-06-15 18:25:36 +08:00
    顺便借楼:
    大家有在 windows 上用 git bash 的,如果想要类似 GTK 下 Guake 或 KDE 下 Yakuake 中的“下拉”和“标签”功能,可以看一下这个项目: https://github.com/vale666/Wuake ;虽然还不完美,在 Windows 下凑活用吧
    kindjeff
        10
    kindjeff  
       2018-06-15 19:01:17 +08:00 via iPhone
    @kyrre 我用 pyenv,就没办法了
    inoki
        11
    inoki  
       2018-06-15 20:31:17 +08:00
    SATA 3 固态,WSL 下读写文件系统比机械还慢
    march1993
        12
    march1993  
       2018-06-15 20:50:35 +08:00
    可行,效率不错,unix sock 文件不支持,改成 tcp 可解决问题。nginx,php-fpm,mysql,java 亲测可用
    Torpedo
        13
    Torpedo  
       2018-06-15 20:56:05 +08:00 via Android
    我是 wsl 一直做前端,node 都没啥问题。配合 vscode。但是 java 和 python 不好说
    kyrre
        14
    kyrre  
    OP
       2018-06-15 21:16:05 +08:00
    嗯,暂时不急着卸载,看看 V 友们有啥好的解决方案。
    yanaraika
        15
    yanaraika  
       2018-06-15 21:17:07 +08:00
    做做前端,写写 Java/Python 都行(虽然效率差点),一旦要和系统打交道(调 Linux/POSIX API )还是得老老实实回到 Linux
    billlee
        16
    billlee  
       2018-06-15 21:19:22 +08:00
    我是把 wsl + mintty + openssh 当作 windows 下最佳的 ssh 客户端来用的。
    不过最近换了网络环境后,想在 wsl 中用 zeroconf 或者 netbios 来解析局域网上一台服务器的地址,没成功。始终还是不如原生环境好用。
    wangxiaoaer
        17
    wangxiaoaer  
       2018-06-15 21:26:50 +08:00
    win 作为 java 开发环境哪里不成熟了
    someonedeng
        18
    someonedeng  
       2018-06-15 21:43:31 +08:00 via Android
    我这里 wsl == ssh-client
    6IbA2bj5ip3tK49j
        19
    6IbA2bj5ip3tK49j  
       2018-06-15 21:53:51 +08:00
    Windows 作为 Java 开发环境是没啥问题的。
    WSL 只能算个半成品,老老实实用虚拟机。
    kyrre
        20
    kyrre  
    OP
       2018-06-15 21:56:15 +08:00
    @wangxiaoaer 光做 java 开发本身问题不大,现在还要时不时做 python 的开发,有时候还要玩玩 docker 啥的
    kyrre
        21
    kyrre  
    OP
       2018-06-15 21:57:47 +08:00
    @someonedeng 只做 ssh-client 的话不如直接 xshell 了,就算 putty 也很好用了。
    metorm
        22
    metorm  
       2018-06-15 21:58:32 +08:00
    最近在 MSYS2 里面做了一些开发,感觉怎么比 WSL 还好用呢……
    没做网络开发,但是 MSYS2 里面的 GUI 程序如 QT creator 全部能用让我感到很惊奇
    kyrre
        23
    kyrre  
    OP
       2018-06-15 21:59:25 +08:00
    @billlee 你这个最佳是自封的吧?😄
    shansing
        24
    shansing  
       2018-06-15 22:16:08 +08:00
    楼上把 WSL 当 SSH 客户端用的,不妨了解一下 Windows 自带的 OpenSSH :doge:
    lujjjh
        25
    lujjjh  
       2018-06-15 22:26:37 +08:00
    文件模式的问题可以看看这个 issue:
    https://github.com/Microsoft/WSL/issues/81#issuecomment-356081660
    xiaqi
        26
    xiaqi  
       2018-06-15 22:47:00 +08:00 via Android
    我也很想,但是,
    今天我试了下 golang,sorry, fork 失败.嗯,go1.95 和 go1.10 都不行
    xiaqi
        27
    xiaqi  
       2018-06-15 22:48:14 +08:00 via Android
    @xiaqi 刚点了添加回复,才看懂了题目.python 应该可以!
    cy97cool
        28
    cy97cool  
       2018-06-15 23:04:33 +08:00 via Android
    打开 wsl 的 bash 后 touch xxxyyy
    然后 windows 下使用 everything 搜索 xxxyyy 就能找到 rootfs 文件夹在哪了
    不过 rootfs 别乱动 最好把它当成只读的
    pabupa
        29
    pabupa  
       2018-06-15 23:06:43 +08:00
    能用,但是 ide 都不支持,还是很难受。
    shynome
        30
    shynome  
       2018-06-16 00:12:21 +08:00
    wsl ubuntu 的默认路径是这个:
    ```
    "%userprofile%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\root\"
    ```

    文件夹共享我是用 mklink(cmd) 共享 wsl root 文件夹下的目录, 如下:
    ```ssh
    mklink /D "%userprofile%/.ssh" "%userprofile%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\root\.ssh"
    ```

    这里是折腾的记录:
    <https://github.com/shynome/shynome.github.io/issues/4>
    kevinhwang
        31
    kevinhwang  
       2018-06-16 00:13:18 +08:00
    各位大佬别装 B 了,windows 是垃圾,别用了,回去用你们的 mac 比较高贵。
    我用 wsl 就是喜欢可以 make 各种 tar,用 linux 各种的 client,例如 ssh,mysql,redis。要把虚拟的东西拿到当 server 也是搞笑。IO 性能似乎有损耗,感觉没 linux 原生好。
    不排斥 linux 桌面,但痛点是没有 windows 的 everything,使我离不开 windows。
    kevinhwang
        32
    kevinhwang  
       2018-06-16 00:15:50 +08:00
    nicevar
        33
    nicevar  
       2018-06-16 00:24:11 +08:00
    用熟练了 win/mac/linux 真没什么区别,三个系统都用了 10 年以上,win 已经用了 20 年了,使用习惯都能配置成一样,android/iOS/Java web/php/python 我都做,家里两台 windows、两台 mac、四台 linux,基本上坐在哪边就用哪台
    newater
        34
    newater  
       2018-06-16 05:27:56 +08:00
    17063 版本后应该能通过文件 /etc/wsl.conf 设置挂载方式,说明见:
    https://docs.microsoft.com/en-us/windows/wsl/wsl-config#set-wsl-launch-settings
    默认文件系统 DrvFs 支持形如"metadata,uid=1000,gid=1000,fmask=133,dmask=22"的选项,参见:
    https://blogs.msdn.microsoft.com/commandline/2018/01/12/chmod-chown-wsl-improvements

    有点好奇,系统洁癖该怎样设置权限?
    kyrre
        35
    kyrre  
    OP
       2018-06-16 06:42:45 +08:00
    @newater 多谢指点。我最烦什么文件目录都是 777 的那种。
    newater
        36
    newater  
       2018-06-16 08:35:58 +08:00
    @kyrre 我也是刚从 @kevinhwang 给的链接追溯找到的方法。
    经过实际测试,这样操作后还是有部分 777 的文件,即那些以运行 WSL 的 Windows 用户身份不能访问的文件。
    虽然在 WSL 中显示权限是 777,但其实并不能访问,所以姑且当这些文件不存在吧。
    janxin
        37
    janxin  
       2018-06-16 08:59:18 +08:00
    推荐还是装个 Linux 吧,用 WSL 确实有些地方 BUG 莫名其妙(表现不一致),或者是有些东西使用起来有问题
    zjsxwc
        38
    zjsxwc  
       2018-06-16 09:31:32 +08:00
    这个了解下,就知道 wsl 的坑有多少,我觉得目前 wsl 也就前端写写 typescript 什么的可以用用:

    https://github.com/ethanhs/WSL-Programs#the-list
    wwek
        39
    wwek  
       2018-06-16 11:28:29 +08:00
    用 docker 或者 vagrant 吧
    iyaozhen
        40
    iyaozhen  
       2018-06-16 11:46:28 +08:00 via Android
    等一下,开发 JAVA 和 Python,Windows 也行啊,都用 IDE 没啥区别。感觉用不上子系统啊
    HFcbyqP0iVO5KM05
        41
    HFcbyqP0iVO5KM05  
       2018-06-16 12:26:22 +08:00 via Android
    其实 HyperV 真的还挺好用的
    HFcbyqP0iVO5KM05
        42
    HFcbyqP0iVO5KM05  
       2018-06-16 12:35:40 +08:00 via Android
    其实 HyperV 真的还挺好用的,我们公司自己买的几台戴尔服务器,全部装上 Windows Server 跑 HyperV,再在里面开 Linux 虚拟服务器。
    个人电脑用起来也蛮不错,IO 损耗几乎没有,动态内存和检查点很符合 PC 使用场景(内存,备份之类)
    tinytin
        43
    tinytin  
       2018-06-16 12:38:54 +08:00 via iPhone
    @ysc3839 装了 wegame ?
    vansl
        44
    vansl  
       2018-06-16 12:44:13 +08:00 via iPhone
    win 下除了游戏和 QQ 其他真的没什么优势了,直接上 linux 吧
    nvkou
        45
    nvkou  
       2018-06-16 13:04:34 +08:00
    doucker 啊。
    douker 可以挂载目录,源码和 git 都在 window。ide 任你挑
    kyrre
        46
    kyrre  
    OP
       2018-06-16 17:28:00 +08:00
    @gulu hyperV 是不是意味着你的笔记本上要装 Server 版 Windows ?
    Tenvins
        47
    Tenvins  
       2018-06-16 17:51:38 +08:00
    IO 速度太慢,而且安装某些服务时会出现莫名的错误,然后你在网上找这个错误的原因时找着找着最后会发现是 WSL 造成的。
    ysc3839
        48
    ysc3839  
       2018-06-16 20:09:49 +08:00
    @tinytin 没有。
    keysona
        49
    keysona  
       2018-06-16 20:18:03 +08:00
    我就不折腾了,老实 mac。

    只要苹果不做什么智障操作...
    dorothyREN
        50
    dorothyREN  
       2018-06-16 22:01:01 +08:00   ❤️ 1
    @kyrre 不是,专业版 win10 就有
    kyrre
        51
    kyrre  
    OP
       2018-06-16 22:01:03 +08:00
    @zjsxwc 这个不错,可以长期关注。
    现在看来 wsl 确实还不如虚拟机。
    kyrre
        52
    kyrre  
    OP
       2018-06-16 22:03:34 +08:00
    @nvkou docker 吧?
    Bramblex2
        53
    Bramblex2  
       2018-06-16 22:40:18 +08:00 via iPhone
    @keysona mac 也不好用啊,想跑个 docker 结果还要装个虚拟机,没比 wsl 好多少
    murmur
        54
    murmur  
       2018-06-16 22:50:23 +08:00
    java 如果是 web 开发没什么问题的 java 的虚拟机我认为是几种语言最完善的 不用 linux 子环境上 cmd 都可以
    python 因为依赖的 c 库太多 可能会遇到问题 但是 django 开发我也没遇到啥问题

    在 windows 下遇到最多的坑 我碰到的是 php
    q397064399
        55
    q397064399  
       2018-06-17 06:46:55 +08:00
    @Bramblex2 #53 把 docker 跑在 mac 上面不是脑抽? 这玩意高度依赖 LCX 跑服务器上就好了
    q397064399
        56
    q397064399  
       2018-06-17 06:51:16 +08:00
    重要的事情说三遍,,Mac Mac Mac 基本上你想要的 都有了,你想要而苦苦不能得的,也有 Linux Server 能搞定,
    非要搞个 windows 来折腾开发,是闲的蛋疼吗? 都 20 好几的人了 别在工具上苦苦的折腾了,随大流就能在前人栽的大树下好好乘凉 你看 GitHub 凡是命令行的工具链 有几个会支持 windows,
    Qzier
        57
    Qzier  
       2018-06-17 06:58:47 +08:00 via iPhone
    可是可以,就是莫名其妙的问题太多了,明明和原生 Ubuntu 装的一样的软件,一样的配置,在 wsl 却报错。
    thulof
        58
    thulof  
       2018-06-17 15:04:26 +08:00
    @ysc3839 貌似是 80 端口占用?
    ysc3839
        59
    ysc3839  
       2018-06-17 15:55:07 +08:00 via Android
    @thulof 占用的话不应该是启动不起来吗?
    thulof
        60
    thulof  
       2018-06-17 19:03:17 +08:00
    @ysc3839 之前也是跑起来之后一直打不开,查了查,有说是端口占用的,有说是 wegame 冲突的。刚才看见帖子试了一下,打开 bash,自动升级了一下,然后 nginx 居然好了。。
    ysc3839
        61
    ysc3839  
       2018-06-17 19:08:00 +08:00 via Android
    @thulof 我是先把所有软件包都更新到了最新的,然后安装 nginx php7.2-fpm。先是将 php7.2-fpm 配置为 Unix socket,然后打开网页加载不全。再把 php7.2-fpm 配置为 9000 端口,还是加载不全。
    neutrino
        62
    neutrino  
       2018-06-17 22:21:29 +08:00
    @ysc3839 加载不全是指什么呢,如果是 loading 很久卡死的话可以把 nginx.conf 里的 fastcgi_buffering 关掉试试。
    ysc3839
        63
    ysc3839  
       2018-06-17 22:28:04 +08:00
    @neutrino 网页显示一半,下面不显示了。以后有机会再测试把,已经换虚拟机了。
    dif
        64
    dif  
       2018-06-21 11:19:28 +08:00
    纯开发,既然有 mac 就不要在考虑 win 了,linux 倒是可以考虑下,发行版随意~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2224 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:39 · PVG 08:39 · LAX 16:39 · JFK 19:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.