Size of RPM dependencies

Continuing the theme of minimal Fedora installs, I had a go at visualizing RPM dependencies and the size of those dependencies.

This problem is harder than I thought. The pretty filelight diagrams in my last post are possible because filesystems are simple trees (if you discount hard links).

However package dependencies are directed graphs, often containing loops and diamonds. If pam pulls in cracklib-dicts, that’s not good because cracklib-dicts is big. But if it was pulled in by another package already, then pam got it “for free” so do we need to worry? You can massively change your views on whether a particular package is excessively large just by changing the way you divide up these shared dependencies between packages.

What I’m working on is a more interactive tool that will let you explore these possibilities — so you will be able to “remove” a dependency and see how that changes the situation. Also you should be able to explore different ways of dividing up shared deps.

That part is not written yet, but I do have a visualisation of the dependencies of some packages already. Please keep in mind that the width of each bar is the incremental cost of the dependency (in terms of all extra data that it pulls in) and it does not mean that a particular package is bloated or excessive.

rpmdepsize-openssh

rpmdepsize-coreutils1

rpmdepsize-kernel

rpmdepsize-gnome-desktop

The rpmdepsize program is an ad-hoc mixture of python and OCaml. Caveat emptor.

2 Comments

Filed under Uncategorized

2 responses to “Size of RPM dependencies

  1. Pingback: Size of RPM dependencies 2 « Richard WM Jones

  2. Pingback: RPM dependency size viewer now available « Richard WM Jones

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.