Generated by GPT-5-mini| RPM | |
|---|---|
![]() | |
| Name | RPM |
| Developer | Red Hat, Fedora Project, SUSE, OpenSUSE, CentOS |
| Released | 1997 |
| Latest release | 4.18.0 (example) |
| Programming language | C (programming language) |
| Operating system | Linux, GNU |
| License | GNU General Public License |
RPM
RPM is a package management system widely used on Linux distributions originating from Red Hat projects. It provides a standardized format for distributing, installing, upgrading, and querying binary and source packages across distributions such as Fedora, CentOS, and openSUSE. RPM integrates with tools and ecosystems including Yum (package manager), DNF (software) and Zypper to manage software lifecycles on hosts running Linux kernel-based systems.
RPM refers to a file format and a set of utilities for packaging software into archive files that contain binaries, metadata, and scripts. Core terminology includes package, spec file, payload, header, and signature; the spec file describes build instructions and metadata for a package, similar to a recipe used by GNU Compiler Collection-based build systems and build tools like Mock (software) and Koji (software). Packages are signed with cryptographic keys following standards implemented by GnuPG to authenticate authorship and integrity, and package repositories serve indexed collections analogous to Debian archives used by APT (software).
The format and tools were initially developed at Red Hat in the late 1990s to support distribution of binaries for the Red Hat Linux distribution and to replace ad hoc installation scripts. Subsequent development involved projects such as Fedora Project, RPM.org, and vendor teams at SUSE to add features like dependency resolution and scriptlets. Major milestones include integration with repository metadata formats used by Yum (package manager), a move toward modularity in Fedora and the introduction of new tooling such as DNF (software) to handle transaction performance and plugin architectures. Community and enterprise contributions from organizations like Canonical (comparative influence), Red Hat, and SUSE shaped cross-distribution standards and backward compatibility.
An RPM package file encapsulates a binary payload (commonly cpio archive compressed with gzip, bzip2, xz, or zstd), a header containing tagged metadata (name, version, release, architecture), and optional PGP signatures. Variants and related formats include source RPMs used for rebuilds and SRPM-based workflows in Koji (software), and repository metadata formats consumed by clients like Yum (package manager) and DNF (software). Architectures supported encompass x86-64, ARM, PowerPC, and others recognized by distributions such as openSUSE and CentOS. The spec syntax supports macros, build requirements, and scriptlets executed at install/erase/upgrade time, interoperating with system initialization frameworks such as systemd and post-install tools like chkconfig in historical contexts.
Administrators and packagers use RPM tooling to create, distribute, and maintain software on servers, desktops, and embedded devices running distributions like Fedora, Red Hat Enterprise Linux, CentOS, and openSUSE. Continuous integration systems such as Jenkins (software), GitLab CI, and Travis CI can produce SRPMs and RPMs for deployment pipelines targeting cloud platforms like Amazon Web Services and container platforms like Kubernetes. Package repositories are hosted by projects and vendors including Fedora Project, Open Build Service, and enterprise teams at Red Hat, enabling automated dependency resolution with clients like DNF (software) and Yum (package manager).
Performance considerations for package management operations include install/upgrade transaction time, metadata synchronization speed, and repository replication throughput. Tools measure operations in terms of transaction latency, checksum verification time using algorithms such as SHA-256 as implemented in OpenSSL, and CPU/memory usage during dependency resolution routines influenced by resolver libraries. Benchmarks often compare client implementations such as DNF (software) versus legacy Yum (package manager) across distributions like Fedora and CentOS to quantify improvements in parallel downloads, delta RPM application, and metadata caching driven by services like Pulp (software).
Criticisms have focused on historical dependency handling robustness compared with alternative ecosystems like Debian/APT (software), complexity of spec file syntax for new packagers, and challenges in cross-distribution binary compatibility exemplified by fragmentation among Red Hat Enterprise Linux, Fedora, and SUSE derivatives. Other limitations concern repository metadata consistency at large scale, signature and key management complexities tied to GnuPG workflows, and the potential security surface of scriptlets executing with elevated privileges during transactions; these issues have motivated tooling enhancements and governance discussions within communities such as Fedora Project and vendor teams at Red Hat.
Category:Package management