Ответ 1
Cygwin - это библиотека, которая пытается сделать UNIX-программы способными скомпилировать и запустить в системах Windows с минимальными или никакими изменениями и полный набор упакованных инструментов и приложений UNIX, скомпилированных в этой библиотеке. Это почти полная оболочка вокруг Windows. Он включает в себя X-сервер и множество программ, которые вы можете найти в дистрибутиве Linux. Это отлично подходит для людей, которые хотят изучить или использовать командную строку UNIX в Windows.
MSYS - это, в основном, порт инструментов UNIX, необходимых для создания пакетов стиля GNU (с configure
и т.д.) в системах Windows с компилятором MinGW. Он использует вариант библиотеки Cygwin, модифицированный, чтобы пожертвовать некоторой совместимостью для повышения эффективности и более удобен для Windows.
GnuWin32 - это просто порт некоторых из инструментов GNU для Windows. Как и MSYS, он использует msvcrt.dll
, а также дополнительную библиотеку для предоставления некоторых функций совместимости UNIX. Его основная цель состоит в том, чтобы позволить программам Windows и пакетным файлам напрямую использовать некоторые из программ и библиотек GNU.
По большей части все они предоставляют UNIX-программы в Windows, но есть много тонких отличий, в том числе:
- Intent. Cygwin предназначен для людей, которые хотят использовать UNIX в ОС Windows. MSYS предназначен для людей, которые хотят создавать программы Windows с использованием инструментов сборки GNU/UNIX. GnuWin32 - это порт отдельных программ и библиотек GNU для Windows.
- Текстовые файлы, в частности окончания строк. Cygwin позволяет использовать CR/LF или LF. MSYS ожидает окончания линии LF. Программы GnuWin32 ожидают окончания строк CR/LF.
- Поставляемые программы. В частности, у Cygwin гораздо больше пакетов, и GnuWin32 не предоставляет никаких оболочек.
Что касается git, он доступен с Cygwin - эта версия может использоваться в каталоге Windows (доступной в /cygdrive
). Кроме того, как уже упоминалось, msysgit.