These have an appropriate tag in the file header that distinguishes them from normal (B)RPMs, causing them to be extracted to /usr/src on installation.
RPM was originally written in 1997 by Erik Troan and Marc Ewing,[1] based on pms, rpp, and pm experiences.
pm was written by Rik Faith and Doug Hoffman in May 1995 for Red Hat Software, its design and implementations were influenced greatly by pms, a package management system by Faith and Kevin Martin in the fall of 1993 for the Bogus Linux Distribution.
pm preserves the "Pristine Sources + patches" paradigm of pms, while adding features and eliminating arbitrary limitations present in the implementation.
pm provides greatly enhanced database support for tracking and verifying installed packages.
[4][10][11] For a system administrator performing software installation and maintenance, the use of package management rather than manual building has advantages such as simplicity, consistency and the ability for these processes to be automated and non-interactive.
Several front-ends to RPM ease the process of obtaining and installing RPMs from repositories and help in resolving their dependencies.
Multiple databases are created for indexing purposes, replicating data to speed up queries.
[17] Whilst the RPM format is the same across different Linux distributions, the detailed conventions and guidelines may vary across them.
The format is binary and consists of four sections:[6] The "Recipe" for creating an RPM package is a spec file.
Jeff Johnson, the RPM maintainer since 1999, continued development efforts together with participants from several other distributions.