V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
YyYyYyy
V2EX  ›  C

Git for Windows 和 MinGW 的冗余问题

  •  
  •   YyYyYyy · Oct 12, 2017 · 3907 views
    This topic created in 3121 days ago, the information mentioned may be changed or developed.

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

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

    Supplement 1  ·  Oct 14, 2017

    感谢各位的解答。

    经过这两天的捣鼓,我算是比较明白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 replies    2017-10-13 23:31:15 +08:00
    wsy2220
        1
    wsy2220  
       Oct 12, 2017   ❤️ 2
    直接安装 MSYS2, 用内置的 pacman 管理各种软件,包括 git

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

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

    像一些 java 桌面软件都自带了 jre 呢. 很多重复的东西吧.
    cappuccinos
        8
    cappuccinos  
       Oct 12, 2017 via iPhone
    学习了
    lrxiao
        9
    lrxiao  
       Oct 13, 2017
    习惯了..Haskell Platform Git 各装了一遍 mingw 还搞 PATH..有一阵 pip 是 Anaconda 的 python 是 Haskell Platform 带的 神秘的不行
    Cooky
        10
    Cooky  
       Oct 13, 2017 via Android
    你说的那个 mingw 已经是废弃的了……
    mooncakejs
        11
    mooncakejs  
       Oct 13, 2017 via iPhone
    wsl linux 终端也可以直接运行 exe
    jyf007
        12
    jyf007  
       Oct 13, 2017
    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  
       Oct 13, 2017 via Android   ❤️ 1
    mingw 官网中说配合使用 msys 会更好。但是各种缺陷和折腾。
    如果在 Windows 上模拟 Unix,使用 msys2 会更好(注意区别 msys)
    参考大神的文章 https://blog.zengrong.net/post/1557.html
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5345 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 120ms · UTC 07:12 · PVG 15:12 · LAX 00:12 · JFK 03:12
    ♥ Do have faith in what you're doing.