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

Windows 下各种环境配置真是难受

  •  
  •   nyanyh · 2019-05-19 15:53:33 +08:00 · 5289 次点击
    这是一个创建于 2022 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前段时间接了一堆本科生毕业设计,我在 macOS 下开发的,除了 MySQL 跑在 Docker 里以外,配环境从来没遇到过问题,正常写完代码之后我会带一份安装运行教程,从官网下载安装包一直到项目跑起来,每个步骤我自认为够详细了,结果除了一个用 MBP 的人以外,剩下十几个人全都各种问题……

    npm install 报错无权限;管理员模式 cmd 重新运行,还是无权限;搜了一下 StackOverflow 建议 npm cache clean --force,清理了还是无权限;又搜了一下,用管理员模式 PowerShell 才正常,不知道什么原因。

    一个前端项目在 Edge 下有 bug 页面元素错位,换了 Chrome 才好,他自己说 Edge 浏览 Twitter 有时候图片显示不了,好几个月了都没发现是浏览器的问题

    还有几个 OpenCV 项目的,全是他们自己编译的,各种版本各种编译器,跑起来各种报错,重新全删了装个 Anaconda,所有联网的命令都报错 SSL module not found,又搜了一下,发现在 Windows 10 下需要手动装 OpenSSL,或者把 Anaconda\Library\bin 加到 PATH 里,去 GitHub 看了一下 issue 发现已经解决了,但不知道为什么安装的时候 PATH 没加上……

    还有一个 MySQL 不知道为什么就是无法启动的,重新装了也启动不了,手动敲命令初始化还是启动不了,我一想装个 Docker 吧,MySQL 起来了,但是因为 Docker 基于 Hyper-V,他的 VMWare 用不了了,又卸载重新装,忘了哪个版本的手动安装之后终于好了

    还有一个项目用了 redis,但不知道为什么非要在 Windows 下跑,问他为什么他说第一次演示的时候给老师看的就是 Windows,他不敢换……然后装 Docker 还报错,不知道哪年的电脑还不支持 Hyper-V,最后装了微软编译的 redis 3.0,管理员模式安装服务 redis-server --service-install 就是报错说权限拒绝,看了一下也没装什么 360、电脑管家,最后不了了之……

    还有一些莫名其妙的问题,发现基本都是中文用户名导致的,也不知道为什么 Windows 下中文的用户目录就总有程序出问题
    45 条回复    2019-05-24 13:05:07 +08:00
    secondwtq
        1
    secondwtq  
       2019-05-19 16:03:50 +08:00
    “一个前端项目在 Edge 下有 bug 页面元素错位”你怎么就能肯定是 Edge 的问题?

    (其实我在帮 Firefox 说话
    secondwtq
        2
    secondwtq  
       2019-05-19 16:04:55 +08:00   ❤️ 6
    我觉得 Windows 是该黑黑,但是楼主没黑到点上
    murmur
        3
    murmur  
       2019-05-19 16:08:00 +08:00
    mysql 无法启动?这锅 windows 不背
    redis 起不来?微软不是有编译好的么,这锅微软也不背啊
    opengps
        4
    opengps  
       2019-05-19 16:08:10 +08:00 via Android
    这跟 windows 有啥直接关系吗?
    软件运行要求的,windows 没法帮着简化
    中文目录本来就是不提倡的做法
    lhx2008
        5
    lhx2008  
       2019-05-19 16:09:54 +08:00
    WSL,WSL,WSL 说三遍
    miniwade514
        6
    miniwade514  
       2019-05-19 16:11:21 +08:00   ❤️ 1
    做个本科毕设你还指望客户换 linux 换 mac ?只能说你考虑得不够周全,兼容性没测就交付。
    tpkxywxd
        7
    tpkxywxd  
       2019-05-19 16:15:48 +08:00
    看来这钱也不是那么好赚,哈哈~~我觉得新人用 win 开发有一个好处,那就是磨练自己的耐性,程序员本身最重要的能力就是想办法解决各种问题~
    trait
        8
    trait  
       2019-05-19 16:21:24 +08:00 via iPhone   ❤️ 1
    任 win 怎么吹,敲代码便利性就是不如*nix 系,mit 等 cs 入门课程的 manual 基本都是*nix 顺位第一,win 偶尔就提一下
    dhssingle
        9
    dhssingle  
       2019-05-19 16:23:12 +08:00   ❤️ 1
    我看着你们人的问题更大一点吧。
    JerryCha
        10
    JerryCha  
       2019-05-19 16:28:03 +08:00
    OpenCV 编译报错啊。
    别说了,我也心累。老师当时给了 Windows 的教程,我自己 macOS 只能自己摸索编译,也是各种缺失各种报错。
    starcraft
        11
    starcraft  
       2019-05-19 16:37:11 +08:00 via iPhone
    啧啧啧 真是丰富 block 名单
    littleshy
        12
    littleshy  
       2019-05-19 16:38:00 +08:00
    windows 开发所需软件一般用 scoop 装就够了。
    Vegetable
        13
    Vegetable  
       2019-05-19 16:43:20 +08:00
    想赚钱就专业点好吧
    Nasei
        14
    Nasei  
       2019-05-19 17:15:34 +08:00
    你们是真不会用啊, OpenCV vcpkg 一键编译不行吗, 其他的问题都懒得说
    nyanyh
        15
    nyanyh  
    OP
       2019-05-19 17:16:53 +08:00 via iPhone
    @secondwtq 因为 Chrome Safari Firefox 下都测试过了没有问题啊
    nyanyh
        16
    nyanyh  
    OP
       2019-05-19 17:22:01 +08:00 via iPhone
    @murmur 事实上就是用的 MSOpenTech 给的 redis 3,安装服务我在虚拟机里测试是没有问题的,但是放到别人电脑上就是会失败,除了 WD 没有任何安全软件,怎么解释呢
    nyanyh
        17
    nyanyh  
    OP
       2019-05-19 17:28:08 +08:00 via iPhone
    @secondwtq 没必要黑。事实上代码本身跨平台的问题我在写代码的时候就已经测试过了,但是把编译运行环境弄好这个阶段总是会遇到各种问题
    sola97
        18
    sola97  
       2019-05-19 17:29:27 +08:00 via Android
    wsl
    runtu2019
        19
    runtu2019  
       2019-05-19 17:32:49 +08:00
    反正我 win 下编程用的挺爽的,xampp+redis 一点问题都没有,除了需要注意 linux 大小写敏感问题
    你说 opencv 我能理解,其他的完全就是经验问题了
    redis 和 mysql 服务 openssl 的问题,我基本上遇到了也是十分钟解决
    win 服务相关用 net 和 sc 命令
    docker 有 virtualbox 版本的,你多了解下就好了
    MonoLogueChi
        20
    MonoLogueChi  
       2019-05-19 17:40:12 +08:00 via Android   ❤️ 3
    第一个,npm 报错无权限,没遇到过
    第二个,edge 元素错位,这是前端的问题,浏览器兼容性不够好
    第三个,需要手动安装 openssl,你在 Linux 或者 mac 上,缺少依赖难道不是需要自己手动装嘛,最开始用 Linux 的时候,rpm 包安装,谁没遇到过因为缺少一个依赖,最后安装了七八个包才搞定。至于手动添加 patch,这个在其他开发环境也能算是常规操作,而且 win10 以后的 path 可视化添加,绝对是最简单的。
    第四个,MySQL 无法启动,无法启动是什么原因,有没有检查日志,直接启动安装时创建的那个服务也不可以嘛。
    第五个,Redis 问题,确实这种东西 win 上问题比较多,但是有一键配置环境可以尝试一下啊。

    承认 win 上开发会遇到一些奇葩的问题,但是说配置环境难受,只是你不了解 Windows,现在给我一个 Debian,我也许能熟练上手,但是给我一个 CentOS,估计就要骂娘了。我没用过 Mac,要是给我一个 Mac,我连环境怎么配,我是不是要发一贴说 Mac 配置环境多么多么复杂呢?
    akira
        21
    akira  
       2019-05-19 18:04:19 +08:00
    npm 在 linux 下面才是折腾...
    fhsan
        22
    fhsan  
       2019-05-19 18:19:17 +08:00
    你搞错方向了,这些东西和 windows 没关系。
    chouchoui
        23
    chouchoui  
       2019-05-19 18:34:01 +08:00
    又到了喜闻乐见的 Linux 吹双标暴露智商环节。
    q8164305
        24
    q8164305  
       2019-05-19 18:49:10 +08:00 via Android
    黑都没黑到点上,差评
    kevinhwang
        25
    kevinhwang  
       2019-05-19 18:51:07 +08:00 via Android
    @akira npm 在 Linux 确实折腾,这就是 mac 是最好的前端利器的原因之一吧。

    只有亲身体验过才知道,Windows 装 mysql 真的不如 Linux 简单,在我入门后端的时候 mysql 的安装和各种编码问题让我各种抓狂。

    Windows 的 docker 简直是垃圾,亲身体验,谁用谁知道,是转 Linux 的最主要原因。

    至于 Redis 的问题其实就是反映了 Windows 在开源世界的弱势,很少会在官网教你怎么编译或者快速开始,都是微软默默做支持或者不支持。这就导致开源作者无法直接解决用户问题,这是一个生态问题。
    Dukec
        26
    Dukec  
       2019-05-19 18:55:14 +08:00
    Windows 的包管理 Scoop 了解一下:
    https://github.com/lukesampson/scoop/
    loqixh
        27
    loqixh  
       2019-05-19 19:01:05 +08:00
    @nyanyh 因为你没装 redis 3 需要的 vc 运行库啊...........
    szzhiyang
        28
    szzhiyang  
       2019-05-19 19:11:54 +08:00   ❤️ 5
    × 发帖抱怨

    √ 给另外十几个人都买台 mac
    lihongjie0209
        29
    lihongjie0209  
       2019-05-19 19:14:39 +08:00
    @kevinhwang windows mysql 解压,初始化,运行哪一步难?
    zhuangzhuang1988
        30
    zhuangzhuang1988  
       2019-05-19 19:20:17 +08:00
    不是你的做
    也不是 windows 的错
    有的软件就是故意在 windows 上难搞的(没办法微软雅黑)
    如果你去看 windows 官方 git 上的 c++, 跟着文档,2-3 步 就可以 vs 打开完整环境了。
    Nasei
        31
    Nasei  
       2019-05-19 19:23:36 +08:00
    @kevinhwang

    入门的话, Windows 下的 WAMP 够简单了吧? 一键安装.

    docker 本身依赖 cgroups 等一些 Linux 内核特性, 所以在非 Linux 上包括 Mac 全都是以虚拟机的形式提供的. 后来 docker 和 微软合作, 也推出了原生的 Windows 容器

    Redis 是作者自己不想做 Win32 的支持. 虽然不影响 Windows 上的程序调用, 不过本机调试只能虚拟机或者用微软做的旧版了, wsl 目的之一就是为了解决这类问题
    yinzhili
        32
    yinzhili  
       2019-05-19 19:31:15 +08:00
    @kevinhwang windows 下安装 mysql 就是 4 步:下载 zip -> 解压 -> 安装为系统服务 -> 启动。如果那个人觉得这还叫难,那么建议他可以告别开发工作了,真的。
    kevinhwang
        33
    kevinhwang  
       2019-05-19 19:35:19 +08:00 via Android
    @lihongjie0209 @yinzhili 当初选择 msi 版本,较多选项,这锅怪我没选择 zip 了。
    guzzhao
        34
    guzzhao  
       2019-05-19 20:02:16 +08:00
    用多 windows 的话,这些都不是问题吧.
    iyaozhen
        35
    iyaozhen  
       2019-05-19 21:00:26 +08:00 via Android
    MySQL 无法启动,我就想起来之前有个开源项目的作者分享,有些人老是提问为什么编译不了等。他说:一个 Apache 顶级项目,怎么会编译不了呢?你说是谁的问题。

    redis 的话还情有可原,但也有一堆解决方案。
    zjsxwc
        36
    zjsxwc  
       2019-05-19 21:05:40 +08:00 via Android   ❤️ 1
    不得不说导出一个 virtualbox 虚拟机发给他们不就完事了吗?
    Qzier
        37
    Qzier  
       2019-05-19 21:12:14 +08:00 via iPhone
    小白日常黑
    Tyanboot
        38
    Tyanboot  
       2019-05-20 02:26:21 +08:00 via Android
    说起来 MySQL 启动不了这个怎么解决,全新安装的 MySQL,mysqld 初始化一半的时候进程就直接 crash 了。
    icylogic
        39
    icylogic  
       2019-05-20 08:53:35 +08:00 via iPhone
    其实我最近在想一件事,就是我本来觉得 Linux 对于这种事应该是很方便的,新人又不会碰到什么依赖性问题,直接包管理或者按官网来就好,遇到什么问题 Google + Arch Wiki 能解决大部分问题,结果一些新手装环境也装得特别蛋疼,整个系统恨不得重装三遍。

    所以是不是我们在 Linux 下配管理配得很顺手,是因为我们已经是至少在第二次做这个事了。我平时用 Linux,最近在 Windows 装点乱七八糟的开发环境,其实也很利索,因为我知道最方便稳定的途径,或者至少知道去哪里找这个途径。(而且我发现 Windows 下 msi 这种方式在某些场景下还挺方便的)
    zqguo
        40
    zqguo  
       2019-05-20 09:04:37 +08:00
    没黑到点上,这些都不是 windows 的问题。
    pierswu
        41
    pierswu  
       2019-05-20 09:50:37 +08:00
    楼主能找到问题所在并且解决,能力还是不错的
    silentstorm
        42
    silentstorm  
       2019-05-20 11:36:23 +08:00
    mysql 这样的软件难道不是一键安装吗?哪有那么复杂啊
    mmdsun
        43
    mmdsun  
       2019-05-20 19:14:45 +08:00 via Android
    MySQL 安装包不是下一步下一步就安装好了么。
    runtu2019
        44
    runtu2019  
       2019-05-24 13:03:44 +08:00
    runtu2019
        45
    runtu2019  
       2019-05-24 13:05:07 +08:00
    @Tyanboot

    mysqld --console 显示启动,会输出详细的启动 log
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1088 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:54 · PVG 02:54 · LAX 10:54 · JFK 13:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.