What is the recommended installation procedure? It is flexible and easy to use. You can pick and choose the packages you wish to install, and update them individually. Full source code is available for all packages and tools.
More information on using Cygwin Setup may be found at https: If you do it any other way, you're on your own! If something doesn't work right for you, and it's not covered here or in the latest development snapshot at https: For a searchable list of packages that can be installed with Cygwin, see https: What about an automated Cygwin installation?
The Cygwin Setup program is designed to be interactive, but there are a few different ways to automate it. If you are deploying to multiple systems, the best way is to run through a full installation once, saving the entire downloaded package tree.
Then, on target systems, run Cygwin Setup as a "Local Install" pointed at your downloaded package tree. You could do this non-interactively with the command line options -q -L -l x: For other options, search the mailing lists with terms such as cygwin automated setup or automated cygwin install. Does Setup accept command-line arguments? Can I install Cygwin without administrator rights? The default installation requests administrator rights because this allows to set up the Cygwin environment so that all users can start a Cygwin shell out of the box.
However, if you don't have administrator rights for your machine, and the admins don't want to install it for you, you can install Cygwin just for yourself by downloading setup-x Why not install in C: The Cygwin Setup program will prompt you for a "root" directory.
The default is C: You are urged not to choose something like C: Perhaps there is no conflict now, but who knows what you might install in the future? It's also just good common sense to segregate your Cygwin "filesystems" from the rest of your Windows system disk. In the past, there had been genuine bugs that would cause problems for people who installed in C: Can I use Cygwin Setup to get old versions of packages like gcc Cygwin Setup can be used to install any packages that are on a Cygwin mirror, which usually includes one version previous to the current one.
The complete list may be searched at https: There is no complete archive of older packages. If you have a problem with the current version of a Cygwin package, please report it to the mailing list using the guidelines at https: That said, if you really need an older package, you may be able to find an outdated or archival mirror by searching the web for an old package version for example, gcc How does Cygwin secure the installation and update process?
Here is how Cygwin secures the installation and update process to counter man-in-the-middle MITM attacks: The Cygwin website provides the setup program setup-x This authenticates that the setup program came from the Cygwin website users simply use their web browsers to download the setup program.
The setup program has the Cygwin public key embedded in it. The Cygwin public key is protected from attacker subversion during transmission by the previous step, and this public key is then used to protect all later steps. You can confirm that the key is in setup by looking at the setup project http: The setup program downloads the package list setup. The package list is in the file setup. The package list includes for every official Cygwin package the package name, cryptographic hash, and length in bytes.
The setup program also gets the relevant. The packages to be installed which may be updates are downloaded and both their lengths and cryptographic hashes from the signed setup. Non-matching packages are rejected, countering any attacker's attempt to subvert the files on a mirror.
Cygwin currently uses the cryptographic hash function SHA for the setup. Cygwin uses the cryptographic hash algorithm SHA as of What else can I do to ensure that my installation and updates are secure?
To best secure your installation and update process, download the setup program setup-x This was noted on the front page for installing and updating. If you use the actual Cygwin public key, and have an existing secure signature-checking process, you will counter many other attacks such as subversion of the Cygwin website and malicious certificates issued by untrustworthy certificate authorities CAs.
One challenge, of course, is ensuring that you have the actual Cygwin public key. You can increase confidence in the Cygwin public key by checking older copies of the Cygwin public key to see if it's been the same over time.
Another challenge is having a secure signature-checking process. Otherwise, to check the signature you must use an existing trusted tool or install a signature-checking tool you can trust.
Not everyone will go through this additional effort, but we make it possible for those who want that extra confidence. We also provide automatic mechanisms such as our use of HTTPS for those with limited time and do not want to perform the signature checking on the setup program itself. Once the correct setup program is running, it will counter other attacks as described in https: Is Cygwin Setup, or one of the packages, infected with a virus? Unless you can confirm it, please don't report it to the mailing list.
Anti-virus products have been known to detect false positives when extracting compressed tar archives. If this causes problems for you, consider disabling your anti-virus software when running setup. Read the next entry for a fairly safe way to do this. My computer hangs when I run Cygwin Setup! Both Network Associates formerly McAfee and Norton anti-virus products have been reported to "hang" when extracting Cygwin tar archives.
If this happens to you, consider disabling your anti-virus software when running Cygwin Setup. The following procedure should be a fairly safe way to do that: Turn off the anti-virus software. Run setup to download and extract all the tar files.
Re-activate your anti-virus software and scan everything in C: This should be safe, but only if Cygwin Setup is not substituted by something malicious.
What packages should I download? Where are 'make', 'gcc', 'vi', etc? When using Cygwin Setup for the first time, the default is to install a minimal subset of all available packages. If you want anything beyond that, you will have to select it explicitly. How do I just get everything? Long ago, the default was to install everything, much to the irritation of most users.
Now the default is to install only a basic core of packages. Cygwin Setup is designed to make it easy to browse categories and select what you want to install or omit from those categories. It's also easy to install everything: Be patient, there is some computing to do at this step. It may take a second or two to register the change. This tells Setup to install everything, not just what it thinks you should have by default.
This shows exactly which packages are about to be downloaded and installed. This procedure only works for packages that are currently available. There is no way to tell Cygwin Setup to install all packages by default from now on. As new packages become available that would not be installed by default, you have to repeat the above procedure to get them.
In general, a better method in my opinion , is to: This includes fundamental packages and any updates to what you have already installed. Run Cygwin Setup again, and apply the above technique to get all new packages that would not be installed by default. You ought to check whether you really want to install everything! How much disk space does Cygwin require? That depends, obviously, on what you've chosen to download and install.
A full installation today is probably larger than 1 GB installed, not including the package archives themselves nor the source code. You may conserve disk space by deleting the subdirectories there. Of course, you can keep them around in case you want to reinstall a package. How do I know which version I upgraded from? What if setup fails? First, make sure that you are using the latest version of Cygwin Setup.
The latest version is always available from the Cygwin Home Page at https: