Major re-write of "Installation using the setup.exe program".

This commit is contained in:
David Starks-Browning 2000-08-25 13:15:10 +00:00
parent 6642e617bb
commit 138b832b0c
1 changed files with 93 additions and 191 deletions

View File

@ -5,29 +5,41 @@ Unlike previous net releases such as B20.1 and earlier, there is no
monolithic "full" or "usertools" installation. Rather, you can pick and monolithic "full" or "usertools" installation. Rather, you can pick and
choose the packages you wish to install, and update them individually. choose the packages you wish to install, and update them individually.
The following packages are available with the latest net release: The following packages are available with the current release, in their
respective directories:
ash, bash, binutils, bison, byacc, bzip2, clear, common, cygwin, @table @samp
dejagnu, diff, expect, fileutils, findutils, flex, gawk, gcc, gdb,
gperf, grep, groff, gzip, inetutils, less, libpng, login, m4, make, man, @item latest
opengl, patch, sed, shellutils, tar, tcltk, termcap, texinfo, textutils, bison common diff flex gperf inetutils make opengl shellutils texinfo
time, zlib ash byacc crypt expect gawk grep less man patch tar textutils bash bzip2
cygwin fileutils gcc groff login sed tcltk time binutils clear dejagnu
findutils gdb gzip m4 mt termcap vim
@item contrib
cvs gdbm jbigkit jpeg libpng tiff zlib
@end table
Full source code is available for all packages and tools. Full source code is available for all packages and tools.
There are a few different ways to install the Cygwin net release, and There is one recommended way to install Cygwin, which is to use the GUI
we'll try to cover them all here. It is strongly recommended to use the installer @code{setup.exe}. There are some variations on how you go
automatic @code{setup.exe} program if you can. about that.
Do it any other way, and 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 elsewhere, then by all means report it to the
mailing list.
@section Installation using the @code{setup.exe} program @section Installation using the @code{setup.exe} program
@strong{IMPORTANT: If you run @code{setup.exe} on an existing Cygwin @strong{IMPORTANT: First read the README file in the @code{latest}
installation, Setup will overwrite the contents of mounted directories. directory at any ftp mirror. DO THIS NOW! Information in the README
There is no recovery from this. If you are upgrading from an older file is not repeated here. You can find a mirror site near you from
version of Cygwin, you may wish to back up your current installation and @file{http://sources.redhat.com/cygwin/mirrors.html}.}
unmount old mount points in order to isolate them. Then you can
re-install Cygwin in a new location with new mount points, if this is
what you want.}
The @code{setup.exe} program is the recommended way to install Cygwin, The @code{setup.exe} program is the recommended way to install Cygwin,
but it is still a work in progress. Expect features and functionality but it is still a work in progress. Expect features and functionality
@ -36,199 +48,89 @@ build time reported by @code{setup.exe} when you run it. This will help
diagnose problems, should you have any. Check the cygwin mailing list diagnose problems, should you have any. Check the cygwin mailing list
for the latest news about @code{setup.exe}. for the latest news about @code{setup.exe}.
You have a few options when using @code{setup.exe}. @subsection Why not install in C:\?
The @code{setup.exe} program will prompt you for a "root" directory. The @code{setup.exe} program will prompt you for a "root" directory.
The default is 'C:\cygwin', but you can change it. (You are strongly The default is 'C:\cygwin', but you can change it. You are urged not to
urged @strong{not} to choose something like 'C:\'.) It will contain the choose something like 'C:\' (the root directory on the system drive) for
necessary files and directory structure, and will be mounted to '/' as your Cygwin root. If you do, then critical Cygwin system directories
part of the installation process. like 'etc', 'lib' and 'bin' could easily be corrupted by other (non-Cygwin)
applications or packages that use \etc, \lib or \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 C:\,
but we believe those are gone now.)
After a new installation in the default location, your mount points will @subsection Can I use the new setup to update a B18, B19, B20, B20.1 or CD-ROM (1.0) installation of Cygwin?
look something like this:
@example No, you must start from scratch with the new setup. The overall
Device Directory Type Flags structure has changed so much that it would be silly to try to
C:\cygwin\bin /usr/bin user binmode accomodate old installations of Cygwin. You'll probably be much better
C:\cygwin\lib /usr/lib user binmode off with a whole new installation anyway. You may backup or rename your
C:\cygwin / user binmode old installation first, or just install the new one somewhere else. Be
@end example sure to make note of your current mount table, because this will be
overwritten during the new setup.
Note that /bin and /usr/bin point to the same location, as do /lib and Once you've installed the latest net release, the new setup will update
/usr/lib. This is intentional, and you should not undo these mounts just the individual packages that need it.
unless you @emph{really} know what you are doing. Currently,
@code{setup.exe} creates only binary mounts, but future versions will
probably be more flexible.
You can let @code{setup.exe} download all the files for you on the fly. @subsection The README says I should turn off anti-virus software. Isn't that dangerous?
This is the 'internet' installation. Or you can download all (or some)
of the packages ahead of time, and instruct @code{setup.exe} to install
Cygwin from those files. This is the 'directory' installation. You
must use this method if you want to install only a subset of the
available packages.
Note that you cannot combine methods. If you use the directory Only Network Associates (formerly McAfee) products have been reported to
installation, @code{setup.exe} will install @strong{only} the packages "hang" when extracting Cygwin tar archives. Other products should not
it finds in the directory; it will not also be able to download packages cause problems, if you prefer to keep them running.
from the internet in the same pass. If you have not carefully chosen
which packages to download, you may not end up with a working Cygwin
installation. You can, however, add and update packages later. See
below.
Whichever you choose, the first step is to open an ftp mirror site near Otherwise, you can download @code{setup.exe} and scan it. Then turn off
you from @file{http://sources.redhat.com/cygwin/mirrors.html}. Then the anti-virus software, then run setup to download and extract all the
go to the 'latest' directory, download @code{setup.exe} and save that to tar files. Then re-activate your anti-virus software and scan
an @strong{empty temporary directory}. While you're there, download the everything in C:\cygwin (or wherever you chose to install). This should
README file and read it. Then read it again. be safe. (As long as nobody substitutes a malicious setup.exe ...)
Then proceed according to your choice below. @subsection What packages should I download?
@subsection Internet installation with @code{setup.exe} Just get everything, if you have room for it. But if you must be
selective:
Shut down @strong{all cygwin applications} (including inetd, etc.). @table @samp
Then, in a @strong{Windows command prompt} ("MS-DOS Prompt" in Windows @item cygwin
95/98), '@code{cd}' to the temporary directory and type This is the minimum core, consisting of the cygwin1.dll and a few
'@code{setup.exe}'. commands (like @code{mount}). Not much else, and no shell!
When prompted, specify the location of the root directory, or accept the @item bash
default. This is the default interactive command shell for cygwin. If you don't
install @samp{bash}, then the "Cygwin Bash Shell" shortcut that setup
creates for you won't actually do anything.
At the next prompt, choose to install from the Internet ('i'). This is @item ash
the default. This is often forgotten because it's not obvious that @samp{ash}
contains @code{/bin/sh}, which is essential for running scripts, (and
@code{make} and ...).
Setup will connect to sources.redhat.com to read a list of mirror @end table
sites. Choose one from the list, or choose 'other' to supply your own.
If you supply your own, you must provide a full URL, not just the ftp
hostname. Setup will then proceed to download and install all packages
from the ftp site. Of course this may take a while if you have a slow
connection.
When finished, Setup will have created a "Cygnus Solutions" folder on If you want to build programs, of course you'll need @samp{gcc}, but
your Start Menu, containing a shortcut to @code{cygwin.bat}, which you'll also need @samp{binutils}, probably @samp{make} and
invokes bash with various environment variables set correctly. The @samp{fileutils}, and possibly lots more. (Again, consider just getting
"Uninstall Cygwin" shortcut, if present, is unlikely to do a proper everything!)
job. If you want to completely uninstall Cygwin, you will probably have
to delete some things by hand.
Once setup is complete you may remove the temporary directory. It will @subsection What if setup fails?
contain @code{setup.exe}, the downloaded @code{.tar.gz} files, and a
setup log file, which is not needed, but may contain helpful diagnostics
if your installation failed for some reason.
@subsection Directory installation with @code{setup.exe} If you are downloading from the internet, setup will fail if it cannot
download the list of mirrors at
@file{http://sources.redhat.com/cygwin/mirrors.html}. It could be that
the network is too busy. Similarly for an ftp download site that isn't
working. Try another mirror, or try again later.
Before proceeding, you must download packages into the temporary If setup refuses to download a package that you know needs to be
directory containing @code{setup.exe}. These are in subdirectories of upgraded, try deleting that package's entry from /etc/setup. If you are
'latest' and end in .tar.gz and not in -src.tar.gz. If there is more reacting quickly to an announcement on the mailing list, it could be
than one in a given directory, pick the one with the highest version that the mirror you are using doesn't have the latest copy yet. Try
number. Put them together in the temporary directory containing another mirror, or try again tomorrow.
@code{setup.exe}. You may preserve the directory structure of 'latest',
and include the -src.tar.gz files, without ill effect.
Whatever subset you think is appropriate, it @strong{must} contain the @subsection What's the difference between packages in @samp{latest} and @samp{contrib}?
'cygwin' package, or you will not end up with a working Cygwin
installation.
When you have all the necessary tar files together with
@code{setup.exe}, proceed as you would for an internet installation,
except choose directory installation ('d') when prompted. Setup will
install all the tar files that it finds there. Here are the gory
details again:
Shut down @strong{all cygwin applications} (including inetd, etc.).
Then, in a @strong{Windows command prompt} ("MS-DOS Prompt" in Windows
95/98), '@code{cd}' to the temporary directory and type
'@code{setup.exe}'.
When prompted, specify the location of the root directory, or accept the
default.
At the next prompt, choose to install from the current directory ('d').
This is @strong{not} the default.
When finished, Setup will have created a "Cygnus Solutions" folder on
your Start Menu, containing a shortcut to @code{cygwin.bat}, which
invokes bash with various environment variables set correctly. The
"Uninstall Cygwin" shortcut, if present, is unlikely to do a proper
job. If you want to completely uninstall Cygwin, you will probably have
to delete some things by hand.
Once setup is complete you may remove the temporary directory. It will
contain @code{setup.exe}, the downloaded @code{.tar.gz} files, and a
setup log file, which is not needed, but may contain helpful diagnostics
if your installation failed for some reason.
@subsection Adding or updating packages
Later versions of @code{setup.exe} permit you to add and/or update
packages to an existing cygwin installation.
@strong{You cannot use this method to update a B18, B19, B20, B20.1 or
CD-ROM (1.0) installation of Cygwin. You must have previously installed
a net release of Cygwin 1.1.0 or greater, using @code{setup.exe}, before
you can update packages with 'setup -u'.}
To update your installation, create an empty temporary directory, and
download the latest version of @code{setup.exe} to it from a Cygwin
mirror near you.
Then, in a @strong{Windows command prompt} ("MS-DOS Prompt" in Windows
95/98), '@code{cd}' to the temporary directory and type
@example
setup -u <pkg>
@end example
where "<pkg>" is the name of the package you wish to update, such as
"cygwin" or "gdb" or "make" or ...
Specify the root directory as you did when you first installed Cygwin.
This will update the package. As with the initial installation, you can
update from the internet ('i') or from the directory ('d'). The latter
requires that you download the @code{.tar.gz} file of the package ahead
of time, along with @code{setup.exe}.
If you are updating the package "cygwin", then you must close
@strong{all} Cygwin applications (including @code{inetd}, for example),
before running setup.
You can omit the '-u' option, which will force setup to install the
latest package (from internet or directory), regardless of whether
@code{setup.exe} believes it is necessary. You @strong{must} omit '-u'
if you are updating from a development snapshot, because development
snapshots have their version numbers "bumped" to the next release
number. In this case, @code{setup.exe} will think your installation is
already up-to-date.
Once setup is complete you may remove the temporary directory. It will
contain @code{setup.exe}, the downloaded @code{.tar.gz} files, and a
setup log file, which is not needed, but may contain helpful diagnostics
if your installation failed for some reason.
@subsection Problems running @code{setup.exe}
@subsubsection Error message: "Unable to retrieve the list of cygwin mirrors..."
This means that @code{setup.exe} could not make an http connection to
@file{http://sources.redhat.com/cygwin/mirrors.html}. This is
required for an internet ('i') install. Either sources.redhat.com was
too busy, or there is a problem with your network. Note that
@code{setup.exe} has very limited proxy functionality for firewalls, and
depends on IE4 or later being installed and configured properly. If you
cannot get the internet installation to work, just download the
packages yourself and do a directory ('d') install.
@subsubsection System hangs when unpacking tar archives
Your anti-virus software is interfering with @code{setup.exe}. You will
have to disable it before running setup. In that case, you will
probably want to:
@enumerate
@item download all the .tar.gz files for the packages, along with @code{setup.exe}
@item scan it all for viruses
@item disable the anti-virus software
@item perform a directory ('d') install
@item re-enable the anti-virus software
@item scan everything below your Cygwin root directory (@code{C:\cygwin} by default)
@end enumerate
Good question! That very issue is sometimes debated on the
@samp{cygwin-apps} mailing list. Check the list archives if you want to
know more.