This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Seeking a suggestion for unattended mass install procedure


One of the simple method to install a fresh clone of the existing Cygwin's
installation is such a way:
Create a new Cygwin root install directory and etc/setup subdirectories in it,
copy therein the /etc/setup/installed.db file from the master installation you
want to clone. Then launch setup.exe pointing to the new root directory and
apply 'Reinstall' action on top of the category tree view in the package chooser.

Unfortunately this cannot be executed with an unattended setup because of the
default action in this mode is 'Default' which means to 'Keep' existing
versions of packages or to automatically update to newer versions if they are
present in the selected package repository for the setup. So you will end up
with nothing or only several packages been installed. And there is no
command-line option for setup.exe to specify a reinstall action.

The workarounds are: 1) to add such an option to the setup.exe program;
or 2) to use a special-prepared installed.db file which a priori contains
package versions lesser than those ones in the package repository you are
installing from.

This is a simple sed command to get that kind of installed.db file:
sed 's/^\([^ ]*\) \1-/\1 \1-0./' /etc/setup/installed.db

So, you can put on the DVD the directory named 'Cygwin' containing
the structure like this:


where packages/ is a local mirror of the Cygwin's package directory created
by setup.exe during a 'Download Without Installing' run.

Deploying on the target machine will comprise two commands:

xcopy "DVD-DRIVE:\Cygwin\setup-preset" "C:\Cygwin\" /v/e/h
setup-x86.exe -q -L -l "DVD-DRIVE:\Cygwin\packages" -a "x86" -R "C:\Cygwin"


Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]