Linux package management with YUM and RPM
Installing, patching, and removing software packages on Linux machines is one of the common tasks every sysadmin has to do. Here is how to get started with Linux package management in Linux Red Hat-based distributions (distros).
Package management is a method of installing, updating, removing, and keeping track of software updates from specific repositories (repos) in the Linux system. Linux distros often use different package management tools. Red Hat-based distros use
RPM (RPM Package Manager) and
YUM/DNF (Yellow Dog Updater, Modified/Dandified YUM).
Yellow Dog Updater, Modified (YUM)
[ Editor's Note: DNF or Dandified YUM is the updated default since Red Hat Enterprise Linux 8, CentOS 8, Fedora 22, and any distros based on these. Generally, the options are the same. Read more about DNF here. ]
YUM is the primary package management tool for installing, updating, removing, and managing software packages in Red Hat Enterprise Linux.
YUM performs dependency resolution when installing, updating, and removing software packages.
YUM can manage packages from installed repositories in the system or from
.rpm packages. The main configuration file for
YUM is at
/etc/yum.conf, and all the repos are at
[ Read: A quick guide to DNF for yum users ]
You can learn more about adding repositories to your system from this article on how to add a YUM repo from Amy Marrich.
It's easy to manage packages in Linux with
YUM. At the command line, enter:
yum -option command
There are many options and commands available to use with
YUM. I've listed some commonly-used commands for
|yum install||Installs the specified packages|
|remove||Removes the specified packages|
|search||Searches package metadata for keywords|
|update||Updates each package to the latest version|
|history||Displays what has happened in past transactions|
The following are commonly-used options with
|-C||Runs from system cache|
|--security||Includes packages that provide a fix for a security issue|
|-y||Answers yes to all questions|
|--skip-broken||Skips packages causing problems|
history option gives you an overview of what happened in past transactions. This provides some useful information, like the date when the transaction happened and what command was run.
You can undo or redo certain transactions using the
history command. Here is an example of undoing a transaction:
yum history undo <id>
YUM provides many options for package management. For detailed option information, look at
man yum and
yum –help. Also, here is a link to YUM documentation.
RPM (RPM Package Manager)
RPM is a popular package management tool in Red Hat Enterprise Linux-based distros. Using
RPM, you can install, uninstall, and query individual software packages. Still, it cannot manage dependency resolution like
RPM does provide you useful output, including a list of required packages. An
RPM package consists of an archive of files and metadata. Metadata includes helper scripts, file attributes, and information about packages.
RPM maintains a database of installed packages, which enables powerful and fast queries. The
RPM database is inside
/var/lib, and the file is named
RPM has some basic modes: query, verify, install, upgrade, erase, show querytags, show configuration. At least one of these modes needs to be selected to perform package management tasks. Every mode has its own set of options. For example, install mode
i has its own set of installation options. Options for the modes are found on the
RPM man pages at
Some commonly-used modes are listed below:
|-i||Installs a package|
|-U||Upgrades a package|
|-e||Erases a package|
|-V||Verifies a package|
|-q||Queries a package|
Here are some commonly-used general options:
|-? | --help||Prints help|
|--version||Prints version number|
|-v||Prints verbose output|
To install or upgrade an
.rpm package using
RPM, issue this command:
rpm -i package-file
rpm -U package-file
rpm -ivh package-file
-i is for install,
U is for upgrade,
v for verbose,
h for hash (this option displays the
# as a progress bar for the operation). In this example,
h are optional flags.
To query for a package using
RPM issue following command:
rpm -q query-options package
rpm -qa vim-enhanced
a queries all installed packages on the system.
To erase a package, use the following command:
rpm -e erase-options package-name
rpm -evh vim-enhanced
Package management is a common task for every system.
RPM provide efficient ways to install, upgrade, remove, and track software packages on Red Hat Enterprise Linux systems.
[ Want to try out Red Hat Enterprise Linux? Download it now for free. ]