Where is the bare cygwin package list located and how do I manipulate it programmatically or from a shell or with a different method than the gui? I know the gui (setup.exe), and I'd love to go one or more levels deeper.
I can retrieve a list of selected/installed packages ( Cygwin package management ), but how do I write it back or to a different machine?
What I have in mind is when I install a new windows I would like to start with my package list in text form, an apply or inject it somehow to the new system.
Where is it? In the registry? In a binary file? in a local database?
Or has anybody done this, is there a tool, a tutorial? The essence of what I want is to manipulate the selected package list with something else than the gui. It is ok for me to use the gui for the setup process. So I could imagein manipulating the package List and then run setup.exe and just click through it.
Note: I do not want to manipulate the list of already installed packages but of packages that "should be installed". But if htis is not possible, maybe there is some workaround. E.g add an outdated version as installed and the installer will then install the new version.
I found a good way to do it at jessies: http://software.jessies.org/salma-hayek/cygwin-setup.html
On the initial install don't select any packages.
From Cygwin 1.7 onwards it is possible to install extra packages with the -P switch. From a cmd window:
This is an example that would install just these packages.
This is also not exactly what you asked for in the question, but it's the first half of it: The list of packages that are currently installed is stored as
/etc/setup/installed.db
, and the list of files for each package are listed in/etc/setup/*.gz
files.