• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kyrre
V2EX  ›  程序员

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

  •  
  •   kyrre · Jun 15, 2018 · 11969 views
    This topic created in 3068 days ago, the information mentioned may be changed or developed.
    首先,各位大佬不要推荐 Mac,我用了 10 年了,不需要洗脑了。大家就事论事。
    也不用推荐虚拟机方式,不喜欢。

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

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

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

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

    @kindjeff Python 一般不会自编译吧?
    vale666
    vale666
    Jun 15, 2018
    9
    顺便借楼:
    大家有在 windows 上用 git bash 的,如果想要类似 GTK 下 Guake 或 KDE 下 Yakuake 中的“下拉”和“标签”功能,可以看一下这个项目: https://github.com/vale666/Wuake ;虽然还不完美,在 Windows 下凑活用吧
    kindjeff
    kindjeff
    Jun 15, 2018 via iPhone
    10
    @kyrre 我用 pyenv,就没办法了
    inoki
    inoki
    Jun 15, 2018
    11
    SATA 3 固态,WSL 下读写文件系统比机械还慢
    march1993
    march1993
    Jun 15, 2018
    12
    可行,效率不错,unix sock 文件不支持,改成 tcp 可解决问题。nginx,php-fpm,mysql,java 亲测可用
    Torpedo
    Torpedo
    Jun 15, 2018 via Android
    13
    我是 wsl 一直做前端,node 都没啥问题。配合 vscode。但是 java 和 python 不好说
    kyrre
    kyrre
    OP
    Jun 15, 2018
    14
    嗯,暂时不急着卸载,看看 V 友们有啥好的解决方案。
    yanaraika
    yanaraika
    Jun 15, 2018
    15
    做做前端,写写 Java/Python 都行(虽然效率差点),一旦要和系统打交道(调 Linux/POSIX API )还是得老老实实回到 Linux
    billlee
    billlee
    Jun 15, 2018
    16
    我是把 wsl + mintty + openssh 当作 windows 下最佳的 ssh 客户端来用的。
    不过最近换了网络环境后,想在 wsl 中用 zeroconf 或者 netbios 来解析局域网上一台服务器的地址,没成功。始终还是不如原生环境好用。
    wangxiaoaer
    wangxiaoaer
    Jun 15, 2018
    17
    win 作为 java 开发环境哪里不成熟了
    someonedeng
    someonedeng
    Jun 15, 2018 via Android
    18
    我这里 wsl == ssh-client
    6IbA2bj5ip3tK49j
    6IbA2bj5ip3tK49j
    Jun 15, 2018
    19
    Windows 作为 Java 开发环境是没啥问题的。
    WSL 只能算个半成品,老老实实用虚拟机。
    kyrre
    kyrre
    OP
    Jun 15, 2018
    20
    @wangxiaoaer 光做 java 开发本身问题不大,现在还要时不时做 python 的开发,有时候还要玩玩 docker 啥的
    kyrre
    kyrre
    OP
    Jun 15, 2018
    21
    @someonedeng 只做 ssh-client 的话不如直接 xshell 了,就算 putty 也很好用了。
    metorm
    metorm
    Jun 15, 2018
    22
    最近在 MSYS2 里面做了一些开发,感觉怎么比 WSL 还好用呢……
    没做网络开发,但是 MSYS2 里面的 GUI 程序如 QT creator 全部能用让我感到很惊奇
    kyrre
    kyrre
    OP
    Jun 15, 2018
    23
    @billlee 你这个最佳是自封的吧?😄
    shansing
    shansing
    Jun 15, 2018
    24
    楼上把 WSL 当 SSH 客户端用的,不妨了解一下 Windows 自带的 OpenSSH :doge:
    lujjjh
    lujjjh
    Jun 15, 2018
    25
    文件模式的问题可以看看这个 issue:
    https://github.com/Microsoft/WSL/issues/81#issuecomment-356081660
    xiaqi
    xiaqi
    Jun 15, 2018 via Android
    26
    我也很想,但是,
    今天我试了下 golang,sorry, fork 失败.嗯,go1.95 和 go1.10 都不行
    xiaqi
    xiaqi
    Jun 15, 2018 via Android
    27
    @xiaqi 刚点了添加回复,才看懂了题目.python 应该可以!
    mYYnSmiTEQWcCwAr
    mYYnSmiTEQWcCwAr
    Jun 15, 2018 via Android
    28
    打开 wsl 的 bash 后 touch xxxyyy
    然后 windows 下使用 everything 搜索 xxxyyy 就能找到 rootfs 文件夹在哪了
    不过 rootfs 别乱动 最好把它当成只读的
    pabupa
    pabupa
    Jun 15, 2018
    29
    能用,但是 ide 都不支持,还是很难受。
    shynome
    shynome
    Jun 16, 2018
    30
    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
    kevinhwang
    Jun 16, 2018
    31
    各位大佬别装 B 了,windows 是垃圾,别用了,回去用你们的 mac 比较高贵。
    我用 wsl 就是喜欢可以 make 各种 tar,用 linux 各种的 client,例如 ssh,mysql,redis。要把虚拟的东西拿到当 server 也是搞笑。IO 性能似乎有损耗,感觉没 linux 原生好。
    不排斥 linux 桌面,但痛点是没有 windows 的 everything,使我离不开 windows。
    nicevar
    nicevar
    Jun 16, 2018
    33
    用熟练了 win/mac/linux 真没什么区别,三个系统都用了 10 年以上,win 已经用了 20 年了,使用习惯都能配置成一样,android/iOS/Java web/php/python 我都做,家里两台 windows、两台 mac、四台 linux,基本上坐在哪边就用哪台
    newater
    newater
    Jun 16, 2018
    34
    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
    kyrre
    OP
    Jun 16, 2018
    35
    @newater 多谢指点。我最烦什么文件目录都是 777 的那种。
    newater
    newater
    Jun 16, 2018
    36
    @kyrre 我也是刚从 @kevinhwang 给的链接追溯找到的方法。
    经过实际测试,这样操作后还是有部分 777 的文件,即那些以运行 WSL 的 Windows 用户身份不能访问的文件。
    虽然在 WSL 中显示权限是 777,但其实并不能访问,所以姑且当这些文件不存在吧。
    janxin
    janxin
    Jun 16, 2018
    37
    推荐还是装个 Linux 吧,用 WSL 确实有些地方 BUG 莫名其妙(表现不一致),或者是有些东西使用起来有问题
    zjsxwc
    zjsxwc
    Jun 16, 2018
    38
    这个了解下,就知道 wsl 的坑有多少,我觉得目前 wsl 也就前端写写 typescript 什么的可以用用:

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

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

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