Get that Linux feeling — on Windows
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 gpg 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.
Performing an automated installation can be done using the -q
and
-P package1,package2,...
options.
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?
A: e.g.
$ gpg --recv-key 1A698DE9E2E56300 gpg: requesting key 1A698DE9E2E56300 from hkp server keys.gnupg.net gpg: key 1A698DE9E2E56300: "Cygwin <cygwin@cygwin.com>" 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 <cygwin@cygwin.com>" Primary key fingerprint: 5640 5CF6 FCC8 1574 682A 5D56 1A69 8DE9 E2E5 6300
Q: What’s the hash of setup?
A: See here
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
usingrsync
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 version?
A: Run setup with the options --allow-unsupported-windows
:
--site circa_URL
Windows version | Setup version | Cygwin DLL version | circa URL |
---|---|---|---|
Windows 7 Windows Server 2008 R2 (NT 6.1) Windows 8 Windows Server 2012 (NT 6.2) |
current | 3.4.10 |
64-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2024/01/30/231215
Also use |
Windows Vista Windows Server 2008 (NT 6.0) All 32-bit Windows |
current | 3.3.6 |
32-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2022/11/23/063457 64-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/11/23/063529 |
Windows XP SP3 Windows Server 2003 (NT 5.1) |
2.932 (32-bit, 64-bit) |
2.5.2 |
32-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2016/08/30/104223 64-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2016/08/30/104235
Also use |
Windows 2000 (NT 5.0) Windows XP SP2 |
2.774 | 1.7.18 |
32-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2013/06/04/121035
Also use |
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 gpg 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.
Прочитано: 6 648
Задача: Разобрать, как установить OpenSSH сервис на Windows 7 с применением Cygwin.
Для справки: В данном примере используется Windows 7 с архитектурой x64
В данном случае это заметка, как напоминалка для следующих заметок использования особого инструмента целью которого является портирование утилит Linux систем на Windows в основе которых лежит динамическая библиотека без которой не было бы возможности запускать их. Пакет Cygwin обобщает различные инструменты разработки, прикладного обеспечения и их эквивалентные аналоги базовых программ. Если по простому, то привычные программы из Linux можно запускать в Windows получая в замен ту легкость и простоту создаваемых скриптов, а также совмещение использования консольных команд Windows редакций. Т.е. выигрыш на лицо, два в одном. Ниже я покажу, да и себе заметка на будущее,
- Как установить в систему Windows пакет Cygwin
- Как установить OpenSSH пакет
- Как настроить аутентификацию по ключу против по паролю
Устанавливаю в систему пакет Cygwin, скачав необходимый по следующей ссылке: http://cygwin.com/setup-x86_64.exe
если используется архитектура x86, то ссылка на скачиваемый пакет:
http://cygwin.com/setup-x86.exe
На заметку: для установки в системе должны быть права Администратора, и у меня UAC Отключён.
Для справки:
В конечном этоге в этой заметке рассматривается как для двух систем установить и настроить безпарольный доступ друг к другу по ключам.
W7X86 – 192.168.1.59
W7X64 – 192.168.1.40
Запускаю установщик (версия 2.852 (64 bit) – Далее – Install from Internet, Далее – каталог установки оставляю по умолчанию: C:\cygwin64 и тип установки для всех пользователей: All Users (RECOMMENDED), Далее – следующим шагом оставляем путь предложенный установщиком где будет располагаться локальные пакеты: C:\Users\ekzorchik\Downloads, Далее – предопределяем тип используемого соединений, Direct Connection (в моем случае, соединение прямой, прокси сервер не используется), Далее – на следующем шаге выбираем сервер загрузки из множества (любой), к примеру: http://mirrors–ru.go–parts.com, Далее – на следующем шаге выбираем пакет(ы) которые нужны в системе нам, в моем случаем мне нужен пакет:
В текущем примере моей заметки — это пакет для организации безопасного подключения к системе посредством SSH, т. е. Пакет OpenSSH, как серверная так и клиентская часть.
, Далее – в процессе установки мастер определит, какие зависимости сперва нужно до установить, соглашаемся, Далее – и начнется процесс скачивания зависимостей и самого приложений, просто ожидаем – после того, как установка пройдет успешно останется только проконтролировать, чтобы были поставлены галочки для создания ярлыков быстрого доступа к Cygwin:
- Create icon on Desktop
- Add icon to Start Menu
И нажать Готово.
На заметку: Если понадобится установить в эмулятор консоли еще какие либо утилиты, то данные шаги повторяются, запуск исполняемого файла, указания сайта с которого будем производить скачивание и установку утилит.
Далее запускаю терминал Cygwin:
Пуск – Все программы – Cygwin – Cydwin64 Terminal, окно консоли примет вид:
Copying skeleton files.
These files are for the users to personalise their cygwin experience.
They will never be overwritten nor automatically updated.
‘./.bashrc’ -> ‘/home/1//.bashrc’
‘./.bash_profile’ -> ‘/home/1//.bash_profile’
‘./.inputrc’ -> ‘/home/1//.inputrc’
‘./.profile’ -> ‘/home/1//.profile’
ekzorchik@srv-w7x64 ~
$ <это_консоль_ввода>
В консоли после приглашения курсора $ набираем ssh-host-config –y
этим мы генерируем ключи доступа к данной машине по ssh и создаем нового пользователя cyg_server где в качестве его пароля нужно указать текущий пароль от пользователя (в моем случае пользователь ekzorchik с дефолтный паролем 712mbddr@) под которым происходит инсталляция пакета cygwin и дополнительных пакетов в систему:
$ ssh-host-config -y
Часть информации выводимая в консоли отвечающая за создание нового пользователя cyg_server от имени которого будет происходит запуск инсталлированной службы «CYDWIN sshd»
*** Query: Please enter the password:712mbddr@
*** Query: Reenter:712mbddr@
Как видно, созданный пользователь инсталлирует службу в систему запуск которой будет осуществляться от имени данного пользователя (cyg_server), по умолчанию она становится не запущенной, запускаю:
Win + R -> cmd.exe
C:\Users\ekzorchik>sc config sshd start= auto
SC] ChangeServiceConfig: успех
C:\Users\ekzorchik>net start sshd
Служба “CYGWIN sshd” запускается.
Служба “CYGWIN sshd” успешно запущена.
Либо через запущенную терминальную консоль Cygwin Terminal:
- -S, –start <svc_name> Starts a service named <svc_name>.
- -E, –stop <svc_name> Stops a service named <svc_name>.
ekzorchik@srv-w7x64 ~
$ cygrunsrv.exe -E sshd
ekzorchik@srv-w7x64 ~
$ cygrunsrv.exe -S sshd
Также важно открыть доступ к системе по порту 22 (порт по дефолту). Для этого нужно добавить правило в брандмауэр для всех профилей системы:
netsh avdfirewall firewall add rull name=”SSH Server” dir=in protocol=tcp localport=22 action=allow
Проверим, открыт ли порт на котором работает служба SSH в системе:
C:\Users\ekzorchik>netstat -an | findstr :22
TCP 0.0.0.0:22 0.0.0.0:0 LISTENING
TCP [::]:22 [::]:0 LISTENING
Из вывода ясно, что порт открыт.
По такому же принципу шагов описанных выше устанавливаю и на другую систему с осью Windows 7 но применительно к архитектуре x86, хотя разницы в шагах вообщем-то никакой. Просто мне нужно для тестирования и показа, как это работает в дальнейшем.
Следующим шагом перехожу к тестированию подключения к системе посредством SSH соединения, в роли клиента на подключение к системе может использоваться, как консольный вариант — это через Cygwin Terminal, так и отдельным приложением,к примеру утилита — Putty. Я же буду использовать Cygwin Terminal.
ekzorchik@srv-w7x86 ~
$ hostname
srv-w7x86
ekzorchik@srv-w7x86 ~
$ ssh -l ekzorchik 192.168.1.40 -p 22
The authenticity of host ‘192.168.1.40 (192.168.1.40)’ can’t be established.
ECDSA key fingerprint is 57:8b:b2:35:43:f5:18:22:c0:e7:61:9b:44:d4:56:fe.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.1.40’ (ECDSA) to the list of known hosts.
ekzorchik@192.168.1.40’s password:712mbddr@
ekzorchik@W7X64 ~
– подключение по SSH прошло успешно в другую систему.
$
Отлично, работает, теперь же надо сделать, чтобы авторизация шла только по ключам доступа.
Ниже практические шаги, как это сделать:
ekzorchik@W7X64 ~
$ mkdir -p ~/.ssh
Генерирую публичный и приватный ключ системы:
$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/ekzorchik/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ekzorchik/.ssh/id_dsa.
Your public key has been saved in /home/ekzorchik/.ssh/id_dsa.pub.
The key fingerprint is:
80:eb:01:02:af:a1:00:80:ad:63:38:53:87:50:59:3d ekzorchik@W7X64
The key’s randomart image is:
Далее копируем публичный(открытый ключ) на вторую систему:
ekzorchik@W7X64 ~
$ cat ~/.ssh/id_dsa.pub | ssh -p 22 ekzorchik@192.168.1.59 'umask 077;test -d .ssh | cat >> ~/.ssh/authorized_keys'
ekzorchik@192.168.1.59’s password:712mbddr@
Точно такие же шаги проделываем на второй системе по отношения к первой, но не забываем указать соответствующий IP адрес системы, в моем случае — это 192.168.1.40
ekzorchik@srv-w7x86 ~
$ cat ~/.ssh/id_dsa.pub | ssh -p 22 ekzorchik@192.168.1.40 'umask 077;test -d .ssh | mkdir .ssh ; cat >> .ssh/authorized_keys'
ekzorchik@192.168.1.40’s password:
mkdir: cannot create directory ‘.ssh’: File exists
ekzorchik@srv-w7x86 ~
$ cat ~/.ssh/id_dsa.pub | ssh -p 22 ekzorchik@192.168.1.40 'umask 077;test -d .ssh | cat >> .ssh/authorized_keys'
ekzorchik@srv-w7x86 ~
$ ssh -l ekzorchik 192.168.1.40 -p 22 Last login: Thu Nov 27 18:36:23 2014 from 192.168.1.59
ekzorchik@W7X64 ~
Но пока авторизация по ключам не заработает, в системах по умолчанию отключены все параметры настроек службы OpenSSH. Поэтому сперва произведу кое-какую настройку, в качестве редактора посредством которого буду изменять конфигурационные файлы выступит установленный по умолчанию — редактор vi: (советую познакомиться с его работой подробно, к примеру по моей заметке или по книгам посвященным Linux), но для быстро по первой настройке доустановлю пакет простого текстового редактора nano. Для этого снова запускаем setup-x86_64.exe – шаги до установки пакета точно такие же которые я проделывал выше когда устанавливал OpenSSH. Ниже скриншот поиска и установки необходимого бинарного пакета, исходники пакета не требуются поэтому их и не отмечаю.
Далее переходим к редактированию настроек сервиса SSHD:
ekzorchik@W7X64 ~
$ nano /etc/sshd_config
Port 22
Protocol 2
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PasswordAuthentication no
Сохраняем внесенные (Ctrl + O, Ctrl + X) изменения и перезапускаю службу для применения настроек.
ekzorchik@W7X64 ~
$ cygrunsrv.exe -E sshd
ekzorchik@W7X64 ~
$ cygrunsrv.exe -S sshd
Точно такие же действия проделываем и на другой системе.
Теперь пробует подключиться друг к другу посредством ключей, а не паролей:
Работает с 192.168.1.40 на 192.168.1.59
ekzorchik@W7X64 ~
$ !22
ssh ekzorchik@192.168.1.59 -p 22
Last login: Thu Nov 27 17:58:06 2014 from w7x64
ekzorchik@srv-w7x86 ~
Работает с 192.168.1.59 на 192.168.1.40
ekzorchik@srv-w7x86 ~
$ ssh -l ekzorchik 192.168.1.40 -p 22
Last login: Thu Nov 27 18:40:21 2014 from 192.168.1.59
ekzorchik@W7X64 ~
$
Отлично, все заработало, шаги один в один, как и на Ubuntu 12.04.5 Server/Desktop. Если же у Вас не заработает, то при подключении включите режим логирования, параметр –v, либо проверьте что содержимое authorized_keys удаленной системы содержит id_dsa.pub ключ первой, возможно в этом проблема, вообщем вот так сразу сложно сказать в чем может быть проблема, если работает по паролю, а не работает по ключу, скорое всего не добавлен ключ на удаленную систему. Будьте внимательнее, но раз столкнувшись с проблемами и решив их Вы будете более подкованными в дальнейшем. Свой опыт лучше, чем подсказка более опытных, хотя и знаешь что сэкономишь время, но это как в школе, мало того что можно списать решение из книги содержащей пошаговое решение, пока сам не повторишь и не разберешь ни будешь знать в общем-то ничего. Вот так. На этом задачу считаю выполненной и смею прощаться. До встречи в следующих реальных заметках — с уважением автор блога — ekzorchik.
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 is a development environment similar to Unix one and has command-line interface to work like in Linux but inside the Microsoft Windows Operating System. Cygwin eliminates the overhead of installing an entire Linux OS for running certain applications. There is a native integration of Windows-based applications and softwares to work in Linux or Unix like environment, thus it is not necessary to install Linux only to fun your simulating program. Wine, WINdows Emulator, on the other hand is just the reverse application to Cygwin – Wine allows us to run applications developed primarily for Windows OS in other operating systems, say Mac OS or Linux.
In order to run or install native Linux or Unix based simulators like NS2 or NS3 (Network Simulators) and OMNeT++ (not a native though) in Windows (without installing Linux), you will need Cygwin. Read Tutorial: How to install ns-3 in Windows 7 using Cygwin by Jason.
Here is an easy way to install and make Cygwin run in Windows 7 64-bit platform, and how to run Linux applications inside the Windows OS. Follow the tutorials based on these screenshots. Download the latest installation file of Cygwin from here and then proceed as illustrated here.
Cygwin environment and all subsequent updates will be installed via Cygwin Net Release setup program, ensure all packages are install. However, by default only a base set of packages are installed. You can always add on more packages to your Cygwin installation later.
Cygwin setup downloads the latest files and packages from online mirror sites and install them in your local computer.
If there are major release upgrade, it is common to see screens like this. Existing Cygwin installation maybe effected by major releases, however if you are installing Cygwin for the first time (clean and fresh installation) then just ignore the setup alert.
Finally, select the Cygwin packages you want to install in your computer’s Cygwin installation environment. By default all base packages will be installed, however you still can search and install the one your require. There are many Cygwin packages given in the Cygwin official website, you can search one yours here.
After downloading necessary Cygwin set up file, the packages are downloaded and installed.
Once your Cygwin setup wizard has completed the installation, you shall see screenshot like above. Now, open Cygwin and run any program you wish like in the Unix environment – command line is all what you got to see.
Cygwin consists of DLL (Dynamic-link Library) functionality and software collections to give Unix-like appearance. The features of Cygwin include shells (CLI), terminals, editors, remote logins including ssh, rsh and telnet; all major programming languages can be performed in Cygwin. If you want an alternative to Cygwin, there are MinGW and Winelib. (Read: Run one OS on the top of another using virtual machine)
Img credit: Cygwin Running NS3 in Windows 7 by jasonernst.com
Get that Linux feeling — on Windows
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 gpg 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.
Performing an automated installation can be done using the -q
and
-P package1,package2,...
options.
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?
A: e.g.
$ gpg --recv-key 1A698DE9E2E56300 gpg: requesting key 1A698DE9E2E56300 from hkp server keys.gnupg.net gpg: key 1A698DE9E2E56300: "Cygwin <cygwin@cygwin.com>" 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 <cygwin@cygwin.com>" Primary key fingerprint: 5640 5CF6 FCC8 1574 682A 5D56 1A69 8DE9 E2E5 6300
Q: What’s the hash of setup?
A: See here
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
usingrsync
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 version?
A: Run setup with the options --allow-unsupported-windows
:
--site circa_URL
Windows version | Setup version | Cygwin DLL version | circa URL |
---|---|---|---|
Windows 7 Windows Server 2008 R2 (NT 6.1) Windows 8 Windows Server 2012 (NT 6.2) |
current | 3.4.10 |
64-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2024/01/30/231215
Also use |
Windows Vista Windows Server 2008 (NT 6.0) All 32-bit Windows |
current | 3.3.6 |
32-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2022/11/23/063457 64-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/11/23/063529 |
Windows XP SP3 Windows Server 2003 (NT 5.1) |
2.932 (32-bit, 64-bit) |
2.5.2 |
32-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2016/08/30/104223 64-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2016/08/30/104235
Also use |
Windows 2000 (NT 5.0) Windows XP SP2 |
2.774 | 1.7.18 |
32-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2013/06/04/121035
Also use |
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 gpg 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.