File Extension File Extension Guide

What is an RPM File?Linux Package

A guide to the .rpm extension, the software package format for Red Hat based Linux systems. What an RPM file contains, how to install one with dnf, yum or the rpm command, and how it compares to DEB and EXE.

Linux Package 🐧 Red Hat, Fedora, CentOS 📦 Installs software 🔒 GPG signed
.RPM

RPM Package Manager File

Type:Linux software package
Extension:.rpm
Used By:Red Hat, Fedora, CentOS
Installs With:dnf, yum or rpm
Debian Equivalent:.deb

📦 What is an RPM File?

An RPM file is a software package for Linux. It bundles everything a program needs into one file so that Red Hat based systems can install, update and remove that software cleanly.

The name comes from the RPM Package Manager, originally the Red Hat Package Manager, which is the system that handles these packages. When you want to add a program to a distribution like Fedora, Red Hat Enterprise Linux or CentOS, one common way is to download a .rpm file and let the package manager unpack it into the right places on your system. Inside that single file sits the compiled program along with its supporting pieces, and a set of instructions describing what it is and what else it needs to run. That last part matters, because an RPM records the other packages it depends on, so the system can warn you or fetch them rather than leaving you with a half-working install.

If you have used Linux before, you can think of an RPM as the Red Hat world's answer to the .deb packages used on Debian and Ubuntu. If you are arriving from Windows, it is tempting to see an RPM as the Linux version of an .exe, but that comparison is misleading in an important way covered further down. The sections here walk through what an RPM actually holds, how it lines up against those other formats, and the simple commands that install one.

Key Characteristics

  • Bundles a program and its files in one package
  • Used by Red Hat, Fedora, CentOS and SUSE
  • Installed through a package manager
  • Records the other packages it depends on

Good to Know

  • Free and open-source package system
  • Signed with GPG keys for authenticity
  • Similar in role to a Debian .deb file
  • Not the same as a Windows .exe program
💡 Why it matters: An RPM file is how software gets installed on Red Hat based Linux. It carries the program plus a record of what it needs, so the package manager can set everything up properly instead of leaving loose files scattered around.

⚡ Quick Facts

File Extension.rpm
Full NameRPM Package Manager file
CategoryLinux software package
Used ByRed Hat, Fedora, CentOS, Rocky, SUSE
Install Toolsdnf, yum, rpm
ContainsProgram files, metadata, dependencies
Debian Equivalent.deb package
Signed WithGPG keys

🔎 What Is Inside an RPM

An RPM is really an archive with a purpose, and it is worth seeing what the package manager finds when it opens one, because that explains why an RPM install is so tidy.

Packed inside are the program's actual files, the compiled binaries that run, along with the libraries they rely on, any default configuration files, and documentation. Sitting alongside those is the metadata, a description of the package that names it, gives its version, and lists the other packages it needs in order to work. There is also a set of scripts the system can run at the right moments during installation or removal, for tasks like registering a service. Because all of this travels together, the package manager knows exactly what it placed on your system and where, which is what lets it later update or remove the software cleanly and leave almost nothing behind. Many packages also carry a digital signature made with a GPG key, so your system can confirm the file genuinely came from its publisher and has not been tampered with. Most RPMs you meet are binary packages holding ready-to-run software for a particular processor type, marked in the file name by an architecture such as x86_64, or by noarch when the contents do not depend on the processor. A separate kind, the source RPM ending in .src.rpm, holds the original code a package is built from rather than the finished program.

An RPM bundles the program, its metadata and its dependency list

nginx-1.24.0.rpm   # one package file
 ├─ program files    # binaries, libraries, config, docs
 ├─ metadata         # name, version, description
 ├─ dependencies     # other packages it needs
 └─ GPG signature    # proof of authenticity

🔀 RPM vs DEB and EXE

Two comparisons come up constantly, one within Linux and one for anyone crossing over from Windows, and getting them straight clears up most of the confusion around RPM files.

Within Linux, RPM and DEB do the same job on different families. RPM is the package format for the Red Hat side, covering Fedora, Red Hat Enterprise Linux, CentOS and Rocky, while DEB is the format for the Debian side, covering Debian itself and Ubuntu and its relatives. A package built as an RPM will not install on Ubuntu as is, and a DEB will not install on Fedora, because each family expects its own format and its own package manager. The concepts are almost identical, so the main practical point is simply to download the version that matches your distribution.

The Windows comparison is where people go wrong. It is natural to treat an RPM like an .exe, since both are how you get software onto a machine, but they are not the same kind of thing. An .exe is the runnable program itself, whereas an RPM is a package that the system installs, a container of files and instructions rather than something you run directly. The closer Windows parallel is an installer package such as an .msi, which, like an RPM, hands its contents to a management system that puts everything in place and keeps track of it.

FormatSystemWhat It Is
RPMRed Hat, Fedora, CentOSA Linux install package
DEBDebian, UbuntuA Linux install package
EXEWindowsA runnable program
MSIWindowsAn install package
✅ In short: An RPM is the Red Hat family's install package, matching DEB on the Debian side. It is not a Windows EXE, which runs on its own, but is closer in spirit to an MSI installer package.

📥 How to Install an RPM File

There are two everyday ways to install an RPM, one through the desktop and one at the command line, and both are quick once you know them.

The graphical route is the gentlest. After you download an RPM from a project's website, double-click it and your distribution's software application, such as GNOME Software on Fedora, opens it and shows an Install button. Click that, enter your password when asked, and the software is added like any other app. The command line gives you more control and is the usual choice on servers. The recommended command uses your high-level package manager, which is dnf on current Fedora and Red Hat systems, because it installs the RPM and pulls in any packages it depends on at the same time. Older systems use yum in exactly the same way. There is also the lower-level rpm command, which installs the single file directly but does not fetch dependencies, so it can stop and tell you something is missing.

Installing a downloaded RPM from the terminal

# Recommended: dnf resolves dependencies for you
$ sudo dnf install ./package.rpm

# Older Red Hat systems use yum the same way
$ sudo yum install package.rpm

# Low-level rpm: installs but does not fetch dependencies
$ sudo rpm -i package.rpm

# Upgrade an already installed package
$ sudo rpm -U package.rpm
⚠️ Dependencies: Prefer dnf or yum over a bare rpm command. They install the package and automatically fetch anything it needs, whereas rpm on its own installs only the one file and stops if a dependency is missing.

🔧 Extract, Inspect and Remove

Installing is only part of the story, and the RPM tools let you look inside a package, check what it holds and take software back off again, all without guesswork.

Extract an RPM without installing it

Sometimes you want the files from a package but not a full install, perhaps to recover a single configuration file or to check what a download contains. The standard trick converts the package into an older archive form with the rpm2cpio tool and unpacks that with cpio, dropping the files into whatever folder you are in rather than onto the system. It even works on distributions that are not Red Hat based, since rpm2cpio travels with the rpm tooling. If you prefer to point and click, an archive manager such as Ark on KDE or the GNOME Archive Manager opens an RPM and lets you browse it like a zip.

Unpack a package into the current folder

# Convert to a cpio archive and unpack it here
$ rpm2cpio package.rpm | cpio -idmv

# Newer rpm can extract straight to a folder
$ rpm -i --extract package.rpm
Looking inside an RPM without installing package.rpm Command line rpm2cpio package.rpm | cpio -idmv unpacks files to your folder Archive manager Open with Ark or Archive Manager browse like any archive Files land in a folder you choose, nothing is added to the system

Inspect and query a package

The rpm command can answer questions about a package before or after it goes on. Adding a p to a query points it at a file on disk, so you can read a package's details or list its contents without touching your system, while the same queries without the p look up software already installed. This is handy for confirming a version, seeing exactly which files a program will place, or finding out which package a stray file on your system came from. A related check, rpm followed by the -V option and a package name, compares the installed files against what was recorded when they went on, flagging anything whose size, permissions or contents have since changed.

Reading a package's details and file list

# Show a downloaded package's info before installing
$ rpm -qip package.rpm

# List every file the package would place
$ rpm -qlp package.rpm

# Find which installed package owns a file
$ rpm -qf /path/to/file

Remove a package

Taking software off is the mirror image of installing it. The clean way is to let your high-level manager handle it with dnf remove followed by the package name, which also tidies up anything that was pulled in only for that program. The low-level equivalent is rpm with the e option. Whichever you use, the system checks whether other packages still rely on the one you are removing and stops rather than breaking them, which is exactly the safety you want.

⚠️ Handle with care: There is a --nodeps option that skips these dependency checks on install or removal, but it can leave software broken. Treat it as a last resort and reach for dnf or yum, which sort dependencies out for you.

🛠️ rpm vs dnf vs yum

Three command names show up around RPM files, and they are not competitors so much as layers, so it helps to know which does what.

At the bottom sits rpm, the low-level tool that installs, removes and queries a single package. It does exactly what you ask and no more, which means it will not go and find a missing dependency for you. Built on top of that idea are the high-level managers, yum and its modern successor dnf. These talk to software repositories, the online collections your distribution provides, so they can resolve dependencies automatically, download whatever a package needs, and keep everything updated. dnf, short for Dandified YUM, is the default on current Fedora and Red Hat releases and is faster and cleaner than the older yum, though the commands you type are nearly identical. In everyday use you reach for dnf or yum and let them lean on rpm underneath, saving the plain rpm command for the rare moment you want to act on one specific file and nothing else. Newer Fedora releases have begun moving to an updated version known as dnf5, and openSUSE, which also uses RPM packages, reaches for its own high-level manager called zypper, but the pattern is the same everywhere, a low-level tool for single packages with a smarter manager on top.

🌐 RPM vs Flatpak, Snap and AppImage

RPM is the traditional way to install software on Red Hat based Linux, but a newer group of formats now sits alongside it, and knowing how they differ helps you pick the right one.

An RPM is tied to a family of distributions and leans on the system's shared libraries, which keeps packages small and well integrated but means a package built for one distribution will not always suit another. The newer universal formats take a different path. Flatpak and Snap each bundle an application together with the pieces it needs so the same package runs across many distributions, trading a little extra size for that portability, and they add sandboxing that limits what an app can touch. AppImage goes furthest toward simplicity, packing everything into a single file you can download and run without installing at all. None of these replaces RPM outright. For core system software and anything your distribution ships, RPM through dnf remains the natural choice, while Flatpak, Snap and AppImage shine for desktop applications you want in the same form regardless of which Linux you happen to run.

FormatScopeBest For
RPMRed Hat based distributionsSystem software and distro packages
FlatpakMost distributionsSandboxed desktop apps
SnapMost distributionsDesktop and server apps
AppImageMost distributionsPortable, no-install apps

💼 What RPM Files Are Used For

RPM files exist to make installing and managing Linux software dependable, and that shows up everywhere from a home Fedora desktop to a data centre full of servers.

Most of the time you never handle an RPM by hand, because your package manager pulls them from repositories whenever you install or update software. You meet a standalone .rpm file when a project offers its program directly on its website rather than through your distribution's repositories, which is common for commercial or newer applications. On servers, where consistency matters, administrators rely on RPM packages to roll out the same software across many machines and to know precisely what is installed. Developers who write software for Red Hat based systems build their releases as RPMs so that users can install them the standard way, complete with dependency information and a signature. Most of the RPMs a system uses live in its repositories, the curated online collections your distribution maintains, and a standalone file is the exception you download by hand. In all of these, the value is the same, an RPM turns a piece of software into a tidy, trackable package that a Linux system can install, verify and later remove without leaving a mess.

❓ Frequently Asked Questions

Installing a downloaded RPM package.rpm downloaded file Graphical route Double-click the file Opens in GNOME Software Click Install, enter password Terminal route sudo dnf install ./package.rpm fetches dependencies too Both routes add the program to your system

An RPM file is a software package for Red Hat based Linux systems such as Fedora, Red Hat Enterprise Linux and CentOS. It bundles a program's files together with metadata and a list of the other packages it needs, so the system can install, update and remove the software cleanly. The name comes from the RPM Package Manager, originally the Red Hat Package Manager, which handles these files. An RPM plays the same role on the Red Hat side that a .deb package plays on Debian and Ubuntu. You install one through a package manager rather than running it directly, which is an important difference from a Windows program.

There are two easy ways. On a desktop, double-click the downloaded RPM and your distribution's software application, such as GNOME Software, opens it with an Install button, then you enter your password. At the command line, the recommended approach is your high-level package manager, since it handles dependencies. On current Fedora and Red Hat systems that is dnf, used as sudo dnf install followed by the path to the file, and older systems use yum the same way. There is also the lower-level rpm command with the -i option, though it installs only the single file and does not fetch anything it depends on.

RPM and DEB are two Linux package formats that do the same job for different families of distributions. RPM is used by the Red Hat side, including Fedora, Red Hat Enterprise Linux, CentOS and Rocky Linux, while DEB is used by the Debian side, including Debian itself and Ubuntu. The idea behind them is nearly identical, but they are not interchangeable, so an RPM will not install on Ubuntu as is and a DEB will not install on Fedora. The practical takeaway is to download the package built for your distribution. A tool called Alien can convert between the two, but it is a workaround rather than a reliable everyday method.

No, and mixing them up is a common mistake for people moving from Windows to Linux. A Windows .exe is the runnable program itself, something you launch directly. An RPM is not a program you run, it is a package that the system installs, holding the software's files plus instructions for placing and tracking them. The nearer Windows comparison is an installer package like an .msi, which also hands its contents to a management system rather than running on its own. So while both an RPM and an EXE are ways to get software onto a machine, what happens when you use them is quite different.

They are layers of the same system rather than rivals. The rpm command is the low-level tool that installs, removes or queries a single package and does no more, which means it will not go looking for a missing dependency. dnf and yum are the high-level managers built on top, and they talk to online software repositories so they can resolve dependencies, download whatever is needed and keep packages updated. dnf, short for Dandified YUM, is the modern default on Fedora and Red Hat systems, while yum is the older version it replaced. For everyday installing you use dnf or yum, and reach for plain rpm only when you want to act on one specific file.

Not directly, because Ubuntu is a Debian based system that expects .deb packages rather than RPMs. The clean answer is to look for a .deb version of the software, or install it from Ubuntu's own repositories, which usually have it. If only an RPM exists, a tool called Alien can convert it into a .deb that Ubuntu can install, but the result is not guaranteed to work perfectly, since the package was built with Red Hat systems in mind. For anything important it is safer to find a native Debian package than to rely on a converted RPM.

The usual method turns the package into an older archive form and unpacks it into your current folder without touching the system. You run rpm2cpio on the file and pipe the result into the cpio command, and the program's files appear in a directory structure below where you are. It is worth doing this inside a fresh empty folder so the extracted files stay tidy. This even works on Linux systems that are not Red Hat based, since the rpm2cpio tool comes with the rpm tooling. If you would rather avoid the terminal, an archive manager such as Ark on KDE or the GNOME Archive Manager can open an RPM and let you browse or pull out files like any other archive.

Use your high-level package manager, which is the tidy way. On current systems that means sudo dnf remove followed by the package name, and on older ones sudo yum remove works the same way, both cleaning up anything that was installed only to support the program. The low-level alternative is the rpm command with the -e option and the package name. Note that you remove software by its package name rather than the original .rpm filename, and if you are unsure of the exact name you can list what is installed with rpm -qa and search that. The system will stop you removing something other packages still depend on, which keeps your setup from breaking.

Check its signature. Many packages are signed with a GPG key, and you can confirm a downloaded file has not been altered by running rpm with the --checksig option, or the shorter -K, on the file. For that check to pass, the matching public key needs to be known to your system, which you add with rpm --import pointing at the key file. When you install from your distribution's official repositories this happens for you, so signature checking mainly matters for a standalone .rpm you fetched from a project's own site. If a signature does not verify, treat the file with caution and confirm you downloaded it from a source you trust.

RPM is the traditional package format for Red Hat based systems and shares libraries with the rest of the system, which keeps packages compact but ties them to a distribution family. Flatpak, Snap and AppImage are newer universal formats that bundle an app with the pieces it needs so one package runs across many distributions, usually with sandboxing that limits what the app can reach. They trade a little extra size for that portability. The two approaches coexist rather than compete. RPM through dnf is the natural fit for system software and anything your distribution provides, while the universal formats are popular for desktop applications you want in the same shape on whatever Linux you use.

That message means the package needs other software that is not yet on your system, and the low-level rpm command will not go and get it for you. The fix is almost always to install through dnf instead, using sudo dnf install and the path to the file, because dnf reads your repositories and pulls in whatever is missing automatically. Forcing the install past the warning with a --nodeps option is possible but a bad idea, since the program may then fail to run properly without those pieces. So when you hit a failed dependencies error, switch to dnf or yum rather than trying to bypass the check.

The safest source is your distribution's own repositories, which your package manager already uses when you install with dnf, since everything there is built and signed for your system. For software that is not in the repositories, the next best place is the project's official website or its own package repository. A well-known community source for extra Fedora and Red Hat packages is EPEL, short for Extra Packages for Enterprise Linux. Wherever you get a standalone RPM, it is wise to check its signature before installing and to avoid random third-party sites, since a package installs software with system access and a tampered one could do harm.

Key Takeaways

An RPM file is a Linux software package used by Red Hat based distributions such as Fedora, Red Hat Enterprise Linux and CentOS, bundling a program with its metadata and dependency information.

You install one through a package manager, and the recommended way is dnf or yum, which fetch dependencies automatically, with the lower-level rpm command available for a single file.

An RPM is the Red Hat family's counterpart to a Debian .deb package, and unlike a Windows .exe it is installed by the system rather than run directly, closer in spirit to an .msi installer.