RPM Package Manager (or RPM, originally called "Red Hat Package Manager") is a package management system primarily intended for Linux. RPM installs, updates, uninstalls, verifies and queries software. RPM is the baseline package format of the Linux Standard Base.

Originally developed by Red Hat for Red Hat Linux, RPM is now used by many Linux distributions. It has also been ported to some other operating systems.

Advantages of RPM have been noted as:

  • Popularity: lot of packages available, even though they often need recompilation to work in another distribution
  • Non-interactive installation: makes it easy to automate installation
  • Original source archive (e.g. .tar.gz, .tar.bz2) included: easy to verify
  • Cryptographic verification with GPG and md5
Disadvantages include:
  • Often has backwards incompatible changes in package format
  • Incomplete and outdated documentation
  • Steep learning curve for packaging

RPM has also been criticized for a lack of consistency in package names and content, which can make automatic dependency handling difficult. However, this is not a problem unique to the RPM format, but rather a problem in co-ordination amongst major distributions who use RPM in packaging such as Red Hat, SuSE and Mandrake Linux. When using packages that are from a particular distribution (say Red Hat [1]) or built for a particular distribution (for example Freshrpms [1] for Red Hat), then automatic dependency checking can work, using tools such as apt adapted from the Debian project (see below).

Every RPM package has a package label, which contains the following pieces of information:

  • the software name
  • the software version (the version taken from original "upstream" source of the software)
  • the package release (the number of times the package has been rebuilt using the same version of the software)
  • the architecture the package was built under (i386, i686, athlon, ppc, etc.)

and the RPM file would normally have the following format:


An example:


However, note that package label is contained within the file and does not necessarily need to match the name of the file.

RPM is often used by another tool for handling dependencies, such as the Yellow dog Updater Modified yum or (the RPM compatible version of) the Advanced Packaging Tool (apt).

Some other package managers are


  • Eric Foster-Johnson, 2003, Red Hat RPM Guide. ISBN: 0764549650. A complete, up to date (as of 2003) guide for building RPM packages.

External links