How To Install Rpm In Linux

How To Install Rpm In Linux

Reading time1 min
#Linux#OpenSource#Technology#RPM#PackageManagement#Sysadmin

Mastering RPM Installation on Linux: A Step-by-Step Technical Blueprint

Forget the guesswork: demystify RPM installation by breaking down the process from dependency resolution to post-install configuration, empowering sysadmins to take control without relying on GUI tools or guesswork.


RPM (Red Hat Package Manager) is a cornerstone package format for many enterprise Linux distributions like RHEL, CentOS, Fedora, and openSUSE. For sysadmins and Linux enthusiasts alike, mastering RPM installation is essential — it streamlines software deployment, ensures system stability, and reduces headaches down the line.

In this post, we’ll walk through how to install RPM packages on Linux at the command line, tackle common pitfalls like dependency issues, and discuss best practices for managing RPMs effectively.


Understanding the Basics of RPM Packages

RPMs are binary or source packages that bundle all necessary files along with metadata such as version info and dependencies. Unlike universal package managers (e.g., apt on Debian-based systems), RPM requires you to manage dependencies explicitly — or use higher-level tools that automate this.

Why Install RPMs Manually?

  • You’re working on minimal/enterprise servers without graphical package managers.
  • You need control over specific versions.
  • You’re deploying custom or third-party software not in official repositories.

Step 1: Check for Existing Package Installation

Before jumping into installation, check if the package is already installed:

rpm -q package_name

Example:

rpm -q httpd

If installed, this returns the version; otherwise:

package httpd is not installed

Step 2: Installing an RPM Package

Using rpm command directly

The core utility to manage RPMs is rpm. To install a package:

sudo rpm -ivh package_file.rpm
  • -i: install
  • -v: verbose output
  • -h: display hash marks to show progress

Example:

sudo rpm -ivh nginx-1.20.1-1.el7.ngx.x86_64.rpm

Warning: This method does NOT resolve dependencies automatically. If there are missing dependencies the installation fails.


Step 3: Handling Dependencies with yum or dnf

Since manual rpm -i doesn’t handle dependencies, sysadmins usually prefer using:

  • yum (RHEL7/CentOS7)
  • dnf (Fedora, RHEL8+)

These frontends resolve dependencies by downloading required packages from enabled repositories.

To install an rpm file with dependencies handled automatically:

sudo yum localinstall package_file.rpm
# or on newer systems:
sudo dnf install package_file.rpm

Example:

sudo dnf install ./nginx-1.20.1-1.el8.ngx.x86_64.rpm

Note that using the relative path (./) tells dnf it’s a local file.


Step 4: Updating an Existing Installed Package

To upgrade an existing rpm package keeping configuration files intact:

sudo rpm -Uvh package_file.rpm

or better with dnf/yum:

sudo dnf upgrade package_file.rpm

Step 5: Verifying Installation

After installing your rpm successfully, verify installation and list files installed by the package:

rpm -ql package_name

Check files’ integrity/status:

rpm -V package_name

Step 6: Removing an Installed Package

To uninstall/remove an rpm:

sudo rpm -e package_name

Check also if dependencies are affected before removal.


Bonus: Querying Detailed Info About Packages

Get detailed metadata about any installed or local package file:

rpm -qi package_name       # Info about installed package by name 
rpm -qpi package_file.rpm  # Info about local file 

List packages matching a pattern:

rpm -qa | grep partial-package-name  

Troubleshooting Common Errors

Missing Dependencies?

If you get errors like:

error: Failed dependencies:
    libfoo.so.1()(64bit) is needed by your-package-name-version.arch.rpm

Try installing those dependencies manually via yum/dnf or enable appropriate repos.

You can also use tools like yum-utils which includes repoquery and yumdownloader to fetch missing rpms.

Database Lock Issues

RPM uses /var/lib/rpm/__db*. If you see lock errors, try rebuilding db:

sudo rm -f /var/lib/rpm/__db.*
sudo rpm --rebuilddb

Summary Checklist for Smooth RPM Installation

TaskCommand Example
Check if installedrpm -q httpd
Basic install (no deps)rpm -ivh pkg.rpm
Install with deps (recommended)dnf install ./pkg.rpm
Upgrade existing pkgrpm -Uvh pkg.rpm or dnf upgrade ./pkg.rpm
Verify filesrpm -ql pkgname
Removerpm -e pkgname

Mastering these commands guarantees you can confidently manage most RPM-based software installations without GUIs or guesswork — the kind of robust knowledge that’s invaluable in enterprise Linux environments!


Did this guide help demystify RPM installations for you? Drop your questions or share your own tips in comments below!