A web development/programming blog providing info, tips, and tricks on programming languages, scripting, Linux, MySQL and more
What is the Difference Between RPM and YUM?
Anyone who is familiar with just about any Linux distribution has had to install software at some point or another. If it’s a process you’re not familiar with, what’s the first thing you do? You turn to Google of course (or Scour). Inevitably you have come across an article instruction you to install the software with the RPM command, while another one tells you how to do it with the YUM command. The question then comes up:
What’s the difference between installing software using RPM vs. YUM?
As long as the software works, it doesn’t matter right? Well, for those of you obsessive-compulsive types, I feel your pain. Not only do I want it to work, but I want to know why. So I decided to take it upon myself to answer this question and share my findings.
Both RPM, “RPM Package Manager” (formerly “Red Hat Package Manager”), and YUM, “Yellow dog Updater, modified”, are Linux package management systems. Package management systems are often confused with installers. The following table details the main differences between a package management system and an installer:
| Package Management System | Installer |
|---|---|
| Typically part of the operating system. | Each product comes bundled with its own installer. |
| Uses a single installation database. | Performs its own installation, sometimes recording information about that installation in a registry. |
| Can verify and manage all packages on the system. | Only works with its bundled product. |
| Single package management system vendor. | Multiple installer vendors. |
| Single package format. | Multiple installation formats. |
Above table provided by Wikipedia
Based on the above table, you can see that a package management system is it’s own piece of software that is often bundled with the OS, whereas an installer is bundled with each individual piece of software.
RPM is a pretty straightforward utility. Per the RPM man page,
RPM is a powerful Package Manager, which can be used to build, install, query, verify, update, and erase individual software packages.
In additiona, rpm can also be used to verify the digital signature of the packages you are installing to verify it has not been changed. RPM was originally developed for Red Hat Linux, but now is shipped with many Linux distributions including Fedora, Mandriva, RHEL, SUSE, CentOS, Yellow Dog, and more (not Ubuntu, sorry).
YUM is honestly not much different from RPM. From the YUM man page,
YUM is an interactive, automated update program which can be used for maintaining systems using RPM.
So YUM actually is, in essence, an advanced version of RPM. According to Wikipedia, YUM is a “package-management utility for RPM-compatible Linux operating systems”. So really, you can only use YUM if you are on one of the above RPM enabled systems. To me that means that YUM was created to improve RPM.
Both utilities are going to perform the exact same functions. However, one big advantage that YUM has over RPM, is that YUM will automatically resolve package dependencies. If the package being installed requires additional dependencies, YUM can install those automatically, while RPM will simply prompt to install those first. This can save some time if the rpm you are installing requires multiple dependencies, say for instance if you are installing Gnome or KDE. Another benefit to YUM Is that it can be modified with Python plugins. For instance, the yum-downloadonly plugin can be installed so yum will download the rpm package, but will not install it.
After researching the issue, I have come to the conclusion that if you are an RPM-enabled distro, it should have YUM on it. If it doesn’t install it and use it. YUM appears to be far more flexible and extensible than RPM and is now my install of choice.
What do you think between the two? If there is something that I missed, by all means point it out here.

