375 lines
16 KiB
Plaintext
375 lines
16 KiB
Plaintext
@chapter Installation Instructions
|
|
@section Contents
|
|
|
|
There is only one recommended way to install Cygwin, which is to use the GUI
|
|
installer ``Cygwin Setup''. 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
|
|
@file{http://cygwin.com/cygwin-ug-net/setup-net.html}.
|
|
|
|
If you do it any other way, you're on your own! That said, keep in mind
|
|
that the GUI installer is a "work in progress", so there might be a few
|
|
difficulties, especially if you are behind a firewall or have other
|
|
specific requirements. If something doesn't work right for you, and
|
|
it's not covered here or in the latest development snapshot at
|
|
@file{http://cygwin.com/setup/}, then by all means report it to the
|
|
mailing list.
|
|
|
|
For a searchable list of packages that can be installed with Cygwin,
|
|
see @file{http://cygwin.com/packages/}.
|
|
|
|
@section Installation using ``Cygwin Setup''
|
|
|
|
The Cygwin Setup program is the @emph{only} recommended way to install
|
|
Cygwin.
|
|
|
|
@subsection Why not install in C:\?
|
|
|
|
The Cygwin Setup program will prompt you for a "root" directory.
|
|
The default is @samp{C:\cygwin}, but you can change it. You are urged not to
|
|
choose something like @samp{C:\} (the root directory on the system drive) for
|
|
your Cygwin root. If you do, then critical Cygwin system directories
|
|
like @samp{etc}, @samp{lib} and @samp{bin} could easily be corrupted by
|
|
other (non-Cygwin) applications or packages that use @samp{\etc},
|
|
@samp{\lib} or @samp{\bin}. 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 @samp{C:\}, but we believe those are gone
|
|
now.)
|
|
|
|
@subsection Can I use Cygwin Setup to get old versions of packages (like gcc-2.95)?
|
|
|
|
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
|
|
@file{http://cygwin.com/packages/}. 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 @file{http://cygwin.com/problems.html}.
|
|
|
|
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, @samp{gcc2-2.95.3-10-src.tar.bz2}), but keep in
|
|
mind that this older version will not be supported by the mailing list
|
|
and that installing the older version will not help improve Cygwin.
|
|
|
|
@subsection Is Cygwin Setup, or one of the packages, infected with a virus?
|
|
|
|
Unlikely. 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 @code{setup}. Read the next entry for a fairly safe way to do
|
|
this.
|
|
|
|
@subsection 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:
|
|
|
|
@enumerate
|
|
@item Download @code{setup.exe} and scan it explicitly.
|
|
|
|
@item Turn off the anti-virus software.
|
|
|
|
@item Run setup to download and extract all the tar files.
|
|
|
|
@item Re-activate your anti-virus software and scan everything
|
|
in C:\cygwin (or wherever you chose to install), or your entire hard
|
|
disk if you are paranoid.
|
|
|
|
@end enumerate
|
|
|
|
This should be safe, but only if Cygwin Setup is not substituted by
|
|
something malicious, and no mirror has been compromised.
|
|
|
|
@subsection 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 packages. If you want anything beyond that, you
|
|
will have to select it explicitly. See
|
|
@file{http://cygwin.com/packages/} for a searchable list of available
|
|
packages.
|
|
|
|
If you want to build programs, of course you'll need @samp{gcc},
|
|
@samp{binutils}, @samp{make} and probably other packages from the
|
|
``Devel'' category. Text editors can be found under ``Editors''.
|
|
|
|
@subsection 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:
|
|
|
|
@enumerate
|
|
|
|
@item At the ``Select Packages'' screen, in ``Categories'' view, at the line
|
|
marked ``All'', click on the word ``default'' so that it changes to
|
|
``install''. (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 @emph{everything}, not just what it thinks you should have
|
|
by default.
|
|
|
|
@item Now click on the ``View'' button (twice) until you get the
|
|
``Partial'' view. This shows exactly which packages are about to be
|
|
downloaded and installed.
|
|
|
|
@end enumerate
|
|
|
|
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:
|
|
|
|
@enumerate
|
|
|
|
@item First download & install all packages that would normally be
|
|
installed by default. This includes fundamental packages and any
|
|
updates to what you have already installed. Then...
|
|
|
|
@item Run Cygwin Setup again, and apply the above technique to get all
|
|
new packages that would not be installed by default. You can check
|
|
the list in the Partial View before proceeding, in case there's
|
|
something you really @emph{don't} want.
|
|
|
|
@item In the latest version of Cygwin Setup, if you click the ``View''
|
|
button (twice) more, it shows packages not currently installed. You
|
|
ought to check whether you @emph{really} want to install everything!
|
|
|
|
@end enumerate
|
|
|
|
@subsection 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 800MB
|
|
installed, not including the package archives themselves nor the source
|
|
code.
|
|
|
|
After installation, the package archives remain in your ``Local
|
|
Package Directory'', by default the location of @code{setup.exe}. You
|
|
may conserve disk space by deleting the subdirectories there. These
|
|
directories will have very weird looking names, being encoded with
|
|
their URLs.
|
|
|
|
@subsection 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 'Install
|
|
Cygwin now' link on the Cygwin Home Page at @file{http://cygwin.com/}.
|
|
|
|
If you are downloading from the Internet, setup will fail if it cannot
|
|
download the list of mirrors at
|
|
@file{http://cygwin.com/mirrors.html}. It could be that
|
|
the network is too busy. Something similar could be the cause of a
|
|
download site not working. Try another mirror, or try again later.
|
|
|
|
If setup refuses to download a package that you know needs to be
|
|
upgraded, try deleting that package's entry from /etc/setup. If you are
|
|
reacting quickly to an announcement on the mailing list, it could be
|
|
that the mirror you are using doesn't have the latest copy yet. Try
|
|
another mirror, or try again tomorrow.
|
|
|
|
If setup has otherwise behaved strangely, check the files
|
|
@samp{setup.log} and @samp{setup.log.full} in @code{/var/log}
|
|
(@code{C:\cygwin\var\log} by default). It may provide some clues as
|
|
to what went wrong and why.
|
|
|
|
If you're still baffled, search the Cygwin mailing list for clues.
|
|
Others may have the same problem, and a solution may be posted there.
|
|
If that search proves fruitless, send a query to the Cygwin mailing
|
|
list. You must provide complete details in your query: version of
|
|
setup, options you selected, contents of setup.log and setup.log.full,
|
|
what happened that wasn't supposed to happen, etc.
|
|
|
|
@subsection My Windows logon name has a space in it, will this cause problems?
|
|
|
|
Most definitely yes! UNIX shells (and thus Cygwin) use the space
|
|
character as a word delimiter. Under certain circumstances, it is
|
|
possible to get around this with various shell quoting mechanisms, but
|
|
you are much better off if you can avoid the problem entirely.
|
|
|
|
On Windows NT/2000/XP you have two choices:
|
|
@enumerate
|
|
|
|
@item You can rename the user in the Windows User Manager GUI and then
|
|
run mkpasswd.
|
|
|
|
@item You can simply edit the /etc/passwd file and change the Cygwin user name
|
|
(first field). It's also a good idea to avoid spaces in the home directory.
|
|
|
|
@end enumerate
|
|
|
|
On Windows 95/98/ME you can create a new user and run mkpasswd,
|
|
or you can delete the offending entry from /etc/passwd.
|
|
Cygwin will then use the name in the default entry with uid 500.
|
|
|
|
@subsection My @samp{HOME} environment variable is not what I want.
|
|
|
|
When starting Cygwin from Windows, @samp{HOME} is determined as follows
|
|
in order of decreasing priority:
|
|
|
|
@enumerate
|
|
|
|
@item @samp{HOME} from the Windows environment, translated to POSIX form.
|
|
|
|
@item The entry in /etc/passwd
|
|
|
|
@item @samp{HOMEDRIVE} and @samp{HOMEPATH} from the Windows environment
|
|
|
|
@item /
|
|
|
|
@end enumerate
|
|
|
|
When using Cygwin from the network (telnet, ssh,...), @samp{HOME} is set
|
|
from /etc/passwd.
|
|
|
|
If your @samp{HOME} is set to a value such as /cygdrive/c, it is likely
|
|
that it was set in Windows. Start a DOS Command Window and type
|
|
"set HOME" to verify if this is the case.
|
|
|
|
Access to shared drives is often restricted when starting from the network,
|
|
thus Domain users may wish to have a different @samp{HOME} in the
|
|
Windows environment (on shared drive) than in /etc/passwd (on local drive).
|
|
Note that ssh only considers /etc/passwd, disregarding @samp{HOME}.
|
|
|
|
@subsection How do I uninstall individual packages?
|
|
|
|
Run Cygwin Setup as you would to install packages. In the list of
|
|
packages to install, browse the relevant category or click on the
|
|
``View'' button to get a full listing. Click on the cycle glyph until
|
|
the action reads ``Uninstall''. Proceed by clicking ``Next''.
|
|
|
|
@subsection How do I uninstall @strong{all} of Cygwin?
|
|
|
|
Setup has no automatic uninstall facility. The recommended method to remove all
|
|
of Cygwin is as follows:
|
|
|
|
@enumerate
|
|
|
|
@item Remove all Cygwin services. If a service is currently running, it must
|
|
first be stopped with @samp{cygrunsrv -E name}, where @samp{name}
|
|
is the name of the service. Then use @samp{cygrunsrv -R name} to uninstall the
|
|
service from the registry. Repeat this for all services that you installed.
|
|
Common services that might have been installed are @code{sshd}, @code{cron},
|
|
@code{cygserver}, @code{inetd}, @code{apache}, and so on.
|
|
|
|
@item Stop the X11 server if it is running, and terminate any Cygwin programs
|
|
that might be running in the background. Remove all mount information by typing
|
|
@samp{umount -A} and then exit the command prompt and ensure that no Cygwin
|
|
processes remain. Note: If you want to save your mount points for a later
|
|
reinstall, first save the output of @samp{mount -m} as described at
|
|
@file{http://cygwin.com/cygwin-ug-net/using-utils.html#mount}.
|
|
|
|
@item Delete the Cygwin root folder and all subfolders. If you get an error
|
|
that an object is in use, then ensure that you've stopped all services and
|
|
closed all Cygwin programs. If you get a 'Permission Denied' error then you
|
|
will need to modify the permissions and/or ownership of the files or folders
|
|
that are causing the error. For example, sometimes files used by system
|
|
services end up owned by the SYSTEM account and not writable by regular users.
|
|
|
|
The quickest way to delete the entire tree if you run into this problem is to
|
|
change the ownership of all files and folders to your account. To do this in
|
|
Windows Explorer, right click on the root Cygwin folder, choose Properties, then
|
|
the Security tab. Select Advanced, then go to the Owner tab and make sure your
|
|
account is listed as the owner. Select the 'Replace owner on subcontainers and
|
|
objects' checkbox and press Ok. After Explorer applies the changes you should
|
|
be able to delete the entire tree in one operation. Note that you can also
|
|
achieve this in Cygwin by typing @samp{chown -R user /} or by using other tools
|
|
such as CACLS.EXE.
|
|
|
|
@item Delete the Cygwin shortcuts on the Desktop and Start Menu, and anything
|
|
left by setup.exe in the download directory. However, if you plan to reinstall
|
|
Cygwin it's a good idea to keep your setup.exe download directory since you can
|
|
reinstall the packages left in its cache without redownloading them.
|
|
|
|
@item If you added Cygwin to your system path, you should remove it unless you
|
|
plan to reinstall Cygwin to the same location. Similarly, if you set your
|
|
CYGWIN environment variable system-wide and don't plan to reinstall, you should
|
|
remove it.
|
|
|
|
@item Finally, if you want to be thorough you can delete the registry tree
|
|
@samp{Software\Cygnus Solutions} under @code{HKEY_LOCAL_MACHINE} and/or
|
|
@code{HKEY_CURRENT_USER}. However, if you followed the directions above you
|
|
will have already removed all the mount information which is typically the only
|
|
thing stored in the registry.
|
|
|
|
@end enumerate
|
|
|
|
@subsection How do I install snapshots?
|
|
|
|
First, are you sure you want to do this? Snapshots are risky. They
|
|
have not been tested. Use them @strong{only} if there is a feature or
|
|
bugfix that you need to try, and you are willing to deal with any
|
|
problems.
|
|
|
|
Before installing a snapshot, you must first Close @strong{all} Cygwin
|
|
applications, including shells and services (e.g. inetd, sshd), before
|
|
updating @code{cygwin1.dll}. You may have to restart Windows to clear
|
|
the DLL from memory.
|
|
|
|
You cannot use Setup to install a snapshot.
|
|
|
|
You should generally install the full
|
|
@code{cygwin-inst-YYYYMMDD.tar.bz2} update, rather than just the DLL,
|
|
otherwise some components may be out of sync. Cygwin tar won't be
|
|
able to update @code{/usr/bin/cygwin1.dll}, but it should succeed with
|
|
everything else.
|
|
|
|
@enumerate
|
|
|
|
@item Download the snapshot, and run:
|
|
@example
|
|
cd /
|
|
tar jxvf /posix/path/to/cygwin-inst-YYYYMMDD.tar.bz2 --exclude=usr/bin/cygwin1.dll
|
|
cd /tmp
|
|
tar jxvf /posix/path/to/cygwin-inst-YYYYMMDD.tar.bz2 usr/bin/cygwin1.dll
|
|
@end example
|
|
|
|
@item After closing all Cygwin apps (see above), use Explorer or the
|
|
Windows command shell to move @code{C:\cygwin\tmp\usr\bin\cygwin1.dll}
|
|
to @code{C:\cygwin\bin\cygwin1.dll}.
|
|
|
|
@end enumerate
|
|
|
|
@subsection Can Cygwin Setup maintain a ``mirror''?
|
|
|
|
NO. Cygwin Setup cannot do this for you. Use a tool designed for
|
|
this purpose. See @file{http://rsync.samba.org/},
|
|
@file{http://wget.sunsite.dk/} for utilities that can do this for you.
|
|
For more information on setting up a custom Cygwin package server, see
|
|
the Cygwin Setup homepage at
|
|
@file{http://sources.redhat.com/cygwin-apps/setup.html}.
|
|
|
|
@subsection How can I make my own portable Cygwin on CD?
|
|
|
|
While some users have successfully done this, for example Indiana
|
|
University's XLiveCD @file{http://xlivecd.indiana.edu/}, there is no
|
|
easy way to do it. Full instructions for constructing a porttable Cygwin
|
|
on CD by hand can be found on the mailing list at
|
|
@file{http://www.cygwin.com/ml/cygwin/2003-07/msg01117.html}. (Thanks
|
|
to fergus at bonhard dot uklinux dot net for these instructions.)
|
|
|
|
@subsection How do I save, restore, delete, or modify the Cygwin information stored in the registry?
|
|
|
|
Currently Cygwin stores its mount table information in the registry. It
|
|
is recommended that you use the @samp{mount} and @samp{umount} commands
|
|
to manipulate the mount information instead of directly modifying the
|
|
registry.
|
|
|
|
To save the mount information to a file for later restoration, use
|
|
@samp{mount -m > mounts.bat} To remove all mount information use
|
|
@samp{umount -A}. To reincorporate saved mount information just run the
|
|
batch file. For more information on using @samp{mount}, see
|
|
@file{http://cygwin.com/cygwin-ug-net/using-utils.html#mount}.
|