A package manager (such as RPM) is in charge of maintaining the integrity of an operating system by dividing its installed software into packages.

Some sample package managers:

  • Slackware at first GNU tar and gzip as a primitive package manager; its packages *.tar.gz are often called tarballs. It has since added some basic checking (please fill me in on this).
  • Microsoft Windows uses InstallShield, WISE, etc., which provide very little if any dependency management; each package must include a copy of whatever libraries it uses (such as MFC, etc.). This leads to DLL hell unless you use a Windows implementation such as Windows 2000 or Windows XP that lets applications use their own versions of DLLs without overwriting system DLLs.
  • Red Hat uses rpm which is a recursive name for "rpm package manager". (It's not Red Hat Package Manager; otherwise, it'd be RHPM.) rpm tracks dependencies (packages and/or package versions on which a particular package relies) in a centralized database so you know what other stuff you need installed to run a package. Debian GNU/Linux's dpkg is similar.
Some package managers have learned to fetch packages automatically from the Internet.
  • Debian's APT (which replaced the older dpkg-ftp) is a frontend to other package managers, especially dpkg. APT can download packages from repositories on the Internet and upgrade your whole distribution in one fell swoop. Interested? (Read More...)
  • Windows uses Windows Update, which appears to do something similar except it restricts you to Microsoft's package repositories and provides a web interface that cannot readily be automated.

Return to PM