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.

About these ads

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 Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s