我似乎搞不懂这两者之间的区别。
其中一个(GNUWin32)似乎是窗口(如MSYS)之上的一层,而
其他(cygwin)是其他东西(?)
那是什么意思?什么时候我会使用其中一个而不是另一个呢?它们是否都适用于同一件事?
我想把它主要用在git上,但也想保留我的选择,以便学习和做所有事情*nixy。
有没有其他工具可以解决这个问题?msysgit会更适合这方面吗?
有没有什么资源详尽地介绍了所有这些*nix平台的差异?
发布于 2012-05-23 11:16:57
Cygwin是一个致力于使UNIX程序能够在Windows系统上编译和运行的库,它只需最少的修改或不需要修改,并且是一套全面的打包的UNIX工具和应用程序,使用这个库编译。它几乎是Windows的一个完整的包装器。它包括一个X服务器和大量在Linux发行版中可以找到的程序。对于想要在Windows中学习或使用UNIX命令行的人来说,这是非常棒的。
MSYS主要是使用MinGW编译器在Windows系统上构建GNU风格的包(使用configure等)所必需的UNIX工具的一个端口。它使用Cygwin库的一个变体进行了修改,牺牲了一些兼容性来提高效率,而且对Windows更加友好。
GnuWin32仅仅是一些GNU工具在Windows上的一个移植。与MSYS一样,它使用msvcrt.dll以及一个附加库来提供一些UNIX兼容性功能。它的主要目的似乎是允许Windows程序和批处理文件直接使用一些GNU程序和库。
在大多数情况下,它们都在Windows上提供UNIX程序,但有许多细微的差异,包括:
至于git,它可以在Cygwin中使用-这个版本可以在Windows目录下使用(可以在/cygdrive下访问)。另外,正如前面提到的,还有msysgit。
发布于 2020-11-18 18:23:28
迈克尔·斯莱德是对的。我想谈谈典型的使用环境。
出于实际原因,我使用gnuwin作为仅与POSIX环境远程相关的内容的轻量级后端,而cygwin更像是一个成熟的POSIX,甚至是一个非常gnuwin的环境。
此外,在安装大量工具时,gnuwin往往会变得臃肿,因为可执行文件经常使用静态链接库。另一方面,Cygwin提供了大量的动态库和相当小的可执行文件。因此,如果你只需要几个可执行文件,那么gnuwin需要更少的资源。如果你需要一个复杂的环境,那么cygwin会更有效率。
gnuwin通常也有点过时,提供的软件很少,没有包/更新管理器。它是一个基本的shell环境。没有ssh,没有gcc,没有vim,没有perl,没有sql --你可以从其他地方得到这些,但它们如何合作很难预测。Cygwin解决了上述所有问题。
换句话说,gnuwin对于偶尔安装的人来说是很棒的,只需在你的$PATH中放置du,查找和排序即可。要执行一些实际的POSIX工作,请使用cygwin。
我曾经有过第二个Linux工作站,然后在我的windows系统旁边运行了一个Linux虚拟机。Cygwin让他们过时了。与专用计算机或虚拟机相比,它在节省大量资源的同时,已经足够好用了。
https://stackoverflow.com/questions/10712550
复制相似问题