Just to give you a flavour of how sensitive visualizing RPM dependencies is to the precise method we use, compare two graphs for the
The first is the one shown previously:
The second changes the order in which we traverse the dependency graph from depth-first to breadth-first:
initscripts (in green in the lower graph, buried near the bottom in the upper one), is both a direct dependency of
kernel, and a very indirect dependency. In the lower, breadth-first, traversal we get to the direct dependency
initscripts first, and so it is displayed immediately beneath
kernel. Whereas in the upper graph we hit it as an indirect dependency of
Both are true representations of the dependencies of
kernel. It is true in some sense in the upper graph that
mkinitrd is a “big” dependency, because it really does pull in all that data. It’s also true looking at the lower graph that
mkinitrd is “small(er)”, because
kernel directly pulls in packages like
mkinitrd gets those “for free”.
Both are equally true but very different representations of the dependency graph.