Here you can find links to software related to RPM such as frontends, packaging tools etc.

RPM Frontends / Depsolvers

  • YUM is an RPM frontend written in Python.
  • libzypp/zypper is an RPM frontend written in C/C++ (used by openSUSE, SLES and Ark Linux). It uses SAT solver for dependency solving.
  • DNF is an RPM frontend written in Python. It uses SAT solver for the hard work.
  • Urpmi is an RPM frontend written in Perl (used by Mageia and Mandriva)
  • APT-RPM is an RPM port of the Debian APT package management tool written in C++.
  • SmartPM is another frontend for RPM (also works with DEB, Slackware etc packaging formats) written mostly in Python
  • Poldek is another frontend for RPM, primarily used by the PLD distribution.

Packager tools

  • rpmlint is a tool for checking for common errors in RPM packaging.
  • rpmdevtools contains scripts and (X)Emacs support files to aid in RPM packaging.
  • cpan2rpm generates RPM packages from Perl CPAN modules.
  • cpanspec is another tool for creating RPM packages from Perl CPAN modules.
  • rpmrebuild is a tool that can generate a spec from an already installed RPM (useful when you don’t have access to real source rpm, eg with packages of proprietary software)
  • Specfile Editor is a spec file editor plugin for Eclipse.

Build tools

  • Open Build Service is a generic build- and distribution system.
  • Copr is a lightweight build- and distribution system.
  • Iurt is a package build system.
  • Koji is a package build and tracking system.
  • Mock is a ‘simple’ chroot build environment manager for building RPMs.
  • Mach is a more generic chroot environment manager that can also be used for building RPMs.
  • Mezzanine is a set of tools which simplify the management of software packages and collections of software packages.

Other tools

  • DeltaRPM contais tools for creating and applying change deltas of RPM packages
  • rpm2html generates web pages that describe a set of RPM packages.
  • rpmreaper is a ncurses-based application for finding unnecessary packages in the system.
  • libsolv is library for package dependency resolution.

Language bindings

  • perl-RPM2 provides an object-oriented interface to RPM facilities for Perl.
  • perl-RPM4 provides an object-oriented interface to RPM facilities for Perl.
  • RPM-Specfile is a Perl extension for creating RPM specfiles.
  • python-specfile is a Python library for parsing and manipulating RPM spec files. Main focus is on modifying existing spec files, any change should result in a minimal diff.
  • Python bindings for RPM are distributed as part of RPM releases.
  • JRPM is a java library to manipule and create RPM archives.
  • Redline is a pure Java library for manipulating RPM Package Manager packages.
  • php-rpminfo allows to retrieve information from RPM files or from the installed RPMs database from PHP. See docs for details.
  • perl-URPM is a Perl extension for manipulating rpm headers and packages.
  • libsolv has bindings for Perl, Python and Ruby.
  • librpm.rs has Rust bindings for librpm.