Package management system
|
A package management system is a collection of tools to automate the process of installing, upgrading, configuring, and removing software packages from a computer. The term is most commonly used with regards to Unix-like systems, particularly Linux, as these systems rely far more heavily on it, with thousands of discrete packages on a typical installation being common.
In such a system, software is distributed in packages, usually encapsulated into a single file. Packages often include other important information, such as the full name, version, and vendor of the software, checksum information, and a list of other packages, known as dependencies, that are required for the software to run properly.
Package management systems are charged with the task of organising all of the packages installed on a system and maintaining their usability. These systems meet these goals using various combinations of the following techniques:
- Verification of file checksums to help prevent differences between the local and official versions of a package;
- Simple installation, upgrade, and removal facilities;
- Dependency tracking to deliver working software from a package;
- Update checking to provide the latest version of software, which often includes bug fixes and security updates;
- Grouping of packages by function to help eliminate user confusion when installing or maintaining them.
Common packaging systems
The following are some examples of package management systems implemented by Unix-like operating systems:
- RPM, the RPM Package Manager. Invented by Red Hat, but now used by several other Linux distributions. RPM is the Linux Standard Base packaging format.
There are many higher level tools that use the RPM packaging format, simplifying the process of finding, downloading and installing packages and their dependencies, including- YUM, used on Fedora Core.
- up2date, used on Red Hat Enterprise Linux. Although designed to talk to Red Hat Network, up2date can also source packages from yum and apt for RPM repositories, as well as local and directories.
- YaST* , as used on SuSE Linux distributions.
- urpmi as used by Mandrakelinux
- APT for RPM.
- dpkg, used originally by Debian GNU/Linux and now by other systems. The .deb format used by dpkg was the first to have a widely known dependency resolution tool, called APT.
- Portage/emerge, used by Gentoo Linux and inspired by the BSD ports system.
- The FreeBSD Ports Collection, also known as ports.
- The NetBSD Packages Collection, also known as pkgsrc.
- fink, used in combination with Mac OS X, which derives partially from dpkg/apt and partially from ports
- The simple tgz package system used by Slackware Linux.
- Software Distributor for HP-UX.
- Windows Installer. This debuted in Windows 98, but was not nearly as robust and clean as the newer version that was introduced with Windows 2000 and later inherited by Windows XP. Prior to its introduction, various other, incompatible systems existed to facilitate package management on Windows computers. These systems tended to be very messy, leaving registry entries and files behind after software was removed.