pkg-order - A Package dependency checker and install ordering tool.
usage: pkg-order [options] <Package-file-for-new-packages>where the options are:
This utility does dependency checks, if you wish. It knows thedifference between installed, new (and available) packages, and therelationship fields (pre-depends, depends, recommends, andsuggests). (For example, the current packages list need not be readin unless you want dependency checks; you may already have done thatand now merely wish an ordering). It comes with a Test::Harness testsuite, to protect the world against my typos. Oh, it knows aboutepochs as well if your dpkg does. This could be the basis of masscompiling the packages on a new architecture, or to build a releasefrom scratch.It creates associative arrays of currently installed packages(/var/lib/dpkg/status), and new packages (given a packages file atthe command line). Then, in the checking dependency phase, for eachpackage in the new packages list, it looks at the dependencies, andensure that each dependency is satisfied in either the new list orthe installed list If the directive is satisfied from the new list,add a line to an output file with the format required by tsort, whichis the entity that gives us the ordered list.
The default is to assume that the list of installed packages may bederived from the file I</var/lib/dpkg/status>, but the user mayoverride this by providing a I<Packages> file listing all thepackages that are assumed to be already installed.
list_diff This is an example of how to detect packages and list packages in list A that are not in list B. Takes two Package::List objects, and returns a list object. This is how one may take an installed list, a final list, and figure out the packages to be removed, and the new packages, by just taking A - B and B - A set differences. This is very inchoate, at the moment, and needs testing. None Known so far. Manoj Srivastava <[email protected]>