Described is a system and method by which a collection of software
packages for installing (e.g., on an embedded computing device) are
reviewed for their dependent relations, whereby it is possible to choose
a maximal set of install possibilities to allow for maximal version
updates for any given package in the fewest update steps possible, while
honoring package dependency constraints. An update validation process
organizes and validates update packages that have been downloaded to a
device, and builds a graph for each group. The graph data including paths
between updates are processed to validate the updates and to determine a
minimal and optimal set of packages that can be applied to the existing
image on the device to produce the desired update, with the least amount
of weight (cost) when more than one path can be used to get to the same
version.