Setup process for long-lived projects
Michael Hope
michael.hope@seabright.co.nz
Tue Jan 19 08:49:00 GMT 2010
Hi there. We use cygwin quite a bit as part of the build process for
a deeply embedded system with a very long life cycle. One problem is
maintaining the tools over the life of the product - I'd like to have
a way of installing the same set of packages on new development
machines, having exactly the same set available in five years, and an
easy way of re-basing to later cygwin versions as needed.
I think I can do this as follows:
To prepare:
* Take a local mirror of the current cygwin version using rsync
* Export it using a web server
* Use setup.exe against the mirror to select all the packages needed
* Take a copy of the local download directory
The mirror gives a stable archive to add new packages from. The local
download directory gives a standard set of packages to install.
To install on a new machine:
* Use setup.exe's quiet local install mode to install everything from
the local download stash
To re-base:
* Update the mirror using rsync
* Get the list of installed packages by grepping /etc/setup/installed.db
* Re-create the local download directory by re-getting the needed
packages using the setup.exe named package mode
I'm keen to write up a howto if this works. Is there one already?
I'd also like to prune the mirror of previous versions of a package to
shrink it down a bit. setup.ini seems easy to parse and a simple
Python script should take care of that. Is there a tool that does
this already?
If I can parse the meta data then it's tempting to write a combined
installer. Python should be able to spit out a NSIS installer script
which could be built and then installed offline. Has anyone attempted
this?
-- Michael
More information about the Cygwin-apps
mailing list