We’ll compare different Linux Package Managers. Between all Linux distributions, one of the things they share is the need to be able to install new software packages onto the system. Depending on the distribution, various package managers are available, allowing the user to install, manage, and remove packages easily and quickly. Package managers are very good at streamlining installs, with common installation locations and configurations. In this article, we will discuss the different available package managers, what distributions they can be used on, and what makes each unique. We will cover Debian-Based Package Managers, RedHat Enterprise Linux (RHEL)-Based Package Managers, and other custom designed package managers.
Debian-Based Package Managers
dpkg package manager
Ubuntu and Debian are considered as one of the most widely used consumer Linux-based operating systems on the market today. Their package managers are shared, with the lowest-level package management system being ‘dpkg’, short for “Debian Package”. It is a barebones package management software, with tools for installing, removing, and building packages.
What dpkg lacks is more advanced features – functionality such as downloading packages from the internet, or installing dependencies automatically are not possible through dpkg. Being able to do this from the internet is very useful, since it allows users to add repositories for packages, which greatly increases the selection of software that can easily be installed on the system. It can also greatly streamline the software install process by being able to easily find and install the package with only one command.
APT package manager
This is where frontends such as apt and aptitude come into play. APT, short for Advanced Package Tool, is much more advanced in functionality when compared to dpkg. It too can install, remove, and build packages – however, its functionality goes much farther than that. APT can update your packages, install dependencies automatically, as well as download your packages from the internet automatically. It is one of the most common package managers installed on modern distributions, with it pre-installed on Ubuntu, Debian, and most other Debian-based operating systems.
Aptitude package manager
Aptitude is a lot like APT, offering most of the same functionality. But, it can offer a couple of extra features, such as safe upgrades, allowing users to upgrade their packages without removing their existing packages from the system. Package holding is also available, which prevents certain packages from being upgraded automatically.
Both of these package managers actually use dpkg for the basic operations, and only utilize their own software for the downloading and management of packages.
RedHat Enterprise Linux (RHEL)-Based Package Managers
RPM package manager
RedHat and CentOS are one of the most widely-used server operating systems found on servers today. The basic package management software found on these systems is RPM, short for Red Hat Package Manager. This package manager also performs basic operations such as installing and removing packages, and like dpkg, is also unable to manage packages or install them directly from the internet.
YUM package manager
Like the Debian-based operating systems, RHEL operating systems also have their own software for package management. YUM, short for Yellow Dog Updater, is the most popular choice as an RPM frontend. It unlocks a lot more functionality for RPM files through repositories, keeping track of what is installed on the system, streamlined updating, and more. It is the RHEL-based equivalent of the APT package manager.
DNF package manager
DNF, short for Dandified Packaging Tool, is a more modernized and advanced version of the YUM manager – incorporating the features of YUM, while improving performance and resource usage. For now, only Fedora has utilized this next-generation version of YUM, but hopefully we will see it spread to more operating systems in the future.
There are several other package management tools available for RPM-based systems, such as up2date, urpmi, and ZYpp – however, these aren’t as widely used as YUM or DNF.
Other Package Managers
Sometimes, developers will create special package managers designed for their Linux distributions – they typically are designed around the operating system, and aren’t found on mainstream Linux distributions.
Pacman package manager
Pacman is the package manager found on Arch Linux. Pacman is the only package management tool found on Arch, making it not a frontend. Arch Linux is a rolling release operating system, with updates added every day. There are only a few commands with pacman, intended for searching, installing, and removing packages. This package manager can connect to the internet and acquire its packages from there, making it more user-friendly. However, pacman is intended for installing software from the Arch repository, rendering it unable to install from third-party repositories.
ABS package builder
ABS, short for Arch Build System, is a system of tools intended for creating installable software packages for Arch Linux out of source code. This consists of several tools functioning together to create packages – these tools are all independent programs, such as makepkg, pacman, asp, and so on. The package creation/installation method using ABS differs from a conventional Linux distribution. Instead of installing pre-compiled packages, you need the PKGBUILD file to be created from an Svn or Git branch by using the asp package. From there, you use the makepkg command, which uses the PKGBUILD file to download and compile the source code for your system. This makes ABS a slightly less intuitive method of installing packages on Arch Linux. It has several other uses as well, such as customizing existing packages, or building and installing a custom kernel.
Portage package manager
Portage is the package manager for Gentoo, a no-frills operating system that has to be compiled from scratch when installed on any system. It is one of the most advanced package managers currently available, with new features and improvements being added continuously.
Even though there’s a lot of variety when using package management software, a lot of them are designed to complete the same tasks. Therefore, it’s best to just test out and see which package management program will work best for your needs.
PS. If you liked this post on comparing different Linux package managers, please share it with your friends on the social networks using the buttons on the left, or simply leave a reply below. Thanks.
Update (April 09, 2018): Corrected some inaccuracies regarding the ABS package builder toolset.