25 Practical and Useful RPM Command Examples in Linux{cheatsheet}

Table of Contents

In this tutorial, I will take you through 25 Practical and Useful RPM Command Examples in Linux. An RPM is a special archive file that contains software packaged for installation on RHEL/CentOS based servers. Any software package required to be installed in RHEL/CentOS based server has to be an rpm package. To install an rpm package you need to use an open source tool called rpm freely available on RHEL/CentOS/Fedora Servers.

What is RPM DB

It is a database which maintains the information of all the installed packages in a RHEL/CentOS Linux Servers. It also contains information about the package upgradation and list of updates applied on the Server.

SYNOPSIS

QUERYING AND VERIFYING PACKAGES:

rpm {-q|–query} [select-options] [query-options]

rpm {-V|–verify} [select-options] [verify-options]

INSTALLING, UPGRADING, AND REMOVING PACKAGES:

rpm {-i|–install} [install-options] PACKAGE_FILE …

Advertisements

rpm {-U|–upgrade} [install-options] PACKAGE_FILE …

rpm {-F|–freshen} [install-options] PACKAGE_FILE …

rpm {-e|–erase} [–allmatches] [–justdb] [–nodeps] [–noscripts]
[–notriggers] [–test] PACKAGE_NAME …

MISCELLANEOUS:

rpm {–querytags|–showrc}

rpm {–setperms|–setugids} PACKAGE_NAME …

21 Practical and Useful RPM Command Examples in Linux{cheatsheet}

Practical and Useful RPM Command Examples in Linux

Also Read: How to Convert/Change Time to Epoch Time using date utility on Linux or Unix Server  

Example 1: How to Check RPM Command Version

You need to use rpm --version command to check the current rpm version. As you can see from below output, current version is 4.11.3.

[root@localhost ~]# rpm --version
RPM version 4.11.3

--version : print the version of rpm being used. More on rpm Man Page.

NOTE:

Please note that here I am using root user to run all the below commands.You can use any user with sudo access to run all these commands. For more information Please check Step by Step: How to Add User to Sudoers to provide sudo access to the User.

Example 2: How to Install a Package Using RPM Command

If you want to install any rpm package from some direct URL then you need to use rpm -i <package_url> command. Here we are installing EPEL Repository package directly from the URL.

[root@localhost ~]# rpm -i https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

-i : install package(s). More on rpm Man Page.

Example 3: How to Use verbose(-v) Option with RPM Command

If you want to see the operations of running rpm command then it is always a good idea to run all rpm commands with verbose(-v) option enabled.

[root@localhost ~]# rpm -iv https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Retrieving https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Preparing packages...
epel-release-7-12.noarch

-v : provide more detailed output. More on rpm Man Page.

Example 4: How to Use hash(-h) option with RPM Command

If you want to print the hash marks during installation then you need to use -h option with rpm command. Hash mark will act as a progress bar that gives information about the percentage of installation completion.

[root@localhost ~]# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Retrieving https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-12 ################################# [100%]

-h :  print hash marks as package installs. More on rpm Man Page.

Example 5: How to Check all the Packages installed in RPM DB

If you want to query all the installed packages from RPM DB then you need to use rpm -qa command as shown below.

[root@localhost ~]# rpm -qa
glusterfs-cli-6.0-29.el7.x86_64
langtable-data-0.0.31-4.el7.noarch
teamd-1.29-1.el7.x86_64
perl-Types-Serialiser-1.0-1.el7.noarch
ncurses-base-5.9-14.20130511.el7_4.noarch
perl-podlators-2.5.1-3.el7.noarch
ndctl-libs-65-5.el7.x86_64
kpartx-0.4.9-131.el7.x86_64
net-snmp-libs-5.7.2-48.el7_8.1.x86_64
basesystem-10.0-7.el7.centos.noarch
perl-Time-HiRes-1.9725-3.el7.x86_64
plymouth-graphics-libs-0.8.9-0.33.20140113.el7.centos.x86_64
perl-YAML-0.84-5.el7.noarch
info-5.1-5.el7.x86_64
perl-Time-Local-1.2300-2.el7.noarch
createrepo-0.9.9-28.el7.noarch
policycoreutils-2.5-34.el7.x86_64
lshw-B.02.18-14.el7.x86_64
pcre-8.32-17.el7.x86_64
perl-5.16.3-295.el7.x86_64
xorg-x11-server-common-1.20.4-10.el7.x86_64
plymouth-core-libs-0.8.9-0.33.20140113.el7.centos.x86_64
python-jinja2-2.7.2-4.el7.noarch
libtasn1-4.10-1.el7.x86_64
python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch

-q : query format. More on rpm Man Page.

-a : query/verify all packages. More on rpm Man Page.

Example 6: How to Query Specific Package from RPM DB

If you want to query a specific package from RPM DB then you need to grep that package name from rpm -qa output. In this example we are trying to query EPEL Repository package name from RPM DB using rpm -qa | grep -i epel-release command as shown below.

[root@localhost ~]# rpm -qa | grep -i epel-release
epel-release-7-12.noarch

Example 7: How to Remove a Package without removing any of its dependencies

If you want to remove any package without removing any of its dependencies then you need to use --nodeps option with rpm command as shown below. In this example, we are trying to remove EPEL Repository package using rpm -evh --nodeps epel-release command as shown below.

[root@localhost ~]# rpm -evh --nodeps epel-release
Preparing... ################################# [100%]
Cleaning up / removing...
1:epel-release-7-12 ################################# [100%]

-e : erase (uninstall) package. More on rpm Man Page.

Example 8: How to Query Documentation of an Installed Command

If you want to query documentation of an installed command then you need to use -qdf option with rpm command as shown below. In this example, we are querying the documentation of ls command using rpm -qdf /usr/bin/ls command as shown below.

[root@localhost ~]# rpm -qdf /usr/bin/ls
/usr/share/doc/coreutils-8.22/ABOUT-NLS
/usr/share/doc/coreutils-8.22/COPYING
/usr/share/doc/coreutils-8.22/ChangeLog.bz2
/usr/share/doc/coreutils-8.22/NEWS
/usr/share/doc/coreutils-8.22/README
/usr/share/doc/coreutils-8.22/THANKS
/usr/share/doc/coreutils-8.22/TODO
/usr/share/doc/coreutils-8.22/fileutils/ChangeLog-1997.bz2
/usr/share/doc/coreutils-8.22/fileutils/ChangeLog.bz2
/usr/share/doc/coreutils-8.22/fileutils/NEWS
/usr/share/doc/coreutils-8.22/sh-utils/ChangeLog.0.bz2
/usr/share/doc/coreutils-8.22/sh-utils/ChangeLog.bz2

-d : list all documentation files. More on rpm Man Page.

-f : query/verify package(s) owning file. More on rpm Man Page.

Example 9: How to Query Documentation of an Installed Package

If you want to query documentation of an installed package then you need to use -qd option with rpm command. In this example, we are querying the documentation of EPEL Repository package using rpm -qd epel-release command as shown below.

[root@localhost ~]# rpm -qd epel-release
/usr/share/doc/epel-release-7/GPL

Example 10: How to Verify All the Installed RPM Packages

If you want to verify all the installed rpm packages then you need to use rpm -Va command as shown below.

[root@localhost ~]# rpm -Va
.......T. c /etc/profile
S.5....T. c /var/lib/unbound/root.key
.M....... g /etc/lvm/cache/.cache
S.5....T. c /root/.bash_profile
S.5....T. c /root/.bashrc
S.5....T. /usr/bin/pip
S.5....T. /usr/bin/pip2
S.5....T. /usr/bin/pip2.7
missing /usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg-info
missing /usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg-info/PKG-INFO
missing /usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg-info/SOURCES.txt
missing /usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg-info/dependency_links.txt

-V : verify. More on rpm Man Page.

Example 11: How to Check all Imported GPG Key

To check all the imported GPG Key you need to use rpm -qa gpg-pubkey* command as specified below.

[root@localhost ~]# rpm -qa gpg-pubkey*
gpg-pubkey-f4a80eb5-53a7ff4b
gpg-pubkey-f5cf6c1e-5544f037
gpg-pubkey-352c64e5-52ae6884
gpg-pubkey-5072e1f5-4e773e2a

Example 12: How to Upgrade a Package in Linux

You can also upgrade a package in Linux using rpm command. In this example, we are trying to upgrade EPEL Repository package using rpm -Uvh epel-release-latest-7.noarch.rpm command as shown below.

[root@localhost ~]# rpm -Uvh epel-release-latest-7.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-12 ################################# [100%]

-U : upgrade package(s). More on rpm Man Page.

Example 13: How to Install Package without its dependencies in Linux

If you have downloaded any package in your local system and you want to install that package locally without its dependencies then you have to use below rpm command. In this example, we are trying to install local downloaded EPEL Repository package using rpm -ivh --nodeps epel-release-latest-7.noarch.rpm command as shown below.

[root@localhost ~]# rpm -ivh --nodeps epel-release-latest-7.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-12 ################################# [100%]

--nodeps : do not verify package dependencies

Example 14: How to Remove RPM Package from Linux Server

To remove RPM Package from Linux server you can use -evh option with rpm command. In this example, we are trying to remove EPEL Repository package using rpm -evh epel-release command as shown below.

[root@localhost ~]# rpm -evh epel-release
Preparing... ################################# [100%]
Cleaning up / removing...
1:epel-release-7-12 ################################# [100%]

Example 15: How to Check all the Recently Installed Packages

If you are looking for all the recently installed packages then you can make use of --last option available with rpm command. In this example we are checking all the recently installed packages using rpm -qa --last command as shown below.

[root@localhost ~]# rpm -qa --last
epel-release-7-12.noarch Wed 11 Nov 2020 11:23:52 AM EST
oniguruma-6.8.2-1.el7.x86_64 Tue 10 Nov 2020 10:46:12 PM EST
logrotate-3.8.6-19.el7.x86_64 Sat 07 Nov 2020 08:21:43 AM EST
arpwatch-2.1a15-36.el7.x86_64 Sat 07 Nov 2020 06:02:37 AM EST
python36-websocket-client-0.47.0-2.el7.noarch Sun 01 Nov 2020 05:27:19 PM EST
python36-urllib3-1.25.6-2.el7.noarch Sun 01 Nov 2020 05:27:19 PM EST
python36-six-1.14.0-2.el7.noarch Sun 01 Nov 2020 05:27:19 PM EST
python36-requests-2.14.2-2.el7.noarch Sun 01 Nov 2020 05:27:19 PM EST
python36-pysocks-1.6.8-7.el7.noarch Sun 01 Nov 2020 05:27:19 PM EST
python36-idna-2.7-2.el7.noarch Sun 01 Nov 2020 05:27:19 PM EST

--last : list package(s) by install time, most recent first

Example 16: How to Check the Dependencies of a Package before Installation

If you want to check all the dependencies of a package then you need to use -qpR option with rpm command. In this example we are trying to check all the dependencies of EPEL Repository package using rpm -qpR epel-release-latest-7.noarch.rpm command as shown below.

[root@localhost ~]# rpm -qpR epel-release-latest-7.noarch.rpm
config(epel-release) = 7-12
redhat-release >= 7
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

-p : query/verify a package file.

-R : List capabilities on which this package depends.

Example 17: How to Check the Installation Path of a Linux Package

If you want to check the installation path of a Linux package then you need to use -ql option with rpm command. In this example, we are looking for the installation path of Core Utils package using rpm -ql coreutils-8.22-24.el7.x86_64 command as shown below.

[root@localhost ~]# rpm -ql coreutils-8.22-24.el7.x86_64
/etc/DIR_COLORS
/etc/DIR_COLORS.256color
/etc/DIR_COLORS.lightbgcolor
/etc/profile.d/colorls.csh
/etc/profile.d/colorls.sh
/usr/bin/[
/usr/bin/arch
/usr/bin/base64
/usr/bin/basename
/usr/bin/cat
/usr/bin/chcon
/usr/bin/chgrp
/usr/bin/chmod
/usr/bin/chown
/usr/bin/cksum
/usr/bin/comm

-l : List files in package.

Example 18: How to Check the Package name of a Linux Command

You can also check the package name of any of the Linux command using -qf option with rpm command. This only requires to find out the complete path of the command by using which <command>. Once you know the path you can directly use rpm -qf <linux_command_path>. In this example we are trying to check the package name of ls command using rpm -qf /usr/bin/ls command as shown below.

[root@localhost ~]# rpm -qf /usr/bin/ls
coreutils-8.22-24.el7.x86_64

Example 19: How to Check the Signature of RPM Package

You also have an option available with rpm command to check the signature of a rpm package. This can be checked by using --checksig option. In this example, we are checking the signature of EPEL Repository package using rpm --checksig epel-release-latest-7.noarch.rpm command as shown below.

[root@localhost ~]# rpm --checksig epel-release-latest-7.noarch.rpm
epel-release-latest-7.noarch.rpm: rsa sha1 (md5) pgp md5 OK

Example 20: How to Verify a Specific RPM Package

If you want to verify any of the rpm package then you need to use -Vp option with rpm command. In this example, we are trying to verify the EPEL Repository package using rpm -Vp epel-release-latest-7.noarch.rpm command as shown below.

[root@localhost ~]# rpm -Vp epel-release-latest-7.noarch.rpm
missing /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
missing c /etc/yum.repos.d/epel-testing.repo
missing c /etc/yum.repos.d/epel.repo
missing /usr/lib/systemd/system-preset/90-epel.preset
missing /usr/share/doc/epel-release-7
missing d /usr/share/doc/epel-release-7/GPL

Example 21: How to Query a Package before Installation

If you want to query a package before installation then you need to use -qip option with rpm command as shown below. In this example, we are trying to check the EPEL Repository package using rpm -qip epel-release-latest-7.noarch.rpm command as shown below.

[root@localhost ~]# rpm -qip epel-release-latest-7.noarch.rpm
Name : epel-release
Version : 7
Release : 12
Architecture: noarch
Install Date: (not installed)
Group : System Environment/Base
Size : 25032
License : GPLv2
Signature : RSA/SHA256, Wed 18 Sep 2019 08:56:09 AM EDT, Key ID 6a2faea2352c64e5
Source RPM : epel-release-7-12.src.rpm
Build Date : Tue 17 Sep 2019 07:26:40 PM EDT
Build Host : buildvm-23.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : http://download.fedoraproject.org/pub/epel
Bug URL : https://bugz.fedoraproject.org/epel-release
Summary : Extra Packages for Enterprise Linux repository configuration
Description :
This package contains the Extra Packages for Enterprise Linux (EPEL) repository
GPG key as well as configuration for yum.

Example 22: How to Query the List of Configuration Files for a Package

If you want to check the list of configuration files for a package then you need to use -qc option with rpm command as shown below. In this example, we are trying to get the list of configuration files for EPEL Repository package using rpm -qc epel-release command as shown below.

[root@localhost ~]# rpm -qc epel-release
/etc/yum.repos.d/epel-testing.repo
/etc/yum.repos.d/epel.repo

Example 23: How to Query the List of Configuration Files for a Command

If you want to query the list of configuration files for a command instead of a package then you need to use -qcf option with rpm command. In this example we are getting the list of configuration files for ls command using rpm -qcf /usr/bin/ls command as shown below.

[root@localhost ~]# rpm -qcf /usr/bin/ls
/etc/DIR_COLORS
/etc/DIR_COLORS.256color
/etc/DIR_COLORS.lightbgcolor
/etc/profile.d/colorls.csh
/etc/profile.d/colorls.sh

Example 24: How to Check all the Options available with RPM Command

If you want to check all the options available with rpm command then you need to use rpm --help command to check that as you can see below.

[root@localhost ~]# rpm --help
Usage: rpm [OPTION...]

Query/Verify package selection options:
-a, --all query/verify all packages
-f, --file query/verify package(s) owning file
-g, --group query/verify package(s) in group
-p, --package query/verify a package file
--pkgid query/verify package(s) with package identifier
--hdrid query/verify package(s) with header identifier
--triggeredby query the package(s) triggered by the package
--whatrequires query/verify the package(s) which require a dependency
--whatprovides query/verify the package(s) which provide a dependency
--nomanifest do not process non-package files as manifests

Example 25: How to Check the Man Page of rpm command

You can check the Man page of rpm command using man rpm command as shown below.

[root@localhost ~]# man rpm
RPM(8) System Manager's Manual RPM(8)

NAME
rpm - RPM Package Manager

SYNOPSIS
QUERYING AND VERIFYING PACKAGES:
rpm {-q|--query} [select-options] [query-options]

rpm {-V|--verify} [select-options] [verify-options]

INSTALLING, UPGRADING, AND REMOVING PACKAGES:
rpm {-i|--install} [install-options] PACKAGE_FILE ...

rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts]
[--notriggers] [--test] PACKAGE_NAME ...

MISCELLANEOUS:
rpm {--querytags|--showrc}

rpm {--setperms|--setugids} PACKAGE_NAME ...

 

 

 

 

Popular Recommendations:-

How to Install jq(JSON Processor) on RHEL/CentOS 7/8 

How to Defragment an XFS Filesystem in Linux(5 Simple and Effective Steps)

How to Install Arpwatch tool on RHEL/CentOS 7/8(Simple and Effective Steps)

How to Install and Configure Squid Proxy Server on RHEL/CentOS 7/8

Python3: ModuleNotFoundError: No Module Named “prettytable” in Linux 

How to List all the Installed Python Modules in Linux{2 Easy Methods}

Solved: ModuleNotFoundError: No Module Named “requests” in Python 3

How to Install and Enable EPEL Repository on RHEL/CentOS 7/8{Simple and Easy Steps}

Advertisements

Leave a Reply