How to Use the RPM Command in Linux

Introduction

RPM is a command-line utility for managing packages on Unix/Linux systems. It allows you to install, query, update, verify and remove RPM packages.

It is the default package manager for Red Hat based systems and only works with the .rpm format. You can install such packages using the rpm or the yum command.

In this article, you will learn how to use rpm commands with easy-to-follow examples.

How to use the RPM command in Linux.

Prerequisites

  • A system running Linux.
  • Access to the command line/terminal.
  • Access to root or an account with sudo privileges.

Linux RPM Command Syntax

The basic syntax for the command is:

sudo rpm [option] [package_name]

To see a full list of command options, run:

sudo rpm --help
Display RPM command help message.

RPM Command Options

Below you will find the most popular command options used with the rpm command and their meaning.

-e, --eraseRemove (uninstall) package(s).
-h, --hashPrint hash marks as the package installs.
-i, --installInstall package(s).
-l, --listList files in a package.
-q, --queryQuery package(s).
-s, --stateDisplay the state of the listed files.
-U, --upgradeUpgrade package(s).
-v, --verboseProvide more detailed output.
-V, --verifyVerify package(s).

RPM Command Examples

The rpm command is simple to use and allows combining multiple options to customize each query. Explore some of the most commonly used commands listed below and try out how they work with a sample package.

Install RPM Packages

To install RPM packages with the rpm command, use the syntax:

sudo rpm -ivh package_name

The command includes the options:

  • -i (install)
  • -v (verbose output)
  • -h (print hash marks to show the installation process)

Before installing, you need to download the appropriate file. The package has to be compatible with the system architecture of the machine. 

Note: To download packages, use the curl or wget command.

For instance, to install the MySQL package, you run:

sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm

To install an RPM package without previously downloading it, provide the URL:

sudo rpm -ivh package_URL

For example:

sudo rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
Install an RPM package without previously downloading it.

Note: For a more detailed guide on installing RPM packages, check out our guide on how to install RPM packages on Ubuntu.

Upgrade RPM Packages

RPM upgrades a package by uninstalling the current version and installing the latest one. 

The command for upgrading a package is:

sudo rpm -Uvh package_name
  • -U (upgrade)
  • -v (verbose mode)
  • -h (print hash marks to show upgrading process)

To upgrade MySQL, use:

sudo rpm -Uvh mysql80-community-release-el7-5.noarch.rpm
Upgrade RPM package.

If the new version requires additional dependencies, you must install them manually. RPM lists the missing dependencies in the output after running the command.

To ignore the message and update without the dependencies, add the --nodeps option to the command:

sudo rpm -Uvh --nodeps package_name

Remove RPM Packages

Remove RPM packages using the -e (--erase) option:

sudo rpm -e package_name

To see the verbose output, add the -v option to the command:

sudo rpm -ev package_name

To delete an RPM package without removing dependencies, add --nodeps:

sudo rpm -ev --nodeps package_name

For example, to remove MySQL without removing its dependencies, you run:

sudo rpm -ev --nodeps mysql80-community-release-el7-5.noarch
Delete an RPM package without removing its dependencies.

Note: For a more detailed guide on removing RPM packages, check out our guide on how to remove packages in CentOS.

Display Package Information After Installing

To see available information about an installed RPM package, use the -qi option, which instructs RPM to query info:

sudo rpm -qi package_name

The output displays the installed information, package version, and a short description.

To do so for MySQL, run:

sudo rpm -qi mysql89-community-release-el7-5.noarch
Display package information after installing.

Display Package Information Before Installing

The command for displaying information about a package prior to installation is:

sudo rpm -qip package_name

The command includes the options:

  • -qi (query information)
  • -p (query/verify a package)

To display information before installing the MySQL package, use the command:

sudo rpm -qip mysql89-community-release-el7-5.noarch

Check Package Dependencies Before Installing

RPM allows you to check the dependencies of packages prior to installing them on the system. Bear in mind, you need to have the RPM package downloaded locally to see a list of dependencies.

The command for doing so is:

rpm -qpR package_name

The options are:

  • -q (query format)
  • -p (query/verify a package)
  • -R (list package dependencies)

For example, to list the dependencies for installing the MySQL RPM package, you run:

rpm -qpR mysql80-community-release-el7-5.noarch

Verify Packages

Verifying packages means comparing metadata from the RPM database with the information from the installed files.

You can verify all installed packages using the command:

sudo rpm -Va
  • -V (verify)
  • -a (all)

To verify a specific package run:

sudo rpm -Vp package_name
  • -V (verify)
  • -p (package)

Verify the installed MySQL package with:

sudo rpm -Vp mysql80-community-release-el7-5.noarch.rpm
Verify RPM package.

Find Manual Pages

To list available documentation related to an installed RPM package, use the -qdf option:

sudo rpm -qdf package_name

The command options are:

  • -q (query format)
  • -d (list documentation files)
  • -f (query package owning file)

To find manual pages for MySQL, use the command:

sudo rpm -qdf mysql80-comunity-release-el7-5.noarch.rpm
List available documentation related to an installed RPM package.

List All Files of an Installed Package

See detailed information about a package by listing all its files, use the -ql option and instructs RPM to query list:

sudo rpm -ql package_name

For example, to list files of the sample MySQL package, you run:

sudo rpm -ql mysql80-community-release-el7-5.noarch
List all files of an installed RPM package.

List Installed Packages

List all of the installed RPM packages on the system by running the following:

sudo rpm -qa

The command includes the -qa option, which instructs RPM to query all.

List Recently Installed Packages

To display a list of all the recently installed packages, use the -qa (query all) option along with the --last attribute:

sudo rpm -qa --last

The output lists all the installed RPM packages, ordering them by the latest package on top.

Where to Find and Download RPM Packages?

You can find and download RPM packages on the following websites:

Conclusion

In this article, you learned how to use the rpm command for installing, verifying, upgrading, and deleting packages. Still, it is recommended to use the yum or dnf command for such actions as they automatically deal with dependencies.

Was this article helpful?
YesNo
Sofija Simic
Sofija Simic is an experienced Technical Writer. Alongside her educational background in teaching and writing, she has had a lifelong passion for information technology. She is committed to unscrambling confusing IT concepts and streamlining intricate software installations.
Next you should read
Snap vs APT: What's the Difference?
January 21, 2021

The software in Linux is traditionally organized in repositories that contain applications and all the dependencies...
Read more
How to List Installed Packages on CentOS with Yum or RPM
April 29, 2019

Managing a CentOS operating system often means knowing the software packages...
Read more
How to Uninstall or Remove Packages from CentOS
October 4, 2019

Once you have installed a package, it may be necessary to find and remove unneeded software and...
Read more
How to List Installed Packages on Ubuntu
March 9, 2022

Having a precise list of installed packages helps system admins maintain, replicate, and reinstall systems...
Read more
  • © 2022 Copyright phoenixNAP | Global IT Services. All Rights Reserved.