Difference Between YUM & RPM
During the initial Linux installation, larger selection of programs is installed by default, but there may be occasions where a user needs new programs installed. Some time back, users were required to compile and build source code to install a new program. But now, users can easily install pre-built programs called packages. Package management tools are used to install, update and remove packages from the Linux distributions. RPM is a popular package manager used on Linux platforms. YUM is a high-level frontend for RPM. RPM was developed by Red Hat, while YUM (Yellowdog Updater, Modified) was originally developed at Duke University for managing Red Hat systems in the physics laboratory. RPM has basic command-line functionality, can obtain packages from the internet, keep installed packages in a database and can be integrated with other user-friendly GUIs. YUM provides several other added functionalities on top of the existing functionality of RPM.
What is RPM?
RPM was introduced by Red Hat in 1995. It was originally known as Red Hat Package Manager, but now it is known as RPM Package Manager. RPM is the default package manger in Linux Standard Base (LSB). It was originally intended for the Red Hat Linux (which was discontinued in 2004), but it is been used by many other GNU/Linux distributions as well as some other operating systems (e.g. Novell NetWare and IBM AIX). RPM can query, verify, install, upgrade, remove packages and perform other miscellaneous functions. The command to invoke RPM is rpm and the extension of RPM files is also .rpm. Typically, the term RPM is used to refer to both the software and the file type. RPM contains the complied software, while another related SPRM files contain either the source or scripts of the corresponding non-compiled package. Cryptographic verification of RPM packages is allowed through GPG and MD5. Corresponding patch files (PatchRPM and DeltaRPM) can update the software installed by RPM. Furthermore, RPM evaluates dependencies at build-time automatically.
What is Yum?
Yum (Yellowdog Updater, Modified) is a package manger for RPM-compatible Linux distributions. It is actually a high-level wrapper for RPM. It is an open source package manager, which provides command-line capability. However, there are existing tools that can provide GUI functionality to YUM. It is a full rewrite of YUP (Yellowdog Updater), which was developed by Duke. YUM is now being used in Red Hat Enterprise Linux (RHEL), Fedora, CentOS and Yellow Dog Linux (replacing YUP). Automatic update of software is accommodated through yum-updateesd, yum-updatenboot, yup-cron or PackageKit packages. YUM XML repository (collections of packages) is the first of its kind for RPM-based systems.
What is the difference between Yum and RPM?
RPM is a package manager for Linux-based systems, while YUM is package manager utility for RPM-based Linux distributions. In other words, YUM is a frontend (high-level wrapper) for RPM. RPM could be identified as relatively low level, compared to YUM. YUM uses the information in the RPM databases to make it easier to manage all packages stored on the system. In addition to providing a high-level frontend to RPM, YUM adds automatic updates and dependency management. Unlike RPM, YUM offers the ability to work with repositories.
YUM(Yellow dog updater and modifier) is latest model/application in installing RPM packages on Redhat based machines. This YUM comes in to existence due to drawbacks of RPM package management
RPM ==>If we want to install an application(Ex: apache), rpm need to install all the packages required for this application, these packages may vary from 1 rpm to several rpm’s depending on shared rpm packages.
YUM ==>Install an application with single command
Ex: yum install httpd
RPM ==>RPM package dependencies is bit tough
YUM ==>YUM resolves dependencies with ease
RPM ==>Batch installation of applications is possible with one command
YUM ==>YUM command can install number of applications in one single command
Ex: yum install httpd vsftpd
RPM ==>RPM can not handle updated software installation automatically
YUM ==>Does YUM install updates of the existing packages by using
yum install upgrade
RPM ==>Can not connect to online repositories
YUM ==>Can connect to on-line repositories to get latest software before installing the applications
1. RPM is a package manager while YUM is a frontend that can be used with RPM.
2. The RPM package manager is unable to track dependencies while YUM can.
YUM vs RPM
The Red Hat Package Manager or RPM is the default package manager for Linux distributions that use packages with the same name. Initially developed by Red Hat, it eventually found widespread acceptance in a lot of Linux distributions. YUM stands for Yellowdog Updater Modified and is a front end for Linux distributions that utilize the RPM package format. Both of these are only usable with RPM based distros and are not usable with those that use debian packages like Ubuntu.
Although RPM is a very robust tool that a lot of users are already familiar with, there are still some minor flaws that are an annoyance to users. The most prominent problem is a state commonly referred to by most people as ‘dependency hell’. This problem occurs with packages that depend on a lot of other packages, some of those packages also depend on a lot of other packages. It is common knowledge that you must install all dependencies for the program to work correctly. RPM is unable to automatically do this for you. It can only check whether all the required packages are installed prior to installing the needed package. Manually tracking and installing each dependency is a major chore for most people who only want to install a single package initially.
YUM is capable of tracking the dependencies of a package and installing them prior to installing the package that the user wanted to install. This simplifies the whole process as you need only know the name of the package that you want to install and not worry whether the required packages have been installed or not. Packages that can’t be found on the system are searched for in the repositories that are available to the system.
Although both RPM and YUM are what really installs the packages, you would probably not be using either of those unless you are proficient with command lines and the various parameters that need to be passed. To make it easier for ordinary people to quickly grasp total control of their system, there are various graphical user interfaces or GUIs that can be used on top of either YUM or RPM. These GUIs are what people commonly see and interact with and not YUM or RPM.