V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
esyed
V2EX  ›  程序员

cygwin 好用么?你们都用它来做什么?

  •  
  •   esyed · 2015-01-19 21:24:30 +08:00 · 28184 次点击
    这是一个创建于 3625 天前的主题,其中的信息可能已经有所发展或是发生改变。

    偶只用它来搞git,今天一看,居然占用了900M空间,还有各种问题:(
    又要重新安装个cygwin了,好麻烦...

    94 条回复    2015-01-27 00:25:00 +08:00
    reeco
        1
    reeco  
       2015-01-19 21:32:23 +08:00
    不好用,直接virtual box,然后putty 出来吧
    yangyanggnu
        2
    yangyanggnu  
       2015-01-19 21:39:08 +08:00   ❤️ 1
    cygwin 好用么?你们都用它来做什么?
    —— 为编译 win32 程序提供环境。我是 linux 系统,开发的代码几乎都是 linux-style 的,比如,调用的 SUS 接口,同时,我又希望我的软件具备跨平台(unix-like、windows)能力,所以,通常我将 linux-style 的源码直接拿到 windows 虚拟机中的 cygwin 中重新编译,这样,可以很方便的得到 win32 PE 文件。

    偶只用它来搞git,
    —— 我见过有人只为感受 ls 而装 cygwin 的 (°Д°) ,但,实际上这正式 cygwin 项目诞生的初衷之一:在 window 上提供 unix-like 环境。

    今天一看,居然占用了900M空间,还有各种问题:(
    又要重新安装个cygwin了,好麻烦...
    —— 只装你需要用的那些软件,我装完带 git、gcc 等等的编译环境相关软件后,大小只有 300+M 左右。
    esyed
        3
    esyed  
    OP
       2015-01-19 21:48:12 +08:00
    @reeco 开vbox干啥的?
    esyed
        4
    esyed  
    OP
       2015-01-19 21:49:56 +08:00
    @yangyanggnu 你的跨平台是通过cygwin做到的?而不是API级跨平台?
    Delbert
        5
    Delbert  
       2015-01-19 21:53:17 +08:00
    -只用它来搞git

    为什么不用msysgit?
    https://msysgit.github.io/
    reeco
        6
    reeco  
       2015-01-19 21:57:54 +08:00
    @esyed 虚拟机想装啥就装啥
    lingo233
        7
    lingo233  
       2015-01-19 22:04:03 +08:00 via iPhone
    ssh,还可以开X。比ptty好太多改个颜都那么麻烦简直不能忍。话说曾经像编个软件试试结果发现依赖缺失严重就没在弄过
    Honwhy
        8
    Honwhy  
       2015-01-19 22:05:30 +08:00
    为了nix* like环境,装了,后来又卸载了
    现在用的是vagrant + virtualbox + git bash
    omegaga
        9
    omegaga  
       2015-01-19 22:09:13 +08:00
    前提:以Windows为主要工作环境,兼顾一些日常生活需求(ssh,git等等)
    用途:
    1. 比VM稍轻,不需要开机关机。(当然,VM也可以开机后挂着用putty连过去,但从资源开销/便捷程度来讲cygwin还是有一定优势)
    2. 方便的无缝切换到Win的工作目录(/cygdrive/盘符/)
    3. 基于2,可以在Win的工作目录下写script,自动化完成一些任务。妈妈再也不担心我不会写.bat了。
    4. 提供编译环境(楼上有提到过了)
    cons:
    1. 毕竟不是整一个OS,不可能替代Linux。
    2. 原生包管理机制弱成了狗,用setup.exe来管理也是醉了。不过有apt-cyg之类的东西,还不算没救。
    jecvay
        10
    jecvay  
       2015-01-19 22:09:32 +08:00
    用ssh连上自己的虚拟机简直是最佳选择!!!!!!!!!!!
    intosec
        11
    intosec  
       2015-01-19 22:19:24 +08:00
    1.cygwin有一定的跨平台优势,某些Linux下的工具可以直接移植过来。
    2.部分python的工具在cmd下不能正常输出中文,但是放到cygwin下就完美兼容,所以就干脆用cygwin做终端了。
    3.cygwin复制粘贴的快捷键好用到哭,比cmd下鼠标右键,标记,粘贴操作半天要快捷得多
    4.cygwin可以换字体,这逼格一下就上去了。
    pi1ot
        12
    pi1ot  
       2015-01-19 22:32:18 +08:00
    切换到osx之前主要靠cygwin来共用linux环境下的日常脚本工具
    bluesky139
        13
    bluesky139  
       2015-01-19 22:48:20 +08:00 via Android
    可以在win下用很多linux的命令,还是很方便的。
    lujiajing1126
        14
    lujiajing1126  
       2015-01-19 22:55:04 +08:00
    用来模拟unix环境还算好,不过bug和坑太多
    曾经用cygwin编译成功过nginx,但是编译php没成功
    esyed
        15
    esyed  
    OP
       2015-01-19 23:02:42 +08:00
    @omegaga apt-cyg你用过么?赶脚如何?
    esyed
        16
    esyed  
    OP
       2015-01-19 23:03:01 +08:00
    @lujiajing1126 都进过哪些坑呢?
    evlos
        17
    evlos  
       2015-01-19 23:04:16 +08:00 via iPhone
    只用来临时 git 或者 ssh
    esyed
        18
    esyed  
    OP
       2015-01-19 23:04:41 +08:00
    @Honwhy vagrant内存消耗厉害么?
    lujiajing1126
        19
    lujiajing1126  
       2015-01-19 23:07:37 +08:00
    @esyed
    安装就很难。。这么多源就没几个能用的,几乎靠碰运气
    对于盘符的表示在那里面有很奇怪的方法好像是/cygdriver/c之类的
    还有的bash脚本会莫名报错
    msysgit和另一个啥的git不能同时安装。。否则bower会认不出git
    。。时间太久远了早不记得了
    onlyice
        20
    onlyice  
       2015-01-19 23:11:46 +08:00
    用来用 ls, grep。。
    yksoft1
        21
    yksoft1  
       2015-01-19 23:11:57 +08:00
    我长期用老的MSYS编译ffmpeg自用,08年刚接触ffmpeg的时候发现Cygwin因为要写注册表,要拖大DLL就放弃了
    wuhuaji
        22
    wuhuaji  
       2015-01-19 23:19:59 +08:00
    觉得不太好用,别扭,直接双系统更直接。
    hjc4869
        23
    hjc4869  
       2015-01-19 23:21:09 +08:00
    一般吧,之前为了编译ffmpeg搞过,失败了几次,后来还是放弃了,用了msys。。
    需要linux测试环境可以在Azure上开个虚拟机解决。。方便,快捷,效率。本地的网络环境实在是不适合apt-get/yum,太慢了……服务器上动辄百兆千兆的带宽随便用,那速度。。
    endoffight
        24
    endoffight  
       2015-01-19 23:30:48 +08:00 via Android
    配合cmder使用,感觉还不错!
    Honwhy
        25
    Honwhy  
       2015-01-19 23:31:59 +08:00
    @esyed 你怎么会有这种想法,vagrant谈不上消耗内存吧,它是命令组合,主要功能还是虚拟机系统的,和一般安装虚拟机系统差别在于,提供命令管理虚拟机系统了(up, off, ssh等)
    esyed
        26
    esyed  
    OP
       2015-01-19 23:35:47 +08:00
    @Honwhy 可以直接操作windows路径么?
    esyed
        27
    esyed  
    OP
       2015-01-19 23:36:18 +08:00
    @yksoft1 现在还在用Msys么?
    看视频用自己编译的ffmpeg么?
    难道通过命令行看视频?
    Narcissu5
        28
    Narcissu5  
       2015-01-19 23:47:49 +08:00
    话说用cygwin编译真的有意义么,毕竟花了大价钱卖了windows server,最后就得到个这么个玩意儿。。
    heyf
        29
    heyf  
       2015-01-19 23:49:41 +08:00
    @lujiajing1126 有浙大和中大的开源镜像…不能用谈不上吧

    http://mirrors.zju.edu.cn/
    http://mirror.sysu.edu.cn/
    Honwhy
        30
    Honwhy  
       2015-01-19 23:49:47 +08:00
    @esyed 不可以,操作的是虚拟机。
    xpol
        31
    xpol  
       2015-01-19 23:57:37 +08:00   ❤️ 1
    @yksoft1 @hjc4869 msys+1 一直对Cygwin无爱。
    esyed
        32
    esyed  
    OP
       2015-01-20 00:21:29 +08:00
    @Honwhy windows可以访问vagarent里面的文件夹?
    esyed
        33
    esyed  
    OP
       2015-01-20 00:21:51 +08:00
    @xpol 你用Msys做啥?msys git好像没cyg快
    9hills
        34
    9hills  
       2015-01-20 00:24:17 +08:00
    @esyed vagrant 默认会把当前目录mount到虚拟机的/vagrant 目录。。很方便。

    话说Cygwin坑太多,于是我换 Git-bash(简单Cli) + Vagrant(复杂开发环境)了
    见: https://www.v2ex.com/t/162917
    esyed
        35
    esyed  
    OP
       2015-01-20 00:28:15 +08:00
    @9hills vag一般要消耗多少内存?
    9hills
        36
    9hills  
       2015-01-20 00:29:50 +08:00
    @esyed 起一个无GUI的Linux Server,占用内存也就200M左右。。基本可以忽略不计。。CPU也就百分之几
    9hills
        37
    9hills  
       2015-01-20 00:30:44 +08:00
    @esyed 下Server版的,别带GUI。。。这样非常省。没看那些VPS 64M内存都敢拿出卖么。。虚拟机再矬,也比这些VPS强多了。。
    esyed
        38
    esyed  
    OP
       2015-01-20 00:39:10 +08:00
    @9hills 可以在vag里跑ubuntu 桌面版本?
    zionst
        39
    zionst  
       2015-01-20 00:41:41 +08:00 via Android
    工作需要会移植一些库。多用mingw+msys2只支持posix只好cygwin了
    esyed
        40
    esyed  
    OP
       2015-01-20 00:46:57 +08:00
    @zionst cygwin除了posix还支持啥?
    9hills
        41
    9hills  
       2015-01-20 00:47:03 +08:00
    @esyed 跑Xfce或者LXDE的桌面还行。。LUbuntu/XUbuntu
    跑GNOME3/Unity/KDE 就有点作,但是其实也还对凑,只是没必要。。占的内存和CPU也多

    为啥要跑桌面版本呢,Linux桌面这么烂。。用终端就好了
    esyed
        42
    esyed  
    OP
       2015-01-20 01:51:51 +08:00
    @9hills 界面还是vbox跑出来的吧?vag调用Vbox?
    KentY
        43
    KentY  
       2015-01-20 02:16:00 +08:00 via iPhone
    没win,在Linux里装个vbox,vbox里装个win,在win 里装cywin,然后ssh host日常工作:)

    我不这么用,只是下班路上没事开玩笑
    esyed
        44
    esyed  
    OP
       2015-01-20 02:41:55 +08:00
    @KentY 第一句是开玩笑?
    clowwindy
        45
    clowwindy  
       2015-01-20 03:51:14 +08:00   ❤️ 1
    shadowsocks-csharp 带的 dll 和 polipo.exe 都是在 Debian 下面编译的。
    esyed
        46
    esyed  
    OP
       2015-01-20 04:22:23 +08:00
    @clowwindy 你在debian里跑了vbox,vbox里跑windows?
    puncsky
        47
    puncsky  
       2015-01-20 05:20:35 +08:00
    这时候你需要Gow - The lightweight alternative to Cygwin,Cygwin如此肥大,何苦难为自己
    Keinez
        48
    Keinez  
       2015-01-20 05:48:35 +08:00 via Android
    我花了整整三天来折腾cygwin,最后一怒之下装了个vm用上了osx…
    xbb7766
        49
    xbb7766  
       2015-01-20 06:43:57 +08:00
    曾经想编译win的ffmpeg,结果cygwin下弄了半天还是不行。最后老老实实回到linux下交叉编译……
    clino
        50
    clino  
       2015-01-20 08:07:45 +08:00 via Android
    @esyed msys的git慢是因为带的ssh版本太低有问题,我之前找到版本高的替换就好了
    XDA
        51
    XDA  
       2015-01-20 08:11:19 +08:00 via Android
    自己组一个小内网,2台工作机加一台组内服务器,工作机是iMac和品牌台式机装Debian,总觉得Cygwin不伦不类
    red827
        52
    red827  
       2015-01-20 08:13:24 +08:00
    以前用过,为了一些linux的脚本命令
    后来用了Gow配合ConEmu,就再也没装过
    yangyanggnu
        53
    yangyanggnu  
       2015-01-20 08:48:07 +08:00
    @esyed

    你的跨平台是通过cygwin做到的?而不是API级跨平台?
    —— 对的,不可能自己人肉 API 跨平台,工作量太大,要么用 wxwdiget 这类封装好的跨平台库,要么就用 cygwin 这类跨平台构建环境。
    icylord
        54
    icylord  
       2015-01-20 09:04:57 +08:00
    用来执行 $(NDK_ROOT)/ndk-build
    hjc4869
        55
    hjc4869  
       2015-01-20 09:11:52 +08:00 via iPhone
    @xbb7766 ffmpeg应该用msys+vc13+yasm那一套。。。这是我见过的最简便的方法。
    Honwhy
        56
    Honwhy  
       2015-01-20 09:23:55 +08:00
    @esyed Linux系统的/vagrant路径映射到windows本地了,这个相当于共享目录,放在在windows用IDE开发,在linux下运行。
    facat
        57
    facat  
       2015-01-20 09:40:56 +08:00
    非常不好用,在cygwin编译各种错误。
    jsfaint
        58
    jsfaint  
       2015-01-20 09:43:16 +08:00
    楼主既然你不需要cygwin,为啥不安装msysgit?
    zionst
        59
    zionst  
       2015-01-20 10:01:21 +08:00
    @esyed 我感觉它的作用只是补缺而已,仅解决了Windows下没有POSIX环境的问题。实际上在Linux下直接交叉编译省事多了
    neutrino
        60
    neutrino  
       2015-01-20 10:24:45 +08:00
    @facat cygwin编译通过的到ubuntu下-lib又不对了。。
    jatsz
        61
    jatsz  
       2015-01-20 10:27:56 +08:00
    如果你必须在Windows工作Cygwin是最无缝和轻量级的。前提是你必须掌握和喜欢使用*nix下的常用命令。

    我使用Cygwin超过5年,其实最常用的就是那几个小命令:
    $grep -inr "" #找代码的神奇,比如你看到一个bt,打印出了出错名,直接一搜立马找到文件和行数。
    $git st|cm|diff #三种平台下使用Git的方式是一模一样的。
    $history | cut -c 8- | sort | uniq -c | sort -r | head #类似这样的命令组合
    $wget http://example/a.gz
    $curl -I douban.com

    Cygwin统一了三种平台的开发体验,提高了效率。让你得心应手的哪些*nix命令在Windows下为你服务。
    0987363
        62
    0987363  
       2015-01-20 10:28:15 +08:00
    不好用,一向直接虚拟机。 方便多了
    jatsz
        63
    jatsz  
       2015-01-20 10:35:08 +08:00
    补充一下
    1,别把Cygwin当作*nix的环境来用,如果需要环境,可能vagrant+vbox才是你的菜。
    2,如果你确实只需要在Windows下做*nix的环境来用,mingw才是你的菜,Cygwin太重了。
    3,把Cygwin当做你的工具来用。比如你ssh,这个private key的设置,跟*nix下的一样,putty什么的都不用了。*nix下的工具直接可用。
    cpp255
        64
    cpp255  
       2015-01-20 10:50:30 +08:00
    以前再 Win 下用过,感觉各种搓,最后还是切换回 Linux、Mac了
    mengzhuo
        65
    mengzhuo  
       2015-01-20 11:11:00 +08:00
    @esyed

    有种东西叫交叉编译……
    picasso250
        66
    picasso250  
       2015-01-20 12:16:08 +08:00
    I used to write a script to find Fastest Cygwin Mirror (PHP)
    http://picasso250.github.io/2014/11/21/fast-cygwin-mirror.html
    linhua
        67
    linhua  
       2015-01-20 12:27:54 +08:00
    曾经想把gentoo portage装在cygwin里,结果没成功。感觉也没必要了,与其研究在windows下实现linux的功能,不如研究怎样在linux下运行windows的专有软件。喜欢在win下折腾的可参考
    Gentoo Prefix Cygwin http://wiki.gentoo.org/wiki/Gentoo_Prefix_Cygwin
    loryyang
        68
    loryyang  
       2015-01-20 15:01:30 +08:00
    机器能力不行,装不了虚拟机,然后搞个cygwin做一些事情,比如用linux的命令处理文本之类的
    qanniu
        69
    qanniu  
       2015-01-20 15:38:23 +08:00
    我也有您的困惑,当初选colinux or vps ,colinux 满足你的要求,现在可用一台android 旧手机,装ubuntu
    xierch
        70
    xierch  
       2015-01-20 15:53:27 +08:00
    用的最多的是 ssh / mosh / scp 吧..
    偶尔运行一下 easyrsa 的 bash 脚本
    ticat
        71
    ticat  
       2015-01-20 16:10:30 +08:00
    cygwin主要就是有一个类linux的shell环境。其实msys和cygwin基本是一个东西。
    另外最近发现MSYS2不错,移植了pacman作为包管理。并且似乎扔掉了cygwin里面不太用得着的包,就是不知道能不能用AUR,能的话就强大了。

    这里抛个砖,其实我觉得限制于window下的开发必须准备三套环境。
    1 基于x86/x64本地环境的开发工具,例如VS2013,native的eclipse,IDEA,native的Java、Python、ruby等。如果要用命令行就是cmder+clink+GnuWin32之类的。用来做windows平台的开发,有史上最强IDE,性能有保证。但是命令行就只能将就一下,连个新版本的git都没有。
    2. 基于cygwin模拟层的cygwin/msys/msys2等工具。他们都模拟了在window上模拟了POSIX层,使得常见的Linux应用可以再windows上运行起来。一些复杂的CLI工具如VIM、zsh,git都可以基本全功能的跑起来,而且和window文件系统结合的不错,软件版本也跟的很紧。这一层的问题就是比较慢,其实直接用当做工具用比较合适,你要是想要做开发,速度和可靠性都有问题。
    3. vagrant+vbox+你喜欢的发行版。原汁原味的Linux环境,想怎么搞怎么搞。优点就是速度快、系统开销也比较小,如果想开GUI得时候修改VangrantFile也可以有图形界面。问题是和windows文件系统的文件交换比较麻烦,要通过/vagrant目录转一下。
    9hills
        72
    9hills  
       2015-01-20 16:32:46 +08:00   ❤️ 1
    @ticat 赞MSYS2,马上卸掉我的git for windows ...
    kqz901002
        73
    kqz901002  
       2015-01-20 18:03:59 +08:00
    @9hills 正在折腾msys2,感觉比cygwin好
    garfeildma
        74
    garfeildma  
       2015-01-20 18:06:51 +08:00
    haichang417
        75
    haichang417  
       2015-01-20 18:29:01 +08:00
    果断vagrant+virtualbox啊,可实现跨平台的开发运行环境。
    xpol
        76
    xpol  
       2015-01-20 20:20:06 +08:00
    @esyed 编译一些开源库。
    precisi0nux
        77
    precisi0nux  
       2015-01-20 20:55:58 +08:00
    楼主用下vagrant吧,我习惯保持主系统干净,虚拟机随意折腾。
    exch4nge
        78
    exch4nge  
       2015-01-21 09:26:14 +08:00
    我装了个portable的Cygwin,装在我的U盘里。目的是为了带着U盘找个任何Windows的电脑就能用上我熟悉的一些cmd命令或软件(类似vim啊,python啊,git啊等等……)。当然里面还装了很多portable的windows软件。

    PS:搞Cygwin的git与Windows git混用的时候,遇到了line-ending的坑……

    PS:为了这个我还专门买了U盘,怎知过一个月后这U盘开始促销……降成半价了……
    leavic
        79
    leavic  
       2015-01-21 13:21:46 +08:00
    用cygwin可以很方便的用sed,grep这些linux命令
    yksoft1
        80
    yksoft1  
       2015-01-21 21:09:01 +08:00
    @esyed 不好意思我就是用命令行下的mplayer和ffplay看视频
    esyed
        81
    esyed  
    OP
       2015-01-21 21:45:48 +08:00
    @yksoft1 那么多参数能记住么,亲:)
    yksoft1
        82
    yksoft1  
       2015-01-21 22:01:33 +08:00
    @esyed 把常用的参数写成脚本即可
    esyed
        83
    esyed  
    OP
       2015-01-22 00:45:11 +08:00
    @yksoft1 为何不用GUI播放器,如KMPlayer呢?
    yksoft1
        84
    yksoft1  
       2015-01-22 10:40:38 +08:00
    @esyed 早已习惯了。
    esyed
        85
    esyed  
    OP
       2015-01-22 16:37:50 +08:00
    @yksoft1 ffmpeg命令行参数很多,你都熟悉了?
    yksoft1
        86
    yksoft1  
       2015-01-22 18:48:39 +08:00
    @esyed 熟悉需要用到的就可以了
    yksoft1
        87
    yksoft1  
       2015-01-22 18:50:19 +08:00
    @esyed 不知道的需要的时候现查,每次自己编译都要生成一份文档在本地
    esyed
        88
    esyed  
    OP
       2015-01-22 23:59:33 +08:00
    @yksoft1 编译啥?生成啥文档?你搞多媒体的?
    yksoft1
        89
    yksoft1  
       2015-01-23 00:47:36 +08:00
    @esyed 编译libvpx+libx264+libx265等常更新有必要更新的库,ffmpeg+gpac+mplayer等压制播放工具集啊
    ffmpeg和mplayer目录里有一套texi 可以用于自己生成文档
    我不是程序员但拥有程序员的一些技能
    esyed
        90
    esyed  
    OP
       2015-01-23 01:51:54 +08:00
    @yksoft1 亲是干啥的?有闲情捣鼓ffmpeg?
    yksoft1
        91
    yksoft1  
       2015-01-23 16:28:30 +08:00
    @esyed 干啥都可以找出闲情啊
    clowwindy
        92
    clowwindy  
       2015-01-23 20:55:03 +08:00
    @esyed
    就是在 debian 下直接编译的,Windows 下面配环境太麻烦

    apt-get install build-essential mingw-w64
    ./configure --host=i686-w64-mingw32
    make
    esyed
        93
    esyed  
    OP
       2015-01-26 16:47:53 +08:00
    @clowwindy 你编译的东西,在一台win7上好像报错了,跑步起来.
    clowwindy
        94
    clowwindy  
       2015-01-27 00:25:00 +08:00
    @esyed 报什么错呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3611 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:57 · PVG 08:57 · LAX 16:57 · JFK 19:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.