Penguin
Note: You are viewing an old revision of this page. View the current version.

One of the points of different between most Linux Distribution is the PackageManagementTool they use.

A PackageManagementTool is a program, or set of programs, that give the system administrator (whether that be an administrator of a large network of machines, or Joe Public at his single-user Linux desktop) rapid, easy control over which packages are installed.

Most PackageManagementTools revolve around binary distributions of packages. That is, they access a repository of pre-compiled packages and installs the package best suited to your system architecture. They can also offer source packages, so you can build the package locally, perhaps modifying it or changing its optimisations in the process. Other PackageManagementTools are source-based - they either don't provide binary packages, or try really hard to avoid it. These download the original sources for a package, apply any vendor-provided patches, then compile for the local machine. Takes longer, but some people swear it gives them much better performance.

Some features of a PackageManagementTool are:

  • Provide a repository of some form, of packages which the administrator can install on their machine(s).
  • Keep track of which packages are already installed.
  • Provide an easy method of uninstalling packages
  • Provide an easy method of upgrading packages

And so on.

There are several main 'flavours' of PackageManagementTool in use in various Linux distributions. These include:

  • rpm. Redhat Package Manager. Obviously, RedHat uses this, but Mandrake and a handful of others do as well.
  • dpkg. This is debians package manager. Knoppix, Progeny and other linux distributions are "debian-based"
  • Whatever Caldera used. I can't remember
  • ports. This is the source-based PackageManagementTool that BSD uses. Several Linux distributions use a similar idea - Gentoo uses a program called portage, and Sorcerer linux has a 'spell book' type approach to it.

As well as the tools provided by the PackageManagementTool itself, there can be so-called front-ends for even easier package management. For example, rpm is a very nice tool, however its biggest problem is that its hard to meet dependencies. That is, if you try to install xchat, a graphical IRC client, you will probably find that it needs GTK and or GNOME libraries. If you haven't already installed these, you must step through the dependancy tree, installing all the dependencies in turn... and all of the dependencies dependencies. And so on. This can take ages.

  • up2date is a front-end to rpm, provided by RedHat. You get to use it on one machine per user free, and can pay for the right to use it on more machines. Its probably worth it for most users, as it makes installing new software and keeping up with upgrades really easy.
  • apt is one of the best tools I have come across. Its a front-end for dpkg, although there is a version that works for rpm. It was the first front-end to nicely handle dependencies: eg, you can say 'apt-get install foo' and it will download and install foo, and any dependencies foo may have.

Its worth noting that the source-based distributions have good dependency management by default.

I personally have used Redhat (rpm), Debian (dpkg / apt), and Gentoo ('portage' -- emerge). Of the three, RedHat rates worst for me, becuase I never really used up2date and so started getting annoyed with dependency hell. Debian and Gentoo are about the same in terms of easy of installing a new application / upgrading packages, however Gentoo takes an age longer due to having to compile everything from source.