Goal
Install Cygwin on a Windows 7 system.
Contents
- Goal
- Contents
- Brief Summary
- Summary
- Notes / Discoveries
- Project Log
Brief Summary
I successfully installed Cygwin 2.10.0 on my system, along with the default set of packages.
My system: Lenovo Thinkpad X200 running Windows 7 (64-bit).
Cygwin is:
- a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
- a DLL (cygwin1.dll) which provides substantial POSIX API functionality.
Note:
- None of the files mentioned in this project are stored as assets of this article.
Summary
I successfully installed Cygwin 2.10.0 on my system, along with the default set of packages.
My system:
- Hardware = Lenovo Thinkpad X200 (Laptop). Two internal hard drives, each of 75 GB capacity.
- Processor = Intel(R) Core(TM)2 Duo CPU, P8600 @ 2.40GHz
- Memory (RAM) = 4.00 GB
- Operating System = Windows 7 Professional (Service Pack 1), 64-bit
Cygwin is:
- a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
- a DLL (cygwin1.dll) which provides substantial POSIX API functionality.
The core of Cygwin is a DLL (Dynamic Link Library) that contains a C library that provides a POSIX-style API (Application Programming Interface). Unix applications expect to see a POSIX-style API. An application originally written for Unix can be compiled such that it uses the Cygwin DLL as a translator that interprets between the application and the Windows system.
I expect that there are some rough edges (some imperfect translations) so some changes may need to be made in the source code of a Unix application (to avoid certain configuration options or particular types of POSIX library functions) before it can be successfully compiled to run on Cygwin.
I think that the term "Cygwin" comprises the Cygwin DLL, the set of packages that have been successfully adjusted to use the DLL and run on Windows, and the environment (e.g. the filesystem) that the Cygwin installer sets up on a Windows system.
Notes / Discoveries
Parts:
- Cygwin
- Cygwin maintainers
- My results
Cygwin
Cygwin is:
- a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
- a DLL (cygwin1.dll) which provides substantial POSIX API functionality.
DLL = Dynamic Link Library
The DLL contains a C library that provides the POSIX-style API that is expected by Unix applications. If Unix applications are linked with this DLL, they can run on Windows.
Unix applications must be compiled from source in order to link them with the Cygwin DLL and thereby run on Cygwin.
Windows applications must be compiled from source in order to make them use Unix functionality supplied by Cygwin.
The Cygwin DLL currently works with all recent, commercially released x86 32 bit and 64 bit versions of Windows, starting with Windows Vista.
The only recommended way to install Cygwin is to run the GUI installer: setup-x86_64.exe (64-bit installation) or setup-x86.exe (32-bit installation). By default, a minimal subset of available packages will be installed. By default, package archives are stored in the same directory that contains setup-x86{_64}.exe.
The setup program is used a) to perform a fresh install or b) to update an existing installation. You can pick and choose the packages you wish to install, and update them individually.
The default installation directory (which becomes the "root directory" of the emulated Unix system) is C:\cygwin.
Cygwin packages have their own individual versioning systems, which are not related to the Cygwin versioning system.
Cygwin maintainers
Corinna Vinschen is the current project lead. Corinna is a senior Red Hat engineer. Corinna is responsible for the Cygwin library and maintains a couple of packages, for instance OpenSSH and OpenSSL.
Yaakov Selkowitz is another Red Hat engineer working on the Cygwin project. He maintains the current build / packaging system and many packages in the Cygwin distribution.
Jon Turney is the developer and maintainer of the Cygwin X server and a couple of related packages.
The packages in the Net release are maintained by a large group of people. A complete list can be found here:
cygwin.com/cygwin-pkg-maint
My results
I downloaded setup-x86_64.exe from
www.cygwin.com/setup-x86_64.exe
I ran setup-x86_64.exe, which reported that it was Setup version 2.893 (64 bit), and successfully installed Cygwin 2.10.0, along with the default set of packages.
The full Cygwin DLL version number was 2.10.0(0.325/5/3).
The default installation directory was C:\cygwin64.
Some properties of C:\cygwin64:
- Size: 102 MB (107,345,370 bytes)
- 4,883 Files, 562 Folders
In the directory containing setup-x86_64.exe, a new directory was created to contain the packages downloaded from the designated mirror site.
Some properties of this package archive directory:
- Size: 36.2 MB (38,013,252 bytes)
- 70 Files, 89 Folders
List of packages installed:
_autorebase 001007-1
alternatives 1.3.30c-10
base-cygwin 3.8-1
base-files 4.2-4
bash 4.4.12-3
bzip2 1.0.6-3
ca-certificates 2.22-1
coreutils 8.26-2
cygutils 1.4.16-2
cygwin 2.10.0-1
dash 0.5.9.1-1
diffutils 3.5-2
editrights 1.03-1
file 5.32-1
findutils 4.6.0-1
gawk 4.2.1-1
getent 2.18.90-4
grep 3.0-2
groff 1.22.3-1
gzip 1.8-1
hostname 3.13-1
info 6.5-2
ipc-utils 1.0-2
less 530-1
libargp 20110921-3
libattr1 2.4.46-1
libblkid1 2.25.2-2
libbz2_1 1.0.6-3
libffi6 3.2.1-2
libgcc1 7.3.0-3
libgdbm4 1.12-1
libgmp10 6.1.2-1
libiconv 1.14-3
libiconv2 1.14-3
libintl8 0.19.8.1-2
liblzma5 5.2.3-1
libmpfr6 4.0.1-4p11
libncursesw10 6.0-12.20171125
libopenssl100 1.0.2o-1
libp11-kit0 0.23.10-1
libpcre1 8.40-3
libpipeline1 1.4.0-1
libpopt-common 1.16-2
libpopt0 1.16-2
libreadline7 7.0.3-3
libsigsegv2 2.10-2
libsmartcols1 2.25.2-2
libstdc++6 7.3.0-3
libtasn1_6 4.13-1
libuuid1 2.25.2-2
login 1.12-1
man-db 2.7.6.1-1
mintty 2.9.0-0
ncurses 6.0-12.20171125
openssl 1.0.2o-1
p11-kit 0.23.10-1
p11-kit-trust 0.23.10-1
rebase 4.4.4-1
run 1.3.4-2
sed 4.4-1
tar 1.29-1
terminfo 6.0-12.20171125
tzcode 2018e-1
tzdata 2018e-1
util-linux 2.25.2-2
vim-minimal 8.0.1567-1
which 2.20-2
xz 5.2.3-1
zlib0 1.2.11-1
alternatives 1.3.30c-10
base-cygwin 3.8-1
base-files 4.2-4
bash 4.4.12-3
bzip2 1.0.6-3
ca-certificates 2.22-1
coreutils 8.26-2
cygutils 1.4.16-2
cygwin 2.10.0-1
dash 0.5.9.1-1
diffutils 3.5-2
editrights 1.03-1
file 5.32-1
findutils 4.6.0-1
gawk 4.2.1-1
getent 2.18.90-4
grep 3.0-2
groff 1.22.3-1
gzip 1.8-1
hostname 3.13-1
info 6.5-2
ipc-utils 1.0-2
less 530-1
libargp 20110921-3
libattr1 2.4.46-1
libblkid1 2.25.2-2
libbz2_1 1.0.6-3
libffi6 3.2.1-2
libgcc1 7.3.0-3
libgdbm4 1.12-1
libgmp10 6.1.2-1
libiconv 1.14-3
libiconv2 1.14-3
libintl8 0.19.8.1-2
liblzma5 5.2.3-1
libmpfr6 4.0.1-4p11
libncursesw10 6.0-12.20171125
libopenssl100 1.0.2o-1
libp11-kit0 0.23.10-1
libpcre1 8.40-3
libpipeline1 1.4.0-1
libpopt-common 1.16-2
libpopt0 1.16-2
libreadline7 7.0.3-3
libsigsegv2 2.10-2
libsmartcols1 2.25.2-2
libstdc++6 7.3.0-3
libtasn1_6 4.13-1
libuuid1 2.25.2-2
login 1.12-1
man-db 2.7.6.1-1
mintty 2.9.0-0
ncurses 6.0-12.20171125
openssl 1.0.2o-1
p11-kit 0.23.10-1
p11-kit-trust 0.23.10-1
rebase 4.4.4-1
run 1.3.4-2
sed 4.4-1
tar 1.29-1
terminfo 6.0-12.20171125
tzcode 2018e-1
tzdata 2018e-1
util-linux 2.25.2-2
vim-minimal 8.0.1567-1
which 2.20-2
xz 5.2.3-1
zlib0 1.2.11-1
During installation, there was a problem with the package ca-certificates.
package libopenssl100-1.0.2o-1 requires ca-certificates, but none of the providers can be installed
I didn't completely understand this, but I simply accepted the default solution
Solution 2/2 (default)
- do not ask to lock ca-certificates
- do not ask to lock ca-certificates
and proceeded with the installation.
Project Log
System:
- Hardware = Lenovo Thinkpad X200 (Laptop). Two internal hard drives, each of 75 GB capacity.
- Processor = Intel(R) Core(TM)2 Duo CPU, P8600 @ 2.40GHz
- Memory (RAM) = 4.00 GB
- Operating System = Windows 7 Professional (Service Pack 1), 64-bit
Google "cygwin".
Browse to first result:
www.cygwin.com
Excerpts:
This is the home of the Cygwin project.
What is it?
Cygwin is:
- a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
- a DLL (cygwin1.dll) which provides substantial POSIX API functionality.
What isn't it?
Cygwin is not:
- a way to run native Linux apps on Windows. You must rebuild your application from source if you want it to run on Windows.
- a way to magically make native Windows apps aware of UNIX functionality like signals, ptys, etc. Again, you need to build your apps from source if you want to take advantage of Cygwin functionality.
The Cygwin DLL currently works with all recent, commercially released x86 32 bit and 64 bit versions of Windows, starting with Windows Vista. For more information see the FAQ
[ https://www.cygwin.com/faq.html#faq.what.supported ].
Cygwin version
The most recent version of the Cygwin DLL is 2.10.0.
[...]
Installing Cygwin
Install Cygwin by running setup-x86_64.exe (64-bit installation)
[ https://www.cygwin.com/setup-x86_64.exe ]
or setup-x86.exe (32-bit installation)
[ https://www.cygwin.com/setup-x86.exe ]
Use the setup program to perform a fresh install or to update an existing installation.
Keep in mind that individual packages in the distribution are updated separately from the DLL so the Cygwin DLL version is not useful as a general Cygwin distribution release number.
Support for Cygwin
For all Cygwin-related questions and observations, please check the resources available at this site, such as the FAQ
[ https://www.cygwin.com/faq.html ],
the User's Guide
[ https://www.cygwin.com/cygwin-ug-net.html ]
and the mailing list archives
[ https://www.cygwin.com/lists.html ].
Notes:
- DLL = Dynamic Link Library
- On the navigation menu, there is a link to a page called "Search Packages":
cygwin.com/packages
- "The Cygwin DLL currently works with all recent, commercially released x86 32 bit and 64 bit versions of Windows, starting with Windows Vista." - This indicates that it will probably work on Windows 7.
- My processor is 64-bit, so I'll try the setup-x86_64.exe installation binary.
- The setup program is used for the initial installation and for updating an existing installation.
- Packages have their own versioning systems, which are not related to the Cygwin versioning system.
Browse to the FAQ:
www.cygwin.com/faq.html
Excerpts:
1.1.
Q: What is it?
Cygwin is a distribution of popular GNU and other Open Source tools running on Microsoft Windows. The core part is the Cygwin library which provides the POSIX system calls and environment these programs expect.
The Cygwin distribution contains thousands of packages from the Open Source world including most GNU tools, many BSD tools, an X server and a full set of X applications. If you're a developer you will find tools, headers and libraries allowing to write Windows console or GUI applications that make use of significant parts of the POSIX API. Cygwin allows easy porting of many Unix programs without the need for extensive changes to the source code. This includes configuring and building most of the available GNU or BSD software, including the packages included with the Cygwin distribution themselves. They can be used from one of the provided Unix shells like bash, tcsh or zsh.
[...]
1.5.
Q: What version of Cygwin is this, anyway?
To find the version of the Cygwin DLL installed, you can useunameas on Linux orcygcheck. Refer to each command's--helpoutput and the Cygwin User's Guide
[ https://cygwin.com/cygwin-ug-net/ ]
for more information.
If you are looking for the version number for the whole Cygwin release, there is none. Each package in the Cygwin release has its own version. The packages in Cygwin are continually improving, thanks to the efforts of net volunteers who maintain the Cygwin binary ports. Each package has its own version numbers and its own release process.
So, how do you get the most up-to-date version of Cygwin? Easy. Just download the Cygwin Setup program by following the instructions here
[ https://cygwin.com/install.html ].
The setup program will handle the task of updating the packages on your system to the latest version. For more information about using Cygwin'ssetup.exe, see Setting Up Cygwin
[ https://cygwin.com/cygwin-ug-net/setup-net.html ]
in the Cygwin User's Guide.
1.6.
Q: Who's behind the project?
(Please note that if you have cygwin-specific questions, all of these people will appreciate it if you use the cygwin mailing lists rather than sending personal email.)
Corinna Vinschen is the current project lead. Corinna is a senior Red Hat engineer. Corinna is responsible for the Cygwin library and maintains a couple of packages, for instance OpenSSH, OpenSSL, and a lot more.
Yaakov Selkowitz is another Red Hat engineer working on the Cygwin project. He's the guy behind the current build and packaging system and maintains by far the most packages in the Cygwin distribution.
Jon Turney is developer and maintainer of the Cygwin X server and a couple of related packages.
The packages in the Net release are maintained by a large group of people; a complete list can be found here
[ https://cygwin.com/cygwin-pkg-maint ].
[...]
2.1.
Q: What is the recommended installation procedure?
There is only one recommended way to install Cygwin, which is to use the GUI installersetup-*.exe. 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
[ https://cygwin.com/cygwin-ug-net/setup-net.html ].
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
[ https://cygwin.com/snapshots/ ],
then by all means report it to the mailing list.
For a searchable list of packages that can be installed with Cygwin, see
[ https://cygwin.com/packages/ ].
[...]
2.5.
Q: Why not install in C:\?
The Cygwin Setup program will prompt you for a "root" directory. The default is C:\cygwin, but you can change it. You are urged not to choose something like C:\ (the root directory on the system drive) for your Cygwin root. If you do, then critical Cygwin system directories 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.)
[...]
2.11.
Q: 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 all available packages. If you want anything beyond that, you will have to select it explicitly. See
[ https://cygwin.com/packages/ ]
for a searchable list of available packages, or usecygcheck -pas described in the Cygwin User's Guide at
[ https://cygwin.com/cygwin-ug-net/cygcheck.html ].
If you want to build programs, of course you'll needgcc,binutils,makeand probably other packages from the ``Devel'' category. Text editors can be found under ``Editors''.
[...]
2.13.
Q: 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 1 GB 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 ofsetup-x86{_64}.exe. You may conserve disk space by deleting the subdirectories there. These directories will have very weird looking names, being encoded with their URLs (namedftp%3a%2f...).
Of course, you can keep them around in case you want to reinstall a package.
2.14.
Q: How do I know which version I upgraded from?
Detailed logs of the most recent Cygwin Setup session can be found in/var/log/setup.log.fulland less verbose information about prior actions is in/var/log/setup.log.
[...]
3.1
Q: Where's the documentation?
If you have installed Cygwin, you can find lots of documentation in/usr/share/doc/. Some packages have Cygwin specific instructions in a file/usr/share/doc/Cygwin/[package_name].README. In addition, many packages ship with standard documentation, which you can find in/usr/share/doc/[package_name]or by using themanorinfotools. (Hint: usecygcheck -l [package_name]to list what man pages the package includes.) Some older packages still keep their documentation in/usr/doc/instead of/usr/share/doc/.
There are links to quite a lot of documentation on the main Cygwin project web page,
[ https://cygwin.com/ ],
including this FAQ. Be sure to at least read any 'Release Notes' or 'Readme' or 'read this' links on the main web page, if there are any.
There is a comprehensive Cygwin User's Guide at
[ https://cygwin.com/cygwin-ug-net/cygwin-ug-net.html ]
and an API Reference at
[ https://cygwin.com/cygwin-api/cygwin-api.html ].
You can find documentation for the individual GNU tools at
[ http://www.gnu.org/manual/ ].
[...]
5.1.
Q: How does everything work?
There's a C library which provides a POSIX-style API. The applications are linked with it and voila - they run on Windows.
The aim is to add all the goop necessary to make your apps run on Windows into the C library. Then your apps should (ideally) run on POSIX systems (Unix/Linux) and Windows with no changes at the source level.
The C library is in a DLL, which makes basic applications quite small. And it allows relatively easy upgrades to the Win32/POSIX translation layer, providing that DLL changes stay backward-compatible.
For a good overview of Cygwin, you may want to read the Cygwin User's Guide.
Key points:
- Cygwin is a distribution of popular GNU and other Open Source tools running on Microsoft Windows. The core part is the Cygwin library which provides the POSIX system calls and environment that these programs expect.
- To find the version of the Cygwin DLL installed, you can use
uname
as on Linux or
cygcheck
.- Each Cygwin package has its own versioning system, separate from the Cygwin versioning system.
- The default installer is a GUI application.
- The default installation directory is C:\cygwin.
- A minimal subset of packages is installed by default.
- Package archives are stored by default in the same directory that contains setup-x86{_64}.exe.
- Detailed logs of the most recent Cygwin Setup session can be found in
/var/log/setup.log.full
and less verbose information about prior actions is in
/var/log/setup.log
.- The core of Cygwin is a DLL (Dynamic Link Library) that contains a C library that provides a POSIX-style API (Application Programming Interface). Unix applications expect to see a POSIX-style API. An application originally written for Unix can be compiled such that it uses the Cygwin DLL as a translator that stands between the application and the Windows system.
- I expect that there are some rough edges (some imperfect translations) so some changes may need to be made to a Unix application (to avoid certain configuration options or particular types of POSIX library functions) before it can be successfully compiled to run on Cygwin.
Next: Attempt to install the Cygwin setup-x86_64.exe installation binary.
Create new work directory named "work" in my project directory.
- Note: Packages downloaded by the setup program should be saved in this work directory before installation.
Browse to:
www.cygwin.com/setup-x86_64.exe
My browser (Chrome) prompts me for a location in which to save the download. Select the work directory.
In Windows Explorer, move to the work directory. Double-click setup-x86_64.exe.
New dialog box:
[Title] Open File - Security Warning
The publisher could not be verified. Are you sure you want to run this software?
Name: [path-to-project-directory]\work\setup-x86_64.exe
Publisher: Unknown Publisher
Type: Application
From: [path-to-project-directory? it's cut off at the end]
[Buttons] Run, Cancel
[Ticked box] Always ask before opening this file
This file does not have a valid digital signature that verifies its publisher. You should only run software from publishers you trust.
[Link] How can I decide what software to run?
The publisher could not be verified. Are you sure you want to run this software?
Name: [path-to-project-directory]\work\setup-x86_64.exe
Publisher: Unknown Publisher
Type: Application
From: [path-to-project-directory? it's cut off at the end]
[Buttons] Run, Cancel
[Ticked box] Always ask before opening this file
This file does not have a valid digital signature that verifies its publisher. You should only run software from publishers you trust.
[Link] How can I decide what software to run?
Click Run.
New dialog box:
[Title] User Account Control
Do you want to allow the following program from an unknown publisher to make changes to this computer?
Program name: setup-x86_64.exe
Publisher: Unknown
File origin: Downloaded from the Internet
[Button] Show details
[Buttons] Yes, No
[Link] Change when these notifications appear
Do you want to allow the following program from an unknown publisher to make changes to this computer?
Program name: setup-x86_64.exe
Publisher: Unknown
File origin: Downloaded from the Internet
[Button] Show details
[Buttons] Yes, No
[Link] Change when these notifications appear
Click Yes.
New dialog box:
[Title] Cygwin Setup
Cygwin Net Release Setup Program
This setup program is used for the initial installation of the Cygwin environment as well as all subsequent updates. Make sure to remember where you saved it.
The pages that follow will guide you through the installation. Please note that Cygwin consists of a large number of packages spanning a wide variety of purposes. We only install a base set of packages by default. You can always run this program at any time in the future to add, remove, or upgrade packages as necessary.
Setup version 2.893 (64 bit)
Copyright 2000-2018
https://cygwin.com/
[Buttons] Back [greyed out], Next, Cancel
Cygwin Net Release Setup Program
This setup program is used for the initial installation of the Cygwin environment as well as all subsequent updates. Make sure to remember where you saved it.
The pages that follow will guide you through the installation. Please note that Cygwin consists of a large number of packages spanning a wide variety of purposes. We only install a base set of packages by default. You can always run this program at any time in the future to add, remove, or upgrade packages as necessary.
Setup version 2.893 (64 bit)
Copyright 2000-2018
https://cygwin.com/
[Buttons] Back [greyed out], Next, Cancel
Click Next.
Dialog box:
[Title] Cygwin Setup - Choose Installation Type
Choose a Download Source
Choose whether to install or download from the internet, or install from files in a local directory.
[Radio buttons]
- [Selected button] Install from Internet (downloaded files will be kept for future re-use)
- Download Without Installing
- Install from Local Directory
[Buttons] Back, Next, Cancel
Choose a Download Source
Choose whether to install or download from the internet, or install from files in a local directory.
[Radio buttons]
- [Selected button] Install from Internet (downloaded files will be kept for future re-use)
- Download Without Installing
- Install from Local Directory
[Buttons] Back, Next, Cancel
Click Next.
Dialog box:
[Title] Cygwin Setup - Choose Installation Directory
Select Root Install Directory
Select the directory where you want to install Cygwin. Also choose a few installation parameters.
Root directory:
- [Field] C:\cygwin64
- [Button] Browse
Install for:
[Radio buttons]
- [Selected option] All users (RECOMMENDED). Cygwin will be available to all users of the system.
- Just Me. Cygwin will still be available to all users, but Desktop Icons, Cygwin Menu Entries, and important installer information are only available to the current user. Only select this if you lack Administrator privileges or if you have specific needs.
[Buttons] Back, Next, Cancel
Select Root Install Directory
Select the directory where you want to install Cygwin. Also choose a few installation parameters.
Root directory:
- [Field] C:\cygwin64
- [Button] Browse
Install for:
[Radio buttons]
- [Selected option] All users (RECOMMENDED). Cygwin will be available to all users of the system.
- Just Me. Cygwin will still be available to all users, but Desktop Icons, Cygwin Menu Entries, and important installer information are only available to the current user. Only select this if you lack Administrator privileges or if you have specific needs.
[Buttons] Back, Next, Cancel
Click Next.
Dialog box:
[Title] Cygwin Setup - Choose Local Package Directory
Select Local Package Directory
Select a directory where you want Setup to store the installation files it downloads. The directory will be created if it does not already exist.
Local Package Directory
- [Field] [path-to-project-directory]\work
- [Button] Browse
[Buttons] Back, Next, Cancel
Select Local Package Directory
Select a directory where you want Setup to store the installation files it downloads. The directory will be created if it does not already exist.
Local Package Directory
- [Field] [path-to-project-directory]\work
- [Button] Browse
[Buttons] Back, Next, Cancel
Hm. I'll leave it as the work directory for now. If I later move the project directory to an archive, and I do a new project in which I use Setup to install a new package, presumably I will be able to change this location.
Click Next.
Dialog box:
[Title] Cygwin Setup - Select Connection Type
Select Your Internet Connection
Setup needs to know how you want it to connect to the internet. Choose the appropriate settings below.
[Radio buttons]
- [Selected option] Use System Proxy Settings
- Direct Connection
- Use HTTP/FTP Proxy
-- Proxy Host: [Field] [greyed out]
-- Port: [Field] [greyed out] 80
[Buttons] Back, Next, Cancel
Select Your Internet Connection
Setup needs to know how you want it to connect to the internet. Choose the appropriate settings below.
[Radio buttons]
- [Selected option] Use System Proxy Settings
- Direct Connection
- Use HTTP/FTP Proxy
-- Proxy Host: [Field] [greyed out]
-- Port: [Field] [greyed out] 80
[Buttons] Back, Next, Cancel
Click Next.
Quick display of a message in the dialog box. Something like "downloading from mirror".
Dialog box:
[Title] Cygwin Setup - Choose Download Site(s)
Choose a Download Site
Choose a site from this list, or add your own sites to the list
Available Download Sites:
- [Field list]
http://cygwin.mirror.constant.com
http://cygwin.mirrors.hoobly.com
http://mirrors.koehn.com
http://mirrors.metapeer.com
http://www.pirbot.com
https://www.singleboersen.com
http://mirror.team-cymru.com
ftp://mirrors.xmission.com
http://mirrors.xmission.com
http://mirror.clarkson.edu
http://mirror.rit.edu
http://mirror.cs.vt.edu
http://mirror.koddos.net
http://mirror-hk.koddos.net
ftp://mirrors.netix.net
http://mirrors.netix.net
ftp://mirror.internode.on.net
http://mirror.internode.on.net
http://cygwin.mirror.uk.sargasso.net
[further output omitted]
User URL: [Field]
[Button] Add
[Buttons] Back, Next, Cancel
Choose a Download Site
Choose a site from this list, or add your own sites to the list
Available Download Sites:
- [Field list]
http://cygwin.mirror.constant.com
http://cygwin.mirrors.hoobly.com
http://mirrors.koehn.com
http://mirrors.metapeer.com
http://www.pirbot.com
https://www.singleboersen.com
http://mirror.team-cymru.com
ftp://mirrors.xmission.com
http://mirrors.xmission.com
http://mirror.clarkson.edu
http://mirror.rit.edu
http://mirror.cs.vt.edu
http://mirror.koddos.net
http://mirror-hk.koddos.net
ftp://mirrors.netix.net
http://mirrors.netix.net
ftp://mirror.internode.on.net
http://mirror.internode.on.net
http://cygwin.mirror.uk.sargasso.net
[further output omitted]
User URL: [Field]
[Button] Add
[Buttons] Back, Next, Cancel
Click (and thereby select)
cygwin.mirror.constant.com
Click Next.
[Dialog box displays progress of download process]
Dialog box (larger this time):
[Title] Cygwin Setup - Select Packages
[Package viewer interface]
[The package categories are all set to "Default"]
[Buttons] Back, Next, Cancel
[Package viewer interface]
[The package categories are all set to "Default"]
[Buttons] Back, Next, Cancel
Click Next.
Dialog box (default size again):
[Title] Cygwin Setup - Resolving Dependencies
Resolving Dependencies
The following problems occurred trying to satisfy dependencies.
[Text box]
Problem 1/1
package libopenssl100-1.0.2o-1 requires ca-certificates, but none of the providers can be installed
Solution 1/2
- do not ask to install libopenssl100-1.0.2o-1
- do not ask to install openssl-1.0.2o-1
- allow deinstallation of Base packages
Solution 2/2 (default)
- do not ask to lock ca-certificates
[Ticked box] Accept default problem solutions
[Buttons] Back, Next, Cancel
Resolving Dependencies
The following problems occurred trying to satisfy dependencies.
[Text box]
Problem 1/1
package libopenssl100-1.0.2o-1 requires ca-certificates, but none of the providers can be installed
Solution 1/2
- do not ask to install libopenssl100-1.0.2o-1
- do not ask to install openssl-1.0.2o-1
- allow deinstallation of Base packages
Solution 2/2 (default)
- do not ask to lock ca-certificates
[Ticked box] Accept default problem solutions
[Buttons] Back, Next, Cancel
Click Next.
Dialog box:
[Title] Cygwin Setup - Review and confirm changes
Review and confirm changes
[Text box]
- _autorebase 001007-1
- alternatives 1.3.30c-10
- base-cygwin 3.8-1
- base-files 4.2-4
- bash 4.4.12-3
- bzip2 1.0.6-3
- ca-certificates 2.22-1 (automatically added)
- coreutils 8.26-2
- cygutils 1.4.16-2
- cygwin 2.10.0-1
- dash 0.5.9.1-1
- diffutils 3.5-2
- editrights 1.03-1
- file 5.32-1
- findutils 4.6.0-1
- gawk 4.2.1-1
- getent 2.18.90-4
- grep 3.0-2
- groff 1.22.3-1
- gzip 1.8-1
- hostname 3.13-1
- info 6.5-2
- ipc-utils 1.0-2
- less 530-1
- libargp 20110921-3
- libattr1 2.4.46-1
- libblkid1 2.25.2-2
- libbz2_1 1.0.6-3
- libffi6 3.2.1-2
- libgcc1 7.3.0-3
- libgdbm4 1.12-1
- libgmp10 6.1.2-1
- libiconv 1.14-3
- libiconv2 1.14-3
- libintl8 0.19.8.1-2
- liblzma5 5.2.3-1
- libmpfr6 4.0.1-4p11
- libncursesw10 6.0-12.20171125
- libopenssl100 1.0.2o-1
- libp11-kit0 0.23.10-1
- libpcre1 8.40-3
- libpipeline1 1.4.0-1
- libpopt-common 1.16-2
- libpopt0 1.16-2
- libreadline7 7.0.3-3
- libsigsegv2 2.10-2
- libsmartcols1 2.25.2-2
- libstdc++6 7.3.0-3
- libtasn1_6 4.13-1
- libuuid1 2.25.2-2
- login 1.12-1
- man-db 2.7.6.1-1
- mintty 2.9.0-0
- ncurses 6.0-12.20171125
- openssl 1.0.2o-1
- p11-kit 0.23.10-1
- p11-kit-trust 0.23.10-1
- rebase 4.4.4-1
- run 1.3.4-2
- sed 4.4-1
- tar 1.29-1
- terminfo 6.0-12.20171125
- tzcode 2018e-1
- tzdata 2018e-1
- util-linux 2.25.2-2
- vim-minimal 8.0.1567-1
- which 2.20-2
- xz 5.2.3-1
- zlib0 1.2.11-1
[Buttons] Back, Next, Cancel
Review and confirm changes
[Text box]
- _autorebase 001007-1
- alternatives 1.3.30c-10
- base-cygwin 3.8-1
- base-files 4.2-4
- bash 4.4.12-3
- bzip2 1.0.6-3
- ca-certificates 2.22-1 (automatically added)
- coreutils 8.26-2
- cygutils 1.4.16-2
- cygwin 2.10.0-1
- dash 0.5.9.1-1
- diffutils 3.5-2
- editrights 1.03-1
- file 5.32-1
- findutils 4.6.0-1
- gawk 4.2.1-1
- getent 2.18.90-4
- grep 3.0-2
- groff 1.22.3-1
- gzip 1.8-1
- hostname 3.13-1
- info 6.5-2
- ipc-utils 1.0-2
- less 530-1
- libargp 20110921-3
- libattr1 2.4.46-1
- libblkid1 2.25.2-2
- libbz2_1 1.0.6-3
- libffi6 3.2.1-2
- libgcc1 7.3.0-3
- libgdbm4 1.12-1
- libgmp10 6.1.2-1
- libiconv 1.14-3
- libiconv2 1.14-3
- libintl8 0.19.8.1-2
- liblzma5 5.2.3-1
- libmpfr6 4.0.1-4p11
- libncursesw10 6.0-12.20171125
- libopenssl100 1.0.2o-1
- libp11-kit0 0.23.10-1
- libpcre1 8.40-3
- libpipeline1 1.4.0-1
- libpopt-common 1.16-2
- libpopt0 1.16-2
- libreadline7 7.0.3-3
- libsigsegv2 2.10-2
- libsmartcols1 2.25.2-2
- libstdc++6 7.3.0-3
- libtasn1_6 4.13-1
- libuuid1 2.25.2-2
- login 1.12-1
- man-db 2.7.6.1-1
- mintty 2.9.0-0
- ncurses 6.0-12.20171125
- openssl 1.0.2o-1
- p11-kit 0.23.10-1
- p11-kit-trust 0.23.10-1
- rebase 4.4.4-1
- run 1.3.4-2
- sed 4.4-1
- tar 1.29-1
- terminfo 6.0-12.20171125
- tzcode 2018e-1
- tzdata 2018e-1
- util-linux 2.25.2-2
- vim-minimal 8.0.1567-1
- which 2.20-2
- xz 5.2.3-1
- zlib0 1.2.11-1
[Buttons] Back, Next, Cancel
Click Next.
[Dialog box displays progress of installation process]
Dialog box:
[Title] Cygwin Setup - Installation Status and Create Icons
Create Icons
Tell setup if you want it to create a few icons for convenient access to the Cygwin environment.
[Ticked box] Create icon on Desktop
[Ticked box] Add icon to Start Menu
Installation Status:
Installation Complete
[Buttons] Back, Finish, Cancel
Create Icons
Tell setup if you want it to create a few icons for convenient access to the Cygwin environment.
[Ticked box] Create icon on Desktop
[Ticked box] Add icon to Start Menu
Installation Status:
Installation Complete
[Buttons] Back, Finish, Cancel
Click Finish.
Dialog box closes.
Double-click "Cygwin64 Terminal" icon on Desktop.
New terminal window:
Copying skeleton files.
These files are for the users to personalise their cygwin experience.
They will never be overwritten nor automatically updated.
'./.bashrc' -> '/home/Admin//.bashrc'
'./.bash_profile' -> '/home/Admin//.bash_profile'
'./.inputrc' -> '/home/Admin//.inputrc'
'./.profile' -> '/home/Admin//.profile'
$ pwd
/home/Admin
$
These files are for the users to personalise their cygwin experience.
They will never be overwritten nor automatically updated.
'./.bashrc' -> '/home/Admin//.bashrc'
'./.bash_profile' -> '/home/Admin//.bash_profile'
'./.inputrc' -> '/home/Admin//.inputrc'
'./.profile' -> '/home/Admin//.profile'
Admin@Admin-PC ~
$ pwd
/home/Admin
Admin@Admin-PC ~
$
"Admin" is my username on this system.
Looks like the installation was successful. I can run a command and get a response.
Admin@Admin-PC ~
$ ls -1 /
bin
cygdrive
Cygwin.bat
Cygwin.ico
Cygwin-Terminal.ico
dev
etc
home
lib
proc
sbin
tmp
usr
var
In Windows Explorer, browse to Computer / Local Disk (C:) / cygwin64.
I see these items:
- bin
- dev
- etc
- home
- lib
- sbin
- tmp
- user
- var
- Cygwin.bat
- Cygwin.ico
- Cygwin-Terminal.ico
Items shown in cygwin terminal, but not in Windows Explorer:
- cygdrive
- proc
In my work directory, there is a new directory:
- http%3a%2f%2fcygwin.mirror.constant.com%2f
In Windows Explorer, right-click this directory and choose Properties.
Some of its properties:
- Size: 36.2 MB (38,013,252 bytes)
- 70 Files, 89 Folders
It's a tree of directories.
Some exploration shows that:
1) The two immediate subdirectories are:
- noarch
- x86_64
2) The tree contains files such as:
- base-files-4.2-4.tar.xz
- setup.ini
- libattr1-2.4.46-1.tar.bz2
- bash-4.4.12-3.tar.xz
In Windows Explorer, browse to Computer / Local Disk (C:) / cygwin64. Right-click this directory and choose Properties.
Some of its properties:
- Size: 102 MB (107,345,370 bytes)
- 4,883 Files, 562 Folders
Some searching and reading indicates that the command
uname -r
should produce the Cygwin DLL version.
Admin@Admin-PC ~
$ uname
CYGWIN_NT-6.1
Admin@Admin-PC ~
$ uname -r
2.10.0(0.325/5/3)
Admin@Admin-PC ~
$ uname -a
CYGWIN_NT-6.1 Admin-PC 2.10.0(0.325/5/3) 2018-02-02 15:16 x86_64 Cygwin
The Cygwin DLL version is 2.10.0(0.325/5/3), or, less specifically, 2.10.0.
Admin@Admin-PC ~
$ cygcheck
Usage: cygcheck [-v] [-h] PROGRAM
cygcheck -c [-d] [PACKAGE]
cygcheck -s [-r] [-v] [-h]
cygcheck -k
cygcheck -f FILE [FILE]...
cygcheck -l [PACKAGE]...
cygcheck -p REGEXP
cygcheck --delete-orphaned-installation-keys
cygcheck -h
List system information, check installed packages, or query package database.
At least one command option or a PROGRAM is required, as shown above.
PROGRAM list library (DLL) dependencies of PROGRAM
-c, --check-setup show installed version of PACKAGE and verify integrity
(or for all installed packages if none specified)
-d, --dump-only just list packages, do not verify (with -c)
-s, --sysinfo produce diagnostic system information (implies -c)
-r, --registry also scan registry for Cygwin settings (with -s)
-k, --keycheck perform a keyboard check session (must be run from a
plain console only, not from a pty/rxvt/xterm)
-f, --find-package find the package to which FILE belongs
-l, --list-package list contents of PACKAGE (or all packages if none given)
-p, --package-query search for REGEXP in the entire cygwin.com package
repository (requires internet connectivity)
--delete-orphaned-installation-keys
Delete installation keys of old, now unused
installations from the registry. Requires the right
to change the registry.
-v, --verbose produce more verbose output
-h, --help annotate output with explanatory comments when given
with another command, otherwise print this help
-V, --version print the version of cygcheck and exit
Note: -c, -f, and -l only report on packages that are currently installed. To
search all official Cygwin packages use -p instead. The -p REGEXP matches
package names, descriptions, and names of files/paths within all packages.
Admin@Admin-PC ~
$ cygcheck --check-setup
Cygwin Package Information
Package Version Status
_autorebase 001007-1 OK
alternatives 1.3.30c-10 OK
base-cygwin 3.8-1 OK
base-files 4.2-4 OK
bash 4.4.12-3 OK
bzip2 1.0.6-3 OK
ca-certificates 2.22-1 OK
coreutils 8.26-2 OK
cygutils 1.4.16-2 OK
cygwin 2.10.0-1 OK
dash 0.5.9.1-1 OK
diffutils 3.5-2 OK
editrights 1.03-1 OK
file 5.32-1 OK
findutils 4.6.0-1 OK
gawk 4.2.1-1 OK
getent 2.18.90-4 OK
grep 3.0-2 OK
groff 1.22.3-1 OK
gzip 1.8-1 OK
hostname 3.13-1 OK
info 6.5-2 OK
ipc-utils 1.0-2 OK
less 530-1 OK
libargp 20110921-3 OK
libattr1 2.4.46-1 OK
libblkid1 2.25.2-2 OK
libbz2_1 1.0.6-3 OK
libffi6 3.2.1-2 OK
libgcc1 7.3.0-3 OK
libgdbm4 1.12-1 OK
libgmp10 6.1.2-1 OK
libiconv 1.14-3 OK
libiconv2 1.14-3 OK
libintl8 0.19.8.1-2 OK
liblzma5 5.2.3-1 OK
libmpfr6 4.0.1-4p11 OK
libncursesw10 6.0-12.20171125 OK
libopenssl100 1.0.2o-1 OK
libp11-kit0 0.23.10-1 OK
libpcre1 8.40-3 OK
libpipeline1 1.4.0-1 OK
libpopt-common 1.16-2 OK
libpopt0 1.16-2 OK
libreadline7 7.0.3-3 OK
libsigsegv2 2.10-2 OK
libsmartcols1 2.25.2-2 OK
libstdc++6 7.3.0-3 OK
libtasn1_6 4.13-1 OK
libuuid1 2.25.2-2 OK
login 1.12-1 OK
man-db 2.7.6.1-1 OK
mintty 2.9.0-0 OK
ncurses 6.0-12.20171125 OK
openssl 1.0.2o-1 OK
p11-kit 0.23.10-1 OK
p11-kit-trust 0.23.10-1 OK
rebase 4.4.4-1 OK
run 1.3.4-2 OK
sed 4.4-1 OK
tar 1.29-1 OK
terminfo 6.0-12.20171125 OK
tzcode 2018e-1 OK
tzdata 2018e-1 OK
util-linux 2.25.2-2 OK
vim-minimal 8.0.1567-1 OK
which 2.20-2 OK
xz 5.2.3-1 OK
zlib0 1.2.11-1 OK
I note that the cygwin package version is 2.10.0-1.
Admin@Admin-PC ~
$ exit
logout
Terminal window closes.
Create a new directory on the system [location not specified]. Name it "cygwin_manager". Move "setup-x86_64.exe" into this directory. Create a new directory within "cygwin_manager" named "cygwin_packages". Move the directory
"http%3a%2f%2fcygwin.mirror.constant.com%2f"
into "cygwin_packages".
When using Cygwin again on this system, I plan to:
- run setup-x86_64.exe from this particular location
- use "cygwin_packages" as a general package archive
- use per-mirror directories in "cygwin_packages" as per-mirror package archives
Note: I will need to change the directory paths when I next run setup-x86_64.exe.
Excellent. That's the end of this project.
[start of notes]
- I have not always preserved the format of any excerpts from webpages on other sites (e.g. not preserving the original bold/italic styles, changing the list structures, not preserving hyperlinks).
- I have not always preserved the format of any computer output (e.g. from running bash commands). Examples: Setting input lines in bold text, adding/removing newlines in order to make a sequence of commands easier to read, using hyphens for lists and sublists instead of indentation, breaking wide tables into consecutive sections.
- I have not always preserved the format of any information copied from dialog boxes.
[end of notes]