Что такое Cygwin и как её установить на Windows
Cygwin — это Linux-подобная среда для систем на базе Windows. Он состоит из эмулятора и набора инструментов, которые обеспечивают возможность работы на Linux в среде Windows.
Cygwin состоит из DLL cygwin1.dll , которая действует как уровень эмуляции, обеспечивающий функциональность системного вызова POSIX через Windows. С Cygwin пользователи имеют доступ к стандартным утилитам UNIX, которые могут использоваться либо из предоставленной bash-оболочки, либо через командную строку Windows.
Кроме того, она предоставляет программистам поддержку в использовании Win32 API вместе с Cygwin API, позволяя переносить утилиты UNIX в Windows без особых изменений исходного кода.
Преимущества Cygwin по сравнению с командной строкой/WSL
Существует ряд преимуществ использования оболочки Cygwin по сравнению с командной строкой Windows. Ниже перечислены некоторые из основных:
- Предоставляет оболочку UNIX для Windows, обеспечивая доступ к целому ряду утилит от UNIX/Linux до Windows.
- Нет необходимости устанавливать полноценную ОС Linux или настраивать виртуальную машину, когда ресурсов, доступных через Cygwin, может быть достаточно.
- Оптимальное использование ресурсов и системные требования для работы в Windows, поскольку среда эмулируется и работает поверх Windows.
- Идеально подходит для тестирования/разработки, когда требуется использовать утилиты UNIX/Linux в Windows.
- Совместим со старыми ОС Windows, такими как Windows 7 и т.д., тогда как среда WSL, предлагаемая Windows, поддерживается только в более новых версиях.
Как скачать
Чтобы загрузить последнюю версию Cygwin, перейдите по этой ссылке на ее официальный сайт. Можно загрузить версию, под установленную версию Windows и архитектуры системы. 32-разрядную версию можно скачать тут, а 64-разрядную — тут.
Установка
Запустите скачанный файл с предыдущего шага. Подтвердите все запросы и предупреждения, отображаемые на экране компонентом UAC Windows. После прохождения этого квеста, будет запущена программа установки, как показано ниже.
Появится запрос на выбор источника загрузки. В большинстве случаев параметр по умолчанию «Install from Internet» (Установить из Интернета) подходит и ничего изменять не приходится. Если у вас есть локальный загруженный репозиторий или вы просто хотите загрузить и установить Cygwin позже, выберите один из других доступных вариантов. Для продолжения нажмите «Далее».
В следующем окне предлагается указать «Root Directory» для установки, а также указать, будет ли она установлена для всех пользователей «All Users» или только для вас «Just Me». Если довольны значениями по умолчанию, то нажмите кнопку «Далее», чтобы продолжить установку.
Чтобы загрузить файлы пакета, программа установки попросит вас указать «Локальный каталог пакетов». По умолчанию указывается папка «Загрузки». Если требуется указать другое расположение, укажите путь к нему и нажмите кнопку «Далее», чтобы продолжить настройку.
В большинстве случаев для загрузки пакетов следует использовать параметр «Using System Proxy Settings». Если вы не хотите использовать прокси-сервер и использовать прямое подключение к Интернету, выберите параметр «Direct Connection», также есть возможность указать пользовательские параметры прокси-сервера, если таковые существуют. Для продолжения установки нажмите «Далее».
Затем программа предложит выбрать зеркало, откуда Cygwin загрузит файлы пакета. Чтобы обеспечить более высокую скорость загрузки, лучше выбрать зеркало, которое географически расположено ближе. Если вы не знаете что выбрать, выберите любое зеркало из списка и нажмите «Далее», чтобы продолжить.
Cygwin предоставляет множество утилит на базе UNIX/Linux, работающих под управлением Windows. Не все пакеты устанавливаются по умолчанию. Устанавливается только минимальный набор важных пакетов. На этом шаге можно настроить Cygwin, выбрав/убрав различные категорий пакетов. Помните, что добавить или удалить пакеты в Cygwin можно и позже. Если у вас есть конкретный список важных пакетов для вашей работы, вы можете выбрать их сейчас и продолжить, нажав «Далее».
На следующем экране отображается список выбранных пакетов с запросом на просмотр и подтверждение. Нажмите «Далее» для подтверждения и продолжения.
Выбранные пакеты начнут загружаться, и это может занять некоторое время в зависимости от скорости выбранного зеркала загрузки и количества выбранных пакетов.
После загрузки всех пакетов программа продолжит установку пакетов.
После завершения установки появится возможность создания значков на рабочем столе и в меню «Пуск» для упрощения доступа. По завершении нажмите кнопку «Готово», чтобы закончить работу мастера установки.
Теперь можно запустить Cygwin, через поиск в меню «Пуск», как показано выше, или дважды щелкнув значок на рабочем столе (если он был создан во время установки).
Оболочка Cygwin поддерживает обычно используемые команды UNIX/Linux. Если какая-либо команда не работает, можно повторно запустить программу установки и выбрать отсутствующий пакет, если он доступен в репозитории Cygwin (пример — Ansible), и установить его. Установленная команда теперь должна стать доступной как обычная команда в CLI оболочки Cygwin.
Заключение
Cygwin — полезная утилита, обеспечивающая оболочку UNIX/Linux, эмулированную в среде Windows. Он облегчает перенос определенных приложений в Windows и позволяет разрабатывать и использовать скрипты на основе Linux в Windows для различных задач. Его установка так же проста, как и любая программа на базе Windows с настройкой на основе графического интерфейса пользователя.
Дополнительную информацию о Cygwin можно найти здесь. Подробные инструкции по использованию можно найти в разделе часто задаваемых вопросов и руководстве пользователя.
Cygwin
Cygwin — UNIX-подобная среда и интерфейс командной строки для Microsoft Windows.
Установка Cygwin
Скачайте установщик вашей разрядности. (После установки он пригодится для доустановки пакетов.)
Выберите следующие пакеты:
Использование Cygwin
Запуск GUI-приложений
Установка Xming
Для запуска GUI приложений нужен X-сервер Xming.
Скачиваем и устанавливаем его.
Настройка X.org
Открываем терминал Cygwin. (C:\Cygwin\cygwin.bat)
nano ~/.bachrc
В конец дописываем
export DISPLAY=:0.0
Запускаем Xmig, перезапускаем Cygwin и стартуем любые GUI приложения.
Установка Xfce
Открываем установщик Cygwin, ставим следующие пакеты:
- xfdesktop
- xfce4-session
Учитывая, что у вас уже запущен Xmig открываем консоль cygwin и запускаем xfce следующей командой:
xfce4-session
Если не работает, введите:
startx
Ffmpeg и скрипты
Если вы хотите в Windows воспользоваться ffmpeg, то через cmd.exe после linux выполнять команды будет неудобно.
- Скачатьархив с ffmpeg
- из папки bin извлечь в любую папку файл ffmpeg.exe
- в свойства системы> переменные среды> системные переменные> path> добавить «; путь до ffmpeg«
- открыть Cygwin-terminal
- формируйте в linux-формате с windows-адресом команду для конвертирования.
- терминал cygwin при копировании файла и вставке в консоль вставляет путь до файла (в отличие от cmd)
- Вы можете использовать .sh-скрипты, как в Linux, например, при пакетном конвертировании.
- Linux-пользователю и Linux-утилите родное окружение 😉
Как установить cygwin
Для того, чтобы в среде Eclipse можно было компилировать C/C++ приложения для Android, понадобится среда окружения Cygwin [1], где есть необходимая утилита make.
[Установка CygWin]
Запустите на выполнение setup-x86.exe или setup-x86_64.exe [1] в зависимости от версии Вашей Windows. На скриншотах показаны шаги выбора в мастере установки. Выберите Install from Internet, каталог установки c:\cygwin, папку для сохранения временных файлов c:\temp, тип подключения к Интернет, адрес сервера, откуда будут скачиваться пакеты.
Выберите для установки пакеты Devel/make и Shells/bash.
Запустите установку и дождитесь её окончания.
[Проверка работоспособности CygWin]
Выполните в командной строке команду:
make -version
В Вашей операционной системе может быть установлено несколько программ, которые могут использовать утилиту make. К примеру, это могут быть Atmel Studio 6, Visual Studio, MinGW, WinAVR и другие тулчейны. Какая из утилит make запустится в ответ на ввод команды make, зависит от переменной окружения PATH, где указаны пути поиска запускаемых программ. Утилита make из пакета Cygwin находится в папке c:\cygwin\bin, поэтому если хотите, чтобы запускалась именно эта версия make, то проверьте наличие пути c:\cygwin\bin в составе переменной PATH. Содержимое переменной PATH можно посмотреть командой консоли set PATH. На скриншоте показан пример такого вывода.
Как можете увидеть на примере этого скриншота, в данном случае переменная PATH не содержит пути c:\cygwin\bin, поэтому будет запускаться утилита make из каталога c:\Program Files\Atmel\AVR Tools\AVR Toolchain\bin (этот путь присутствует в переменной PATH, и стоит первым по порядку). Поэтому будьте внимательны!
Переменную PATH можно настроить через Мой компьютер -> Свойства -> Дополнительно -> Переменные среды.
При запуске make из окна терминала Cygwin Terminal запустится утилита make из каталога c:\cygwin\bin:
[Настройка переменных окружения bash-шелла Cygwin]
Все переменные окружения Windows автоматически импортируются в переменные окружения bash. Однако есть некоторая проблема, связанная с пробелами в именах путей Windows. Такие пути требуют особого внимания, и для их корректного преобразования в пути cygwin требуется специальная настройка.
Для разработки под Android нужно, чтобы были доступны утилиты JDK, SDK, NDK, Ant, которые находятся обычно в путях, обозначенных переменными окружения Windows: JAVA_HOME, ANDROID_SDK, ANDROID_NDK, ANT_HOME соответственно. Если в путях переменных окружения есть пробелы, то такие переменные требуют специального экспорта в окружение bash.
В каталоге c:\cygwin\home\имя_пользователя\ находится файл .bash_profile, в котором делаются основные настройки рабочего окружения среды bash Cygwin. Для настройки переменных окружения, связанных с путями поиска утилит JDK, SDK, NDK, Ant, добавьте в конец файла .bash_profile следующие строки:
export ANT_HOME=`cygpath -u "$ANT_HOME"` export JAVA_HOME=`cygpath -u "$JAVA_HOME"` export ANDROID_SDK=`cygpath -u "$ANDROID_SDK"` export ANDROID_NDK=`cygpath -u "$ANDROID_NDK"`
Команда export назначает указанное значение строковой переменной окружения. Это значение вырабатывает утилита cygpath, которая принимает в качестве параметра значение старой переменной окружения Windows. Обратите внимание, что строка с опциями для запуска команды cygpath обрамлена символом ` , который служит для выделения запускаемой команды в конфиге. Не переgутайте ` с другими символами ‘ и «», это очень важно.
Если после внесения указанных изменений в файл .bash_profile запустить окно терминала Cygwin, то в переменных окружения bash появятся переменные $JAVA_HOME, $ANDROID_SDK, $ANDROID_NDK, $ANT_HOME, которые будут иметь корректные пути cygwin. Вот пример такого пути для переменной $JAVA_HOME:
JAVA_HOME='/cygdrive/c/Program Files/Java/jdk1.7.0_45'
[Ссылки]
1. Installing and Updating Cygwin Packages site:cygwin.com .
Installing and Updating Cygwin Packages
Installing and Updating Cygwin for 64-bit versions of Windows
Run setup-x86_64.exe any time you want to update or install a Cygwin package for 64-bit windows.
The signature for setup-x86_64.exe can be used to verify the validity of this binary using the public key here.
General installation notes
When installing packages for the first time, the setup program does not install every package. Only the minimal base packages from the Cygwin distribution are installed by default, which takes up about 100 MB.
Clicking on categories and packages in the setup program package installation screen allows you to select what is installed or updated.
Individual packages like bash, gcc, less, etc. are released independently of the Cygwin DLL, so the Cygwin DLL version is not useful as a general Cygwin release number. The setup program tracks the versions of all installed components and provides the mechanism for installing or updating everything available from this site for Cygwin.
Once you’ve installed your desired subset of the Cygwin distribution, the setup program will remember what you selected, so re-running it will update your system with any new package releases.
The setup program will check by default if it runs with administrative privileges and, if not, will try to elevate the process. If you want to avoid this behaviour and install under an unprivileged account just for your own usage, run setup with the —no-admin option.
Q: How do I add a package to my existing Cygwin installation?
A: Run the setup program and select the package you want to add.
Tip: if you don’t want to also upgrade existing packages, select ‘Keep’ at the top-right of the package chooser page.
Q: Is there a command-line installer?
A: Yes and no. The setup program understands command-line arguments which allow you to control its behavior and choose individual packages to install. While this provides some functionality similar to such tools as apt-get or yum it is not as full-featured as those package managers.
Q: Why not use apt , yum , my favourite package manager, etc.?
A: The basic reason for not using a more full-featured package manager is that such a program would need full access to all of Cygwin’s POSIX functionality. That is, however, difficult to provide in a Cygwin-free environment, such as exists on first installation. Additionally, Windows does not easily allow overwriting of in-use executables so installing a new version of the Cygwin DLL while a package manager is using the DLL is problematic.
Q: How do I install everything?
A: You do not want to do this! This will install an enormous number of packages that you will never use, including debuginfo and source for every package.
If you really must do this, clicking on the «Default» label next to the «All» category to change it to «Install» will mark every Cygwin package for installation. Be advised that this will download and install tens of gigabytes of files to your computer.
Q: How do I verify the signature of setup?
$ gpg --recv-key 1A698DE9E2E56300 gpg: requesting key 1A698DE9E2E56300 from hkp server keys.gnupg.net gpg: key 1A698DE9E2E56300: "Cygwin " imported gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 8 signed: 2 trust: 0-, 0q, 0n, 0m, 0f, 8u gpg: depth: 1 valid: 2 signed: 0 trust: 2-, 0q, 0n, 0m, 0f, 0u gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) $ gpg --keyid-format=long --with-fingerprint --verify setup-x86_64.exe.sig setup-x86_64.exe [. ] gpg: Signature made 12 Mar 2020 16:26:58 GMT gpg: using RSA key 1A698DE9E2E56300 gpg: Good signature from "Cygwin " Primary key fingerprint: 5640 5CF6 FCC8 1574 682A 5D56 1A69 8DE9 E2E5 6300
Q: What’s the hash of setup?
Q: How can I do an offline install?
A1: Install without access to the internet, using a local package repository
- Create a local copy of the package repository e.g. by using rsync on one of the mirrors.
- Move that copy to an accessible location, or copy it to removable media.
- Run setup, and enter the URL, path or UNC path of that repository when prompted to «Choose A Download Site».
A2: Install without access to the internet, using setup’s separate download and install actions.
- Run setup in «Download without installing» mode somewhere it can access a mirror, with the desired packages selected.
- Run setup again in «Install from local directory» mode, with the same «Local package directory», and set of packages selected.
Q: How can I install the last Cygwin version for an old, unsupported Windows?
A: Run setup with the options —allow-unsupported-windows —site circa_URL :
32-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2022/11/23/063457
or the URL for any sourceware mirror, followed by cygwin-archive/20221123
Also use —no-verify with these URLs.
Also use —no-verify with these URLs. Use —only-site rather than —allow-unsupported-windows with this setup version.
Thanks to the Cygwin Time Machine for providing this archive.
A note about 32-bit Cygwin
The limited address space of 32-bit Windows means that random failures in the fork(2) system call are more likely. Therefore, we recommend using 32-bit Cygwin only in limited scenarios, with only a minimum of necessary packages installed, and only if there’s no way to run 64-bit Cygwin instead.
You have been warned. If you’re still sure you really need a 32-bit Cygwin, and there’s absolutely no way around it, you may use the setup-x86.exe installer, following the instructions above. The signature can be used to verify the validity of this binary.
Q: How do I help improve setup?
A: See the setup project page for more information.
GUI translations can be made and updated at weblate.