Cygwin

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 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

A2: Install without access to the internet, using setup's separate download and install actions.

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:

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 --no-verify with this URL.

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
or the URL for any sourceware mirror, followed by cygwin-archive/20221123

64-bit: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/11/23/063529

Windows XP SP3
Windows Server 2003
(NT 5.1)
current 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 --no-verify with these URLs.

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 --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.