What is RPM and what problem did it solve over distributing .tar.gz files?
RPM is Red Hat's package format and low-level tool; it replaced hand-managed .tar.gz software with tracked, verifiable packages that record every installed file and run install/uninstall scripts.
Before RPM (pre-1995), software arrived as plain tgz archives you unpacked yourself. That had no safety net:
- No dependency awareness — nothing told you a program needed another library.
- No installed-file tracking — once unpacked, the system had no record of what came from where, making clean removal or upgrade guesswork.
- Warnings and docs were scattered in separate files.
RPM turned a package into a managed unit:
- A complete file inventory — the system knows exactly which files a package owns.
- Dependency information recorded in the package.
- Cryptographic verification via GPG signatures, so you can trust a package's origin and integrity.
- Scriptlets that run automatically at install/remove time (e.g. create a user, reload a service).
- Clean upgrades and removal, because everything is tracked.
It was built in 1995 for Red Hat Linux 2.0 — originally Perl scripts, later rewritten in C — and is now used across RHEL, CentOS/Rocky/AlmaLinux, Fedora, openSUSE, and even AIX/Solaris.
Mental model: RPM is the format and bookkeeping. It does not fetch dependencies from the internet — that higher-level job belongs to DNF (covered separately).
Go deeper:
RPM Package Manager — Wikipedia — history, file tracking, dependency metadata, and GPG verification.