Installing Cygwin on Windows

  1. Introduction
  2. Downloading the Cygwin setup program
  3. Installing Cygwin
  4. Choosing Packages


Cygwin is, essentially, a Linux subsystem that runs on any flavor of Windows (other than CE).

It is a fairly low-impact install, dropping a single DLL into the System32 directory. Doesn't mangle your registry, and is very easy to remove.

Cygwin provides many of the Linux utilities and tools, shells, etc., including gnu's C++ compiler, Perl, vim, emacs, debuggers, awk, and so on. It's how one might be productive on a Windows machine.

Cygwin does not make your native Windows applications Unix-aware, nor does it allow you to run native Linux apps on Windows. Everything must be built fresh from source. But it does play nicely w/Windows, and is so much nicer than DOS.

I would install the Java SDK from Sun before installing Cygwin. You may need to modify your PATH in Cygwin to find the Java compiler and RE.

Get the Cygwin Setup Program

  1. Go to
  2. Create a local directory to be used for setup, such as C:\Downloads\Cygwin
    Please note: this is not the directory where the program will be installed to! This is just a temporary folder for the installation program to reside in until it's done its task.
  3. Use any of the various links on the Cygwin page (Install Cygwin Now) to download setup.exe to this directory

return to top

Installing Cygwin

  1. Open up Windows Explorer, or your favorite file manager, to the target directory (c:\Downloads\Cygwin for our example)
  2. Double-click setup.exe
  3. Click Next at the splash screen
  4. Choose 'Install from Internet'
  5. Choose an installation directory. I chose c:\cygwin, but you do as you like.
    Contact about page error
    I would also choose to default to the Unix text file type
    Click Next
  6. On the next screen I would use C:\Downloads\Cygwin (or whatever you used above) as the local package directory
  7. On the next screen, Choosing Your Internet Connection, I dunno. You can probably get away w/using the IE settings, or a direct connection
  8. The next screen will ask you to choose a download mirror. I have no intelligent opinion. Calgary has bombed on me once or twice. Pick one that looks good, feels lucky
  9. Choosing Packages

    Note: Packages are separated out by category. Many (most) are listed in more than one category. You just click on the `+' next to a category to expand all the packages.

    By default, only a minimal set of packages are marked to be installed. Some packages depend on others, so packages that you didn't explicitly mark for install may suddenly appear checked. The short of this, do not unmark a package for installation unless you specifically marked it originally, and changed your mind.

    I've already installed Cygwin, so I don't know which packages are included by default, and which you need. Further, I'm not quite sure how your window will appear. It'll look a little different than mine.

    I'll list packages you probably want below.

    To include a package just click on the circular arrow (see image). You'll see 2 checkboxes appear. By default the left-most one is checked. This means you'll just be downloadin binaries (already compiled programs). If you want the source code (and if you're scratching your head here, then you don't), check the right-most box.

    Contact about page error

    Packages to install (by category). There's bound to be duplication.

If you choose anything in X11, you'll be prompted to accept the dependencies, which will install an X-server for you. Cool to have. With SSH, allows you to run GUI programs on a distant computer, have them interact with your local desktop.

You may, of course, install whatever else tickles your fancy. And you may go back at a later time, run the Cygwin Setup program, use it to add or remove packages.

return to top

Interfacing w/cygwin

You'll see icons in various places (desktop, Start menu) that open up a cygwin window. It seems to use the standard Windows console. Its terminal type is cygwin. So, connecting to another *nix box ight be a little funny. Setting TERM to ansi worked okay, or you can use infocmp to reconstruct source from /usr/share/terminfo/c/cygwin, move it out to the remote machine, use tic to compile it, install it there.

Theres a decompiled source file at tux:/home/kschmidt/Public/cygwin-term.src . Grab that, read (man) about tic, and you're on your way.


Or, you can download puttycyg from . You'll have all of the regular functionality of Putty, and a nice xterm interface to Cygwin. I recommend this heartily.

X Server

I don't know if it's installed by default, but, you can install an X-server w/cygwin, so, can get a xterm that way (and a bunch of other GUI applications). You need some memory, and a bored CPU.

Please report any corrections, comments, errors or omissions to
Last updated Jan 4, 2005