Why apt is always going to be faster than yum

April 30, 2008

One of the things that people report (to put it politely) when they switch between a Debian-derived distribution and Fedora is that apt is faster than yum. This is indeed the case, and it is always going to be the case, because yum is simply doing far more work than apt is.

(Whether or not the speed difference matters in practice is another debate. It doesn't bother me, but then I use fairly fast and beefy machines.)

As I understand it, the different amount of work is ultimately due to a basic difference in how each system approaches dependencies. In Debian, the approach to dependencies is entirely package based; package A declares that it requires packages B, C, and D. In RPMs, the dependencies are mostly on things, like files and libraries; while you can make your RPM explicitly depend on packages, you generally don't.

The end result is that there are a lot more dependencies running around an RPM-based system than there are around a Debian one, and many of them are indirect dependencies (you don't depend on a package directly, you depend on something provided by a package). Thus, doing things on an RPM-based system means checking a lot more dependencies, in bigger indexes, and generally taking more steps in resolving each dependency to a package. In short, more work that deals with more data, which means slower.

(The RPM based system has bigger dependency indexes because it has to include files and libraries and so on in them, not just packages.)

As a side note, I suspect that it doesn't help that yum has larger indexes and downloads them a lot more often than apt does.

Written on 30 April 2008.
« Why you can't stop 'abuse' of file sharing services
What the co_names attribute on Python code objects is »

Page tools: View Source, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Wed Apr 30 23:59:03 2008
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.