Background

Originally created for redhat, this package manager is the standard for many different linux distributions. It is used to distribute packages in binary or source forms. rpm installs and removes local packages, checkinstall builds binary packages from source, and various frontends are responsible for retrieving packages from central servers and resolving depedencies as well as searching and listing of packages.

Advantages

Advantages of the rpm system

  • Source install creates package: this allows for easy installs, upgrades and removal.
  • Central servers: Packages are located on central servers read in from a list the user can change, add, and remove from. (with RPM this is handled by a frontend like synaptic)
  • Resolves dependencies: This occurs automatically and will not allow a package with broken dependencies to be installed. (again, mostly handled by the frontend)
  • Holdback ability: you can mark packages to be held back (not upgraded) or even downgrade packages if you wish.

Disadvantages

Disadvantages of the rpm system

  • Bad Binary Compatibility: binary packages are typically incompatible across distributions, such as from fedora to mandriva or vice-versa.
  • Old/broken packages: Depending on the repository you are using, some packages can be broken or out of date.
  • Risky upgrading: Inconsistent package formats can result in Dependancy Hell sometimes resulting in a broken system after major upgrades.

Usage

Install and remove a local package:
rpm -i <package_name.rpm>
rpm -e <package_name>
Create your own package from source:
./configure
make
checkinstall

Frontends

Popular graphical frontends for rpm include:
YaST2:
YaST2 Screenshot
Synaptic (for GTK):
Synaptic Screenshot