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

Git for Windows 和 MinGW 的冗余问题

  •  
  •   YyYyYyy · 2017-10-12 21:21:46 +08:00 · 3372 次点击
    这是一个创建于 2632 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统 Windows7。
    之前在 V 友的指导下开始看《程序员的自我修养》,由于用 dumpbin 研究 PE 格式不方便参照书上的某些例子,所以想着下个 GCC 用。但是一直在用的 Git for Windows 2.x 是基于 MSYS2 的,再安装 MinGW 又引入了 MSYS。所以说 ssh,ls,grep 这些 GNU utils 在电脑里相当于有了两份(尤其是 ssh )?存在解决方案去避免这个冗余吗?

    PS:如果可能,暂时不考虑使用 Cygwin
    PS:真奇怪,发现 C/C++这个节点居然不是编程的子节点,有特殊原因?

    第 1 条附言  ·  2017-10-14 21:50:16 +08:00

    感谢各位的解答。

    经过这两天的捣鼓,我算是比较明白MSYS,MSYS2,MinGW还有MinGW-w64的区别了。
    并且最重要的是我发现等我把MSYS2装好并接入cmder后才意识到我弄的和我真正的需求完全反了:

    我不想用bash和linux那套文件系统!我只想在cmder里用cmd.exe调用Unix的各种原生移植工具集!

    由于装了Git for windows后它把自带的MSYS2的GNU coreutils所在路径加在了PATH里,所以其实我一直是跳过了MSYS2的shell直接用的里面的utils,$HOME用的也一直是C:\Users[Name]。现在默认从MSYS2下的home开始,cmder的各种feature也缺胳膊少腿(随地Cmder here失效,alias得自己重新加,PATH不全),甚是不适……

    只怪当时下的MinGW安装器会自动安MSYS,没想到还有个MinGW-w64有提供单独的win-build,早知道不用这么折腾了(折腾cmder里如何接入MSYS2的bash花费了我大量的时间,不过也算有学到东西。)

    如果有类似需求的朋友可以参考下#13贴的链接,重点在最后几行:

    如果不愿意使用 Cygwin 或者 MinGW 这种 ”重型“ 的 port,又喜欢 unix 下的工具链,那么可以尝试一下下面> 几个原生移植工具集:

    GNU utilities for Win32
    CoreUtils for Windows 或者 完整的 package
    dd for windows
    Unix ports - WHICH, TEE & CUT

    13 条回复    2017-10-13 23:31:15 +08:00
    wsy2220
        1
    wsy2220  
       2017-10-12 21:26:40 +08:00   ❤️ 2
    直接安装 MSYS2, 用内置的 pacman 管理各种软件,包括 git

    http://www.msys2.org/
    wsy2220
        2
    wsy2220  
       2017-10-12 21:28:04 +08:00   ❤️ 1
    ustc 还有 msys2 的镜像源
    https://mirrors.ustc.edu.cn/msys2/
    icedx
        3
    icedx  
       2017-10-12 21:29:21 +08:00   ❤️ 1
    没有必要 保持 MinGW 的环境变量排序在 Git2Win 前边就好
    lslqtz
        4
    lslqtz  
       2017-10-12 21:41:34 +08:00
    我 git 上在使用 mingw,其它的平时用 cygwin
    两份就两份吧。。用一个就好了
    onemoo
        5
    onemoo  
       2017-10-12 22:15:59 +08:00
    如 @wsy2220 #1 所说。
    既然用了 MSYS2 也就没有必要额外安装 MinGW 了,你可以安装 MSYS2 源中的 mingw (有 32 和 64 位两个版本,任选其一吧)。
    gnaggnoyil
        6
    gnaggnoyil  
       2017-10-12 22:35:42 +08:00
    把 git for windows 给扔了,直接用 msys2 的 git.

    git 最要命的问题是它即使在 windows 下也是直接从%PATH%中找能用的 posix shell,所以 git for windows 和 msys2 下的 git 同时安装的话就全都乱套了.
    jin7
        7
    jin7  
       2017-10-12 23:18:11 +08:00
    我已经治好了这个强迫症.

    像一些 java 桌面软件都自带了 jre 呢. 很多重复的东西吧.
    cappuccinos
        8
    cappuccinos  
       2017-10-12 23:20:44 +08:00 via iPhone
    学习了
    lrxiao
        9
    lrxiao  
       2017-10-13 01:42:52 +08:00
    习惯了..Haskell Platform Git 各装了一遍 mingw 还搞 PATH..有一阵 pip 是 Anaconda 的 python 是 Haskell Platform 带的 神秘的不行
    Cooky
        10
    Cooky  
       2017-10-13 07:18:09 +08:00 via Android
    你说的那个 mingw 已经是废弃的了……
    mooncakejs
        11
    mooncakejs  
       2017-10-13 07:45:23 +08:00 via iPhone
    wsl linux 终端也可以直接运行 exe
    jyf007
        12
    jyf007  
       2017-10-13 08:54:15 +08:00
    yes|pacman -S `pacman -Ss|sed -n 'p;n'|awk '{print $1}'|awk -F\/ '!/\qt4|vulkan-header|vulkan-docs|gnu-netcat|3proxy|breakpad-svn|clang-analyzer35|clang-too
    ls-extra35|clang35|mypaint|gtest|llvm35|pidgin-hg|xpdf/{printf $2" "}'`&&yes|pacman -S vulkan-docs&&yes|pacman -Syu
    lzjamao
        13
    lzjamao  
       2017-10-13 23:31:15 +08:00 via Android   ❤️ 1
    mingw 官网中说配合使用 msys 会更好。但是各种缺陷和折腾。
    如果在 Windows 上模拟 Unix,使用 msys2 会更好(注意区别 msys)
    参考大神的文章 https://blog.zengrong.net/post/1557.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2847 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:27 · PVG 19:27 · LAX 03:27 · JFK 06:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.