| <?xml version="1.0" encoding='UTF-8'?> |
| <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.5//EN" |
| "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> |
| |
| <chapter id="setup-net" xmlns:xi="http://www.w3.org/2001/XInclude"> |
| <title>Setting Up Cygwin</title> |
| |
| <sect1 id="internet-setup"> |
| <title>Internet Setup</title> |
| <para>To install the Cygwin net release, go to <ulink |
| url="https://cygwin.com/"/> and run either |
| <ulink url="https://cygwin.com/setup-x86.exe">setup-x86.exe</ulink> |
| to install the 32 bit version of Cygwin, or |
| <ulink url="https://cygwin.com/setup-x86_64.exe">setup-x86_64.exe</ulink> |
| to install the 64 bit version of Cygwin. This will download a GUI |
| installer which can be run to download a complete cygwin installation |
| via the internet. Follow the instructions on each screen to install Cygwin. |
| </para> |
| |
| <para> |
| <note> |
| For easier reading the installer is called <command>setup.exe</command> |
| throughout the following sections. This refers likewise to both |
| installer applications, |
| <ulink url="https://cygwin.com/setup-x86.exe">setup-x86.exe</ulink> |
| for 32 bit, as well as |
| <ulink url="https://cygwin.com/setup-x86_64.exe">setup-x86_64.exe</ulink> |
| for 64 bit. Apart from the target architecture they are the same thing. |
| </note> |
| </para> |
| |
| <para> |
| The <command>setup.exe</command> installer is designed to be easy |
| for new users to understand while remaining flexible for the |
| experienced. The volunteer development team is constantly working |
| on <command>setup.exe</command>; before requesting a new feature, |
| check the wishlist in the |
| <ulink url="https://sourceware.org/git/gitweb.cgi?p=cygwin-setup.git;a=blob_plain;f=README;hb=HEAD">Git <literal>README</literal> |
| </ulink>. It may already be present in the Git version! |
| </para> |
| |
| <para> |
| On Windows Vista and later, <command>setup.exe</command> will check by |
| default if it runs with administrative privileges and, if not, will try |
| to elevate the process. If you want to avoid this behaviour and install |
| under an unprivileged account just for your own usage, run |
| <command>setup.exe</command> with the <literal>--no-admin</literal> option. |
| </para> |
| |
| <para> |
| Since the default value for each option is the logical choice for |
| most installations, you can get a working minimal Cygwin environment |
| installed by simply clicking the <literal>Next</literal> button |
| at each page. The only exception to this is choosing a Cygwin mirror, |
| which you can choose by experimenting with those listed at |
| <ulink url="https://cygwin.com/mirrors.html"/>. For more details about each of page of the |
| <command>setup.exe</command> installation, read on below. |
| Please note that this guide assumes that you have a basic understanding |
| of Unix (or a Unix-like OS). If you are new to Unix, you will also want |
| to make use of <ulink url="http://www.google.com/search?q=new+to+unix"> |
| other resources</ulink>. |
| </para> |
| |
| <sect2 id="setup-download"><title>Download Source</title> |
| <para> |
| Cygwin uses packages to manage installing various software. When |
| the default <literal>Install from Internet</literal> option is chosen, |
| <command>setup.exe</command> creates a local directory to store |
| the packages before actually installing the contents. |
| <literal>Download from Internet</literal> performs only the first |
| part (storing the packages locally), while |
| <literal>Install from Local Directory</literal> performs only the |
| second (installing the contents of the packages). |
| </para> |
| <para> |
| The <literal>Download from Internet</literal> option is mainly |
| for creating a base Cygwin package tree on one computer for |
| installation on several machines with |
| <literal>Install from Local Directory</literal>; copy the |
| entire local package tree to another machine with the directory |
| tree intact. For example, you might create a <literal>C:\cache\</literal> |
| directory and place <command>setup.exe</command> in it. Run |
| <command>setup.exe</command> to <literal>Install from Internet</literal> |
| or <literal>Download from Internet</literal>, then copy the whole |
| <literal>C:\cache\</literal> to each machine and instead choose |
| <literal>Install from Local Directory</literal>. |
| </para> |
| <para> |
| Though this provides some basic mirroring functionality, if you |
| are managing a large Cygwin installation, to keep up to date we recommend |
| using a mirroring tool such as <command>wget</command>. A helpful user on |
| the Cygwin mailing list created a simple demonstration script to accomplish |
| this; search the list for <command>mkcygwget</command> for ideas. |
| </para> |
| </sect2> |
| |
| <sect2 id="setup-dir"><title>Selecting an Install Directory</title> |
| <para> |
| The <literal>Root Directory</literal> for Cygwin (default |
| <literal>C:\cygwin</literal>) will become <literal>/</literal> |
| within your Cygwin installation. You must have write access to |
| the parent directory, and any ACLs on the parent directory will |
| determine access to installed files. |
| </para> |
| <para> |
| The <literal>Install For</literal> options of <literal>All Users</literal> |
| or <literal>Just Me</literal> should always be left on the default |
| <literal>All Users</literal>, unless you do not have write access to |
| <literal>HKEY_LOCAL_MACHINE</literal> in the registry or the All Users |
| Start Menu. This is true even if you are the only user planning to use Cygwin |
| on the machine. Selecting <literal>Just Me</literal> will cause problems |
| for programs such as <command>crond</command> and <command>sshd</command>. |
| If you do not have the necessary permissions, but still want to use these |
| programs, consult the Cygwin mailing list archives about others' experiences. |
| |
| </para> |
| </sect2> |
| |
| <sect2 id="setup-localdir"><title>Local Package Directory</title> |
| <para> |
| The <literal>Local Package Directory</literal> is the cache where |
| <command>setup.exe</command> stores the packages before they are |
| installed. The cache must not be the same folder as the Cygwin |
| root. Within the cache, a separate directory is created for each |
| Cygwin mirror, which allows <command>setup.exe</command> to use |
| multiple mirrors and custom packages. After installing Cygwin, |
| the cache is no longer necessary, but you may want to retain the |
| packages as backups, for installing Cygwin to another system, |
| or in case you need to reinstall a package. |
| </para> |
| </sect2> |
| |
| <sect2 id="setup-connection"><title>Connection Method</title> |
| <para> |
| The <literal>Direct Connection</literal> method of downloading will |
| directly connect. If your system is configured to use a proxy server or |
| auto-configuration scripts, the <literal>Use System Proxy Settings</literal> |
| method uses those settings. Alternatively, you can manually enter proxy |
| settings into the <literal>Use HTTP/FTP Proxy</literal> section. |
| </para> |
| </sect2> |
| |
| <sect2 id="setup-mirror"><title>Choosing Mirrors</title> |
| <para> |
| Since there is no way of knowing from where you will be downloading |
| Cygwin, you need to choose at least one mirror site. Cygwin mirrors |
| are geographically distributed around the world; check the list at |
| <ulink url="https://cygwin.com/mirrors.html"/> |
| to find one near you. You can select multiple mirrors by holding down |
| <literal>CTRL</literal> and clicking on each one. If you have the URL of |
| an unlisted mirror (for example, if your organization has an internal Cygwin |
| mirror) you can add it. |
| </para> |
| </sect2> |
| |
| <sect2 id="setup-packages"><title>Choosing Packages</title> |
| <para> |
| For each selected mirror site, <command>setup.exe</command> downloads a |
| small text file called <literal>setup.bz2</literal> that contains a list |
| of packages available from that site along with some basic information about |
| each package which <command>setup.exe</command> parses and uses to create the |
| chooser window. For details about the format of this file, see the |
| <ulink url="https://sourceware.org/cygwin-apps/setup.html">setup.exe homepage</ulink>. |
| </para> |
| <para> |
| The chooser is the most complex part of <command>setup.exe</command>. |
| Packages are grouped into categories, and one package may belong to multiple |
| categories (assigned by the volunteer package maintainer). Each package |
| can be found under any of those categories in the hierarchical chooser view. |
| By default, <command>setup.exe</command> |
| will install only the packages in the <literal>Base</literal> category |
| and their dependencies, resulting in a minimal Cygwin installation. |
| However, this will not include many commonly used tools such as |
| <command>gcc</command> (which you will find in the <literal>Devel</literal> |
| category). Since <command>setup.exe</command> automatically selects |
| dependencies, be careful not to unselect any required packages. In |
| particular, everything in the <literal>Base</literal> category is |
| required. |
| </para> |
| <para> |
| You can change <command>setup.exe</command>'s view style, which is helpful |
| if you know the name of a package you want to install but not which |
| category it is in. |
| Click on the <literal>View</literal> button and it will rotate between |
| <literal>Category</literal> (the default), <literal>Full</literal> (all |
| packages), and <literal>Pending</literal> (only packages to be |
| installed, removed or upgraded). |
| If you are familiar with Unix, you will probably want to at least glance |
| through the <literal>Full</literal> listing for your favorite tools. |
| </para> |
| <para> |
| Once you have an existing Cygwin installation, the <command>setup.exe</command> |
| chooser is also used to manage your Cygwin installation. |
| Information on installed packages is kept in the |
| <literal>/etc/setup/</literal> directory of your Cygwin installation; if |
| <command>setup.exe</command> cannot find this directory it will act as if |
| you have no Cygwin installation. If <command>setup.exe</command> |
| finds a newer version of an installed package available, it will automatically |
| mark it to be upgraded. |
| To <literal>Uninstall</literal>, <literal>Reinstall</literal>, or get the |
| <literal>Source</literal> for an existing package, click on |
| <literal>Keep</literal> to toggle it. |
| Also, to avoid the need to reboot after upgrading, make sure |
| to close all Cygwin windows and stop all Cygwin processes before |
| <command>setup.exe</command> begins to install the upgraded package. |
| </para> |
| <para> |
| To avoid unintentionally upgrading, use the <literal>Pending</literal> |
| view to see which packages have been marked for upgrading. If you |
| don't want to upgrade a package, click on the new version number to |
| toggle it until it says <literal>Keep</literal>. All packages can be |
| set to stay at the installed version by pressing the <literal>Keep</literal> |
| button in the top right part of the chooser window. |
| </para> |
| <para> |
| A previous version of each package is usually available, in case downgrading |
| is required to avoid a serious bug in the current version of the package. |
| Packages also occasionally have testing (or "experimental") versions available. |
| Previous and experimental versions can be chosen by clicking on the package's |
| <literal>New</literal> column until the required version appears. |
| </para> |
| <para> |
| All available experimental packages can be selected by pressing the |
| <literal>Exp</literal> in the top right part of the chooser window. |
| Be warned, however, that the next time you run <command>setup.exe</command> |
| it will try to replace all old or experimental versions with the current |
| version, unless told otherwise. |
| </para> |
| </sect2> |
| |
| <sect2 id="setup-progress"><title>Download and Installation Progress</title> |
| <para> |
| First, <command>setup.exe</command> will download all selected packages |
| to the local directory chosen earlier. Before installing, |
| <command>setup.exe</command> performs a checksum on each package. If the |
| local directory is a slow medium (such as a network drive) this can take |
| a long time. During the download and installation, <command>setup.exe</command> |
| shows progress bars for the current task and total remaining disk space. |
| </para> |
| </sect2> |
| |
| <sect2 id="setup-icons"><title>Shortcuts</title> |
| <para> |
| You may choose to install "Cygwin Terminal" shortcuts on the Desktop |
| and/or Start Menu. These shortcuts run <command>mintty</command>, |
| which will start your default shell as specified |
| in <filename>/etc/passwd</filename>. |
| </para> |
| </sect2> |
| |
| <sect2 id="setup-postinstall"><title>Post-Install Scripts</title> |
| <para> |
| Last of all, <command>setup.exe</command> will run any post-install |
| scripts to finish correctly setting up installed packages. |
| When the last post-install script is completed, <command>setup.exe</command> |
| will display a box announcing the completion. A few packages, such as |
| the OpenSSH server, require some manual site-specific configuration. |
| Relevant documentation can be found in the <literal>/usr/doc/Cygwin/</literal> |
| or <literal>/usr/share/doc/Cygwin/</literal> directory. |
| </para> |
| </sect2> |
| <sect2 id="setup-troubleshooting"><title>Troubleshooting</title> |
| <para> |
| Unfortunately, the complex setup process means that odd problems can |
| occur. If you're having trouble downloading packages, it may be network |
| congestion, so try a different mirror and/or a different protocol (i.e., |
| HTTP instead of FTP). If you notice something is not working after |
| running setup, you can check the <command>setup.exe</command> log file |
| at <literal>/var/log/setup.log.full</literal>. Make a backup of this |
| file before running <command>setup.exe</command> again, and follow the |
| steps for <ulink url="https://cygwin.com/problems.html">Reporting |
| Problems with Cygwin</ulink>. |
| </para> |
| </sect2> |
| |
| </sect1> |
| |
| <xi:include href="setup-env.xml"/> |
| <xi:include href="setup-maxmem.xml"/> |
| <xi:include href="setup-locale.xml"/> |
| <xi:include href="setup-files.xml"/> |
| </chapter> |