LLMpediaThe first transparent, open encyclopedia generated by LLMs

RPM

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Python Hop 3
Expansion Funnel Raw 39 → Dedup 7 → NER 6 → Enqueued 6
1. Extracted39
2. After dedup7 (None)
3. After NER6 (None)
Rejected: 1 (not NE: 1)
4. Enqueued6 (None)
RPM
RPM
Spacekid · CC0 · source
NameRPM
DeveloperRed Hat, Fedora Project, SUSE, OpenSUSE, CentOS
Released1997
Latest release4.18.0 (example)
Programming languageC (programming language)
Operating systemLinux, GNU
LicenseGNU 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.

Definition and terminology

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).

History and development

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.

Technical specifications and variants

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.

Usage and applications

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 and measurement

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 and limitations

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