745 lines
		
	
	
		
			34 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			745 lines
		
	
	
		
			34 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<?xml version="1.0" encoding='UTF-8'?>
 | 
						|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.5//EN"
 | 
						|
		"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 | 
						|
 | 
						|
<qandadiv id="faq.setup">
 | 
						|
<title>Setting up Cygwin</title>
 | 
						|
 | 
						|
<!-- faq-setup.xml -->
 | 
						|
<qandaentry id="faq.setup.setup">
 | 
						|
<question><para>What is the recommended installation procedure?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>There is only one recommended way to install Cygwin, which is to use the GUI
 | 
						|
installer <command>setup-*.exe</command>.  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
 | 
						|
<ulink url="https://cygwin.com/cygwin-ug-net/setup-net.html"/>.
 | 
						|
</para>
 | 
						|
<para>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
 | 
						|
<ulink url="https://cygwin.com/snapshots/"/>, then by all means report it to the
 | 
						|
mailing list.
 | 
						|
</para>
 | 
						|
<para>For a searchable list of packages that can be installed with Cygwin,
 | 
						|
see <ulink url="https://cygwin.com/packages/"/>.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.automated">
 | 
						|
<question><para>What about an automated Cygwin installation?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>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
 | 
						|
<literal>-q -L -l x:\cygwin-local\</literal>, where your downloaded 
 | 
						|
package tree is in <literal>x:\cygwin-local\</literal> (see the next FAQ for
 | 
						|
an explanation of those options.)
 | 
						|
</para>
 | 
						|
<para>
 | 
						|
For other options, search the mailing lists with terms such as 
 | 
						|
<ulink url="http://www.google.com/search?q=cygwin+automated+setup">cygwin automated setup</ulink> or
 | 
						|
<ulink url="http://www.google.com/search?q=automated+cygwin+install">automated cygwin install</ulink>.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.cli">
 | 
						|
<question><para>Does Setup accept command-line arguments?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>Yes, run <literal>setup-x86.exe --help</literal> or
 | 
						|
<literal>setup-x86_64.exe --help</literal> for a list.
 | 
						|
</para>
 | 
						|
 | 
						|
<screen>
 | 
						|
    --allow-unsupported-windows    Allow old, unsupported Windows versions
 | 
						|
 -a --arch                         architecture to install (x86_64 or x86)
 | 
						|
 -C --categories                   Specify entire categories to install
 | 
						|
 -o --delete-orphans               remove orphaned packages
 | 
						|
 -A --disable-buggy-antivirus      Disable known or suspected buggy anti virus
 | 
						|
                                   software packages during execution.
 | 
						|
 -D --download                     Download from internet
 | 
						|
 -f --force-current                select the current version for all packages
 | 
						|
 -h --help                         print help
 | 
						|
 -I --include-source               Automatically include source download
 | 
						|
 -i --ini-basename                 Use a different basename, e.g. "foo",
 | 
						|
                                   instead of "setup"
 | 
						|
 -U --keep-untrusted-keys          Use untrusted keys and retain all
 | 
						|
 -L --local-install                Install from local directory
 | 
						|
 -l --local-package-dir            Local package directory
 | 
						|
 -m --mirror-mode                  Skip availability check when installing from
 | 
						|
                                   local directory (requires local directory to
 | 
						|
                                   be clean mirror!)
 | 
						|
 -B --no-admin                     Do not check for and enforce running as
 | 
						|
                                   Administrator
 | 
						|
 -d --no-desktop                   Disable creation of desktop shortcut
 | 
						|
 -r --no-replaceonreboot           Disable replacing in-use files on next
 | 
						|
                                   reboot.
 | 
						|
 -n --no-shortcuts                 Disable creation of desktop and start menu
 | 
						|
                                   shortcuts
 | 
						|
 -N --no-startmenu                 Disable creation of start menu shortcut
 | 
						|
 -X --no-verify                    Don't verify setup.ini signatures
 | 
						|
 -O --only-site                    Ignore all sites except for -s
 | 
						|
 -M --package-manager              Semi-attended chooser-only mode
 | 
						|
 -P --packages                     Specify packages to install
 | 
						|
 -p --proxy                        HTTP/FTP proxy (host:port)
 | 
						|
 -Y --prune-install                prune the installation to only the requested
 | 
						|
                                   packages
 | 
						|
 -K --pubkey                       URL of extra public key file (gpg format)
 | 
						|
 -q --quiet-mode                   Unattended setup mode
 | 
						|
 -c --remove-categories            Specify categories to uninstall
 | 
						|
 -x --remove-packages              Specify packages to uninstall
 | 
						|
 -R --root                         Root installation directory
 | 
						|
 -S --sexpr-pubkey                 Extra public key in s-expr format
 | 
						|
 -s --site                         Download site
 | 
						|
 -u --untrusted-keys               Use untrusted keys from last-extrakeys
 | 
						|
 -g --upgrade-also                 also upgrade installed packages
 | 
						|
    --user-agent                   User agent string for HTTP requests
 | 
						|
 -v --verbose                      Verbose output
 | 
						|
 -W --wait                         When elevating, wait for elevated child
 | 
						|
                                   process
 | 
						|
</screen>
 | 
						|
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.noroot">
 | 
						|
<question><para>Can I install Cygwin without administrator rights?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>Yes.  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
 | 
						|
<command>setup-x86.exe</command> (for a 32 bit install) or
 | 
						|
<command>setup-x86_64.exe</command> (for a 64 bit install) and then start
 | 
						|
it from the command line or via the "Run..." dialog from the start menu
 | 
						|
using the <literal>--no-admin</literal> option, for instance:</para>
 | 
						|
 | 
						|
<para>
 | 
						|
<screen>
 | 
						|
  setup-x86.exe --no-admin
 | 
						|
</screen>
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.c">
 | 
						|
<question><para>Why not install in C:\?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>The Cygwin Setup program will prompt you for a "root" directory.
 | 
						|
The default is <literal>C:\cygwin</literal>, but you can change it.  You are urged not to
 | 
						|
choose something like <literal>C:\</literal> (the root directory on the system drive) for
 | 
						|
your Cygwin root.  If you do, then critical Cygwin system directories
 | 
						|
like <literal>etc</literal>, <literal>lib</literal> and <literal>bin</literal> could easily be corrupted by
 | 
						|
other (non-Cygwin) applications or packages that use <literal>\etc</literal>,
 | 
						|
<literal>\lib</literal> or <literal>\bin</literal>.  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.
 | 
						|
</para>
 | 
						|
<para>(In the past, there had been genuine bugs that would cause problems
 | 
						|
for people who installed in <literal>C:\</literal>, but we believe those are gone
 | 
						|
now.)
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.old-versions">
 | 
						|
<question><para>Can I use Cygwin Setup to get old versions of packages (like gcc-2.95)?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>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 
 | 
						|
<ulink url="https://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 <ulink url="https://cygwin.com/problems.html"/>.
 | 
						|
</para>
 | 
						|
<para>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, <literal>gcc2-2.95.3-10-src.tar.bz2</literal>), 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.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.install-security">
 | 
						|
<question><para>How does Cygwin secure the installation and update process?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>
 | 
						|
Here is how Cygwin secures the installation and update process to counter
 | 
						|
<ulink url="https://en.wikipedia.org/wiki/Man-in-the-middle_attack">man-in-the-middle (MITM) attacks</ulink>:
 | 
						|
</para>
 | 
						|
 | 
						|
<orderedlist>
 | 
						|
<listitem><para>The Cygwin website provides the setup program
 | 
						|
(<literal>setup-x86.exe</literal> or <literal>setup-x86_64.exe</literal>)
 | 
						|
using HTTPS (SSL/TLS).
 | 
						|
This authenticates that the setup program
 | 
						|
came from the Cygwin website
 | 
						|
(users simply use their web browsers to download the setup program).
 | 
						|
You can use tools like Qualsys' SSL Server Test,
 | 
						|
<ulink url="https://www.ssllabs.com/ssltest/"/>,
 | 
						|
to check the HTTPS configuration of Cygwin.
 | 
						|
The cygwin.com site supports HTTP Strict Transport Security (HSTS),
 | 
						|
which forces the browser to keep using HTTPS once the browser has seen
 | 
						|
it before (this counters many downgrade attacks).
 | 
						|
</para></listitem>
 | 
						|
<listitem><para>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
 | 
						|
(<ulink url="http://sourceware.org/cygwin-apps/setup.html"/>)
 | 
						|
source code file <literal>cyg-pubkey.h</literal>
 | 
						|
(the key is automatically generated from file <literal>cygwin.pub</literal>).
 | 
						|
</para></listitem>
 | 
						|
<listitem><para>The setup program downloads
 | 
						|
the package list <literal>setup.ini</literal> from a mirror
 | 
						|
and checks its digital signature.
 | 
						|
The package list is in the file
 | 
						|
<literal>setup.bz2</literal> (compressed) or
 | 
						|
<literal>setup.ini</literal> (uncompressed) on the selected mirror.
 | 
						|
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 <literal>.sig</literal>
 | 
						|
(signature) file for that package list, and checks that the package list
 | 
						|
is properly signed with the Cygwin public key embedded in the setup program.
 | 
						|
A mirror could corrupt the package list and/or signature, but this
 | 
						|
would be detected by setup program's signature detection
 | 
						|
(unless you use the <literal>-X</literal> option to disable signature checking).
 | 
						|
The setup program also checks the package list
 | 
						|
timestamp/version and reports to the user if the file
 | 
						|
goes backwards in time; that process detects downgrade attacks
 | 
						|
(e.g., where an attacker subverts a mirror to send a signed package list
 | 
						|
that is older than the currently-downloaded version).
 | 
						|
</para></listitem>
 | 
						|
<listitem><para>The packages to be installed
 | 
						|
(which may be updates) are downloaded and both their
 | 
						|
lengths and cryptographic hashes
 | 
						|
(from the signed <literal>setup.{bz2,ini}</literal> file) are checked.
 | 
						|
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-512
 | 
						|
for the <literal>setup.ini</literal> files.
 | 
						|
</para></listitem>
 | 
						|
</orderedlist>
 | 
						|
 | 
						|
<para>
 | 
						|
Cygwin uses the cryptographic hash algorithm SHA-512 as of 2015-03-23.
 | 
						|
The earlier 2015-02-06 update of the setup program added support for SHA-512
 | 
						|
(Cygwin previously used MD5).
 | 
						|
There are no known practical exploits of SHA-512 (SHA-512 is part of the
 | 
						|
widely-used SHA-2 suite of cryptographic hashes).
 | 
						|
</para>
 | 
						|
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.increase-install-security">
 | 
						|
<question><para>What else can I do to ensure that my installation and updates are secure?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>
 | 
						|
To best secure your installation and update process, download
 | 
						|
the setup program <literal>setup-x86.exe</literal> (32-bit) or
 | 
						|
<literal>setup-x86_64.exe</literal> (64-bit), and then
 | 
						|
check its signature (using a signature-checking tool you trust)
 | 
						|
using the Cygwin public key
 | 
						|
(<ulink url="https://cygwin.com/key/pubring.asc"/>).
 | 
						|
This was noted on the front page for installing and updating.
 | 
						|
</para>
 | 
						|
<para>
 | 
						|
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.
 | 
						|
You can use GnuPG to check signatures; if you have a trusted Cygwin
 | 
						|
installation you can install GnuPG.
 | 
						|
Otherwise, to check the signature you must use an existing trusted tool or
 | 
						|
install a signature-checking tool you can trust.
 | 
						|
</para>
 | 
						|
<para>
 | 
						|
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
 | 
						|
<ulink url="https://cygwin.com/faq/faq.html#faq.setup.install-security"/>.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.virus">
 | 
						|
<question><para>Is Cygwin Setup, or one of the packages, infected with a virus?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>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 <literal>setup</literal>.  Read the next entry for a fairly safe way to do
 | 
						|
this.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.hang">
 | 
						|
<question><para>My computer hangs when I run Cygwin Setup!</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>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:
 | 
						|
</para>
 | 
						|
<orderedlist><listitem><para>Download <literal>setup-x86.exe</literal> or
 | 
						|
<literal>setup-x86_64.exe</literal> and scan it explicitly.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>Turn off the anti-virus software.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>Run setup to download and extract all the tar files.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>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.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
</orderedlist>
 | 
						|
 | 
						|
<para>This should be safe, but only if Cygwin Setup is not substituted by
 | 
						|
something malicious.
 | 
						|
See also
 | 
						|
<ulink url="https://cygwin.com/faq/faq.html#faq.setup.install-security"/>
 | 
						|
for a description of how the
 | 
						|
Cygwin project counters man-in-the-middle (MITM) attacks.
 | 
						|
</para>
 | 
						|
 | 
						|
<para>See also <ulink url="https://cygwin.com/faq/faq.html#faq.using.bloda"/>
 | 
						|
for a list of applications that have been known, at one time or another, to
 | 
						|
interfere with the normal functioning of Cygwin.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.what-packages">
 | 
						|
<question><para>What packages should I download? Where are 'make', 'gcc', 'vi', etc?  </para></question>
 | 
						|
<answer>
 | 
						|
<para>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.  See 
 | 
						|
<ulink url="https://cygwin.com/packages/"/> for a searchable list of available
 | 
						|
packages, or use <literal>cygcheck -p </literal> as described in the Cygwin
 | 
						|
User's Guide at
 | 
						|
<ulink url="https://cygwin.com/cygwin-ug-net/cygcheck.html"/>.
 | 
						|
</para>
 | 
						|
<para>If you want to build programs, of course you'll need <literal>gcc</literal>,
 | 
						|
<literal>binutils</literal>, <literal>make</literal> and probably other packages from the
 | 
						|
``Devel'' category. Text editors can be found under ``Editors''.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.everything">
 | 
						|
<question><para>How do I just get everything?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>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:
 | 
						|
</para>
 | 
						|
<orderedlist>
 | 
						|
<listitem><para>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 <emphasis>everything</emphasis>, not just what it thinks you should have
 | 
						|
by default.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>Now click on the ``View'' button (twice) until you get to the
 | 
						|
``Pending'' view.  This shows exactly which packages are about to be
 | 
						|
downloaded and installed.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
</orderedlist>
 | 
						|
 | 
						|
<para>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.
 | 
						|
</para>
 | 
						|
<para>In general, a better method (in my opinion), is to:
 | 
						|
</para>
 | 
						|
<orderedlist>
 | 
						|
<listitem><para>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...
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>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 ``Pending'' view before proceeding, in case there's
 | 
						|
something you really <emphasis>don't</emphasis> want.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>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 <emphasis>really</emphasis> want to install everything!
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
</orderedlist>
 | 
						|
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.disk-space">
 | 
						|
<question><para>How much disk space does Cygwin require?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>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.
 | 
						|
</para>
 | 
						|
<para>After installation, the package archives remain in your ``Local
 | 
						|
Package Directory''.  By default the location of
 | 
						|
<literal>setup-x86{_64}.exe</literal>.  You may conserve disk space by
 | 
						|
deleting the subdirectories there.  These directories will have very weird
 | 
						|
looking names, being encoded with their URLs
 | 
						|
(named <literal>ftp%3a%2f...</literal>).
 | 
						|
</para>
 | 
						|
<para>Of course, you can keep them around in case you want to reinstall a
 | 
						|
package. If you want to clean out only the outdated packages, Michael Chase
 | 
						|
has written a script called <literal>clean_setup.pl</literal>, available
 | 
						|
at <filename>unsupported/clean_setup.pl</filename> in a Cygwin mirror.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.what-upgraded">
 | 
						|
<question><para>How do I know which version I upgraded from?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>Detailed logs of the most recent Cygwin Setup session can be found in
 | 
						|
<literal>/var/log/setup.log.full</literal> and less verbose information about
 | 
						|
prior actions is in <literal>/var/log/setup.log</literal>.
 | 
						|
</para>
 | 
						|
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.setup-fails">
 | 
						|
<question><para>What if setup fails?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>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
 | 
						|
<ulink url="https://cygwin.com/"/>.
 | 
						|
</para>
 | 
						|
<para>If you are downloading from the Internet, setup will fail if it cannot
 | 
						|
download the list of mirrors at <ulink url="https://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.
 | 
						|
</para>
 | 
						|
<para>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.
 | 
						|
</para>
 | 
						|
<para>If setup has otherwise behaved strangely, check the files
 | 
						|
<literal>setup.log</literal> and <literal>setup.log.full</literal> in
 | 
						|
<literal>/var/log</literal> (<literal>C:\cygwin\var\log</literal> by
 | 
						|
default).  It may provide some clues as to what went wrong and why.
 | 
						|
</para>
 | 
						|
<para>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.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.name-with-space">
 | 
						|
<question><para>My Windows logon name has a space in it, will this cause problems?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>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.
 | 
						|
</para>
 | 
						|
<para>You have two choices:
 | 
						|
</para><orderedlist>
 | 
						|
<listitem><para>You can rename the user in the Windows User Manager GUI.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>If that's not possible, you can create an /etc/passwd file
 | 
						|
using the <command>mkpasswd</command> command.  Then you can simply edit your
 | 
						|
Cygwin user name (first field). It's also a good idea to avoid spaces in the
 | 
						|
home directory.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
</orderedlist>
 | 
						|
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.home">
 | 
						|
<question><para>My <literal>HOME</literal> environment variable is not what I want.</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>When starting Cygwin from Windows, <literal>HOME</literal> is determined
 | 
						|
as follows:
 | 
						|
</para>
 | 
						|
<orderedlist>
 | 
						|
<listitem><para>If <literal>HOME</literal> is set in the Windows environment,
 | 
						|
translated to POSIX form.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>Otherwise, use the pw_home field from the passwd entry as
 | 
						|
returned by <command>getent passwd</command>.  If you want to learn how this
 | 
						|
field is set by Cygwin and how you can change it, this is explained in great
 | 
						|
detail in the Cygwin User's Guide at
 | 
						|
<ulink url="https://cygwin.com/cygwin-ug-net/ntsec.html"/>.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
</orderedlist>
 | 
						|
 | 
						|
<para>When using Cygwin from a network login (via ssh for instance),
 | 
						|
<literal>HOME</literal> is always taken from the passwd entry.
 | 
						|
</para>
 | 
						|
<para>If your <literal>HOME</literal> 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.
 | 
						|
</para>
 | 
						|
<para>Access to shared drives is often restricted when starting from the
 | 
						|
network, thus Domain users may wish to have a different <literal>HOME</literal>
 | 
						|
in the Windows environment (on shared drive) than in Cygwin (on local drive).
 | 
						|
Note that ssh only considers the account information as retrieved by
 | 
						|
getpwnam(3), disregarding <literal>HOME</literal>. 
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.uninstall-packages">
 | 
						|
<question><para>How do I uninstall individual packages?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>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''.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.uninstall-service">
 | 
						|
<question><para>How do I uninstall a Cygwin service?</para></question>
 | 
						|
<answer>
 | 
						|
<orderedlist>
 | 
						|
<listitem><para>List all services you have installed with 
 | 
						|
<literal>cygrunsrv -L</literal>. If you do not have 
 | 
						|
<literal>cygrunsrv</literal> installed, skip this FAQ.
 | 
						|
</para></listitem>
 | 
						|
<listitem><para>Before removing the service, you should stop it with 
 | 
						|
<literal>cygrunsrv --stop <replaceable>service_name</replaceable></literal>. 
 | 
						|
If you have <literal>inetd</literal> configured to run as a standalone
 | 
						|
service, it will not show up in the list, but 
 | 
						|
<literal>cygrunsrv --stop inetd</literal> will work to stop it as 
 | 
						|
well.
 | 
						|
</para></listitem> 
 | 
						|
<listitem><para>Lastly, remove the service with
 | 
						|
<literal>cygrunsrv --remove <replaceable>service_name</replaceable></literal>.
 | 
						|
</para></listitem>
 | 
						|
</orderedlist>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.uninstall-all">
 | 
						|
<question><para>How do I uninstall <emphasis role='bold'>all</emphasis> of Cygwin?</para></question>
 | 
						|
<answer>
 | 
						|
<para>Setup has no automatic uninstall facility.  The recommended method to remove all 
 | 
						|
of Cygwin is as follows:
 | 
						|
</para>
 | 
						|
<orderedlist>
 | 
						|
<listitem><para>If you have any Cygwin services running, remove by repeating 
 | 
						|
the instructions in <ulink
 | 
						|
url="https://cygwin.com/faq/faq.html#faq.setup.uninstall-service"/> for
 | 
						|
all services that you installed.  Common services that might have been
 | 
						|
installed are <literal>sshd</literal>, <literal>cron</literal>, 
 | 
						|
<literal>cygserver</literal>, <literal>inetd</literal>, <literal>apache</literal>, 
 | 
						|
<literal>postgresql</literal>, and so on.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>Stop the X11 server if it is running, and terminate any Cygwin programs 
 | 
						|
that might be running in the background.  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 <literal>mount -m</literal> as described at 
 | 
						|
<ulink url="https://cygwin.com/cygwin-ug-net/mount.html"/>.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>If you installed <literal>cyglsa.dll</literal> by running the
 | 
						|
shell script <literal>/usr/bin/cyglsa-config</literal> as described in
 | 
						|
<ulink url="https://cygwin.com/cygwin-ug-net/ntsec.html"/>, then you need to
 | 
						|
configure Windows to stop using the LSA authentication package.  You do so by
 | 
						|
editing the registry and restoring
 | 
						|
<literal>/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa/Authentication Packages</literal>
 | 
						|
back to it's original value of <literal>msv1_0</literal>, and then rebooting.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>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.</para>
 | 
						|
<para>The quickest way to delete the entire tree if you run into this problem
 | 
						|
is to take 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.  If you are using Simple File Sharing, you
 | 
						|
will need to boot into Safe Mode to access 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 by using other tools such as
 | 
						|
<literal>icacls.exe</literal> or directly from Cygwin by using
 | 
						|
<literal>chown</literal>.  Please note that you shouldn't use the
 | 
						|
recursive form of chown on directories that have other file systems
 | 
						|
mounted under them (specifically you must avoid
 | 
						|
<literal>/proc</literal>) since you'd change ownership of the files under those
 | 
						|
mount points as well.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>Delete the Cygwin shortcuts on the Desktop and Start Menu, and
 | 
						|
anything left by setup-x86{_64}.exe in the download directory.  However, if you
 | 
						|
plan to reinstall Cygwin it's a good idea to keep your setup-x86{_64}.exe
 | 
						|
download directory since you can reinstall the packages left in its cache
 | 
						|
without redownloading them.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>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.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
<listitem><para>Finally, if you want to be thorough you can delete the registry tree 
 | 
						|
<literal>Software\Cygwin</literal> under <literal>HKEY_LOCAL_MACHINE</literal> and/or 
 | 
						|
<literal>HKEY_CURRENT_USER</literal>.  However, if you followed the directions above you 
 | 
						|
will have already removed everything important.  Typically only the installation
 | 
						|
directory has been stored in the registry at all.
 | 
						|
</para>
 | 
						|
</listitem>
 | 
						|
</orderedlist>
 | 
						|
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.snapshots">
 | 
						|
<question><para>How do I install snapshots?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>First, are you sure you want to do this?  Snapshots are risky.  They
 | 
						|
have not been tested.  Use them <emphasis role='bold'>only</emphasis> if there is a feature or
 | 
						|
bugfix that you need to try, and you are willing to deal with any
 | 
						|
problems, or at the request of a Cygwin developer.
 | 
						|
</para>
 | 
						|
<para>You cannot use Cygwin Setup to install a snapshot.
 | 
						|
</para>
 | 
						|
<para>First, you will need to download the snapshot from the snapshots
 | 
						|
page at <ulink url="https://cygwin.com/snapshots/"/>.  Note the directory where
 | 
						|
you saved the snapshot tarball.
 | 
						|
</para>
 | 
						|
<para>Before installing a snapshot, you must first Close <emphasis role='bold'>all</emphasis> Cygwin
 | 
						|
applications, including shells and services (e.g., <literal>inetd</literal>, <literal>sshd</literal>).
 | 
						|
You will not be able to replace <literal>cygwin1.dll</literal> if any Cygwin process is
 | 
						|
running.  You may have to restart Windows to clear the DLL from memory
 | 
						|
(beware of automatic service startup).
 | 
						|
</para>
 | 
						|
<para>Most of the downloaded snapshot can be installed using <literal>tar</literal>.  Cygwin
 | 
						|
<literal>tar</literal> won't be able to update <literal>/usr/bin/cygwin1.dll</literal> (because it's
 | 
						|
used by <literal>tar</literal> itself), but it should succeed with everything else.  If
 | 
						|
you are only installing the DLL snapshot, skip the first tar command.  Open
 | 
						|
a <literal>bash</literal> shell (it should be the only running Cygwin process) and issue
 | 
						|
the following commands:
 | 
						|
<screen>
 | 
						|
	/bin/tar -C / -xvf /posix/path/to/cygwin-inst-YYYYMMDD.tar.* --exclude=usr/bin/cygwin1.dll
 | 
						|
	/bin/tar -C /tmp -xvf /posix/path/to/cygwin-inst-YYYYMMDD.tar.* usr/bin/cygwin1.dll
 | 
						|
</screen>
 | 
						|
</para>
 | 
						|
<para>Exit the bash shell, and use Explorer or the Windows command shell to
 | 
						|
first rename <literal>C:\cygwin\bin\cygwin1.dll</literal> to
 | 
						|
<literal>C:\cygwin\bin\cygwin1-prev.dll</literal> and then move
 | 
						|
<literal>C:\cygwin\tmp\usr\bin\cygwin1.dll</literal>
 | 
						|
to <literal>C:\cygwin\bin\cygwin1.dll</literal> (assuming you installed Cygwin in
 | 
						|
<literal>C:\cygwin</literal>).
 | 
						|
</para>
 | 
						|
<para>The operative word in trying the snapshots is "<emphasis>trying</emphasis>".  If you
 | 
						|
notice a problem with the snapshot that was not present in the release
 | 
						|
DLL (what we call a "regression"), please report it to the Cygwin
 | 
						|
mailing list (see <ulink url="https://cygwin.com/problems.html"/> for problem
 | 
						|
reporting guidelines).  If you wish to go back to the older version of the
 | 
						|
DLL, again, close all Cygwin processes, delete
 | 
						|
<literal>C:\cygwin\bin\cygwin1.dll</literal>, and
 | 
						|
rename <literal>C:\cygwin\bin\cygwin1-prev.dll</literal> back to
 | 
						|
<literal>C:\cygwin\bin\cygwin1.dll</literal> (again assuming that your "<literal>/</literal>" is
 | 
						|
<literal>C:\cygwin</literal>).  To restore the rest of the snapshot
 | 
						|
files, reinstall the "<literal>cygwin</literal>" package using Setup.
 | 
						|
</para>
 | 
						|
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.mirror">
 | 
						|
<question><para>Can Cygwin Setup maintain a ``mirror''?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>NO.  Cygwin Setup cannot do this for you.  Use a tool designed for
 | 
						|
this purpose.  See <ulink url="http://rsync.samba.org/"/>,
 | 
						|
<ulink url="http://www.gnu.org/software/wget/"/> 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
 | 
						|
<ulink url="https://sourceware.org/cygwin-apps/setup.html"/>.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.cd">
 | 
						|
<question><para>How can I make my own portable Cygwin on CD?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>While some users have successfully done this, for example Indiana
 | 
						|
University's XLiveCD <ulink url="http://racinfo.indiana.edu/research/xlivecd.php"/>, there is no
 | 
						|
easy way to do it. Full instructions for constructing a portable Cygwin
 | 
						|
on CD by hand can be found on the mailing list at
 | 
						|
<ulink url="https://www.cygwin.com/ml/cygwin/2003-07/msg01117.html"/>
 | 
						|
(Thanks to fergus at bonhard dot uklinux dot net for these instructions.)
 | 
						|
Please note that these instructions are very old and are referring to the
 | 
						|
somewhat different setup of a Cygwin 1.5.x release.  As soon as somebody set
 | 
						|
this up for recent Cygwin releases, we might add this information here.
 | 
						|
</para>
 | 
						|
</answer></qandaentry>
 | 
						|
 | 
						|
<qandaentry id="faq.setup.registry">
 | 
						|
<question><para>How do I save, restore, delete, or modify the Cygwin information stored in the registry?</para></question>
 | 
						|
<answer>
 | 
						|
 | 
						|
<para>Cygwin doesn't store anything important in the registry anymore for
 | 
						|
quite some time.  There's no reason to save, restore or delete it.
 | 
						|
</para></answer></qandaentry>
 | 
						|
</qandadiv>
 | 
						|
 |