Complex i-Packages and Sets

Fragmented Archives

i-Installer i-Packages normally contain an archive with the files that need to be installed. More complex packages may contain more archive files, all containing a part of the software that needs to be installed. For instance, the TeX i-Package has separate archives for programs, foundation and all sorts of extras. The advantage of this is that separate parts of an i-Package may be updated separately and a redownload of all is not necessary.


The most advanced i-Packages to date contain Set descriptions in the Table of Contents. These sets are combinations of various archive parts. Sets are logical units. It might even be that archive parts are part of different sets. For instance, a Ghostscript package may contain three archive parts, one for fonts, one for programs without X11 support and one for programs with X11 support. Two sets may be defined in the i-Package, one consisting of X11-based-binaries plus the fonts and one consisting of non-X11 based binaries and the fonts.

As a user, you are normally blissfully unaware of what happens in the background, but packages that contain sets normally start at install with a separate pre-stage, called the selector stage. This may or may not be interactive towards the user, but it will in any case communicate back to i-Installer which sets need to be installed.

Set selections are normally saved by i-Installer in the package, so a second run will give you as default normally what you chose last time. This depends on the package manufacturer, but it is supported behaviour.

The automatic download behaviour of i-Installer works in two steps for packages that have a selector stage. First only the selector stage is run and files needed for it are downloaded). Then after the selector stage has run, i-Installer has been informed which parts need to be installed and it will download those and go ahead.

The consequence of this behaviour is that when the remote package is updated, the check if the action can go ahead without updating happens twice: once for the selector stage and afterwards depending on what was selected. The effect of this may be that though you can 'Ignore' the remote update for the selector stage, it is not garuantueed that this will also be the case for the steps thereafter as this normally depends on your choice.