List of Linux package manager and their utility
A package manager or package management system is a collection of software tools that automate the process of installing, upgrading, configuring, and removing computer programs for a computer's operating system in a consistent manner. This type of package manager deals with packages, distributions of software and data in archive files. They work closely with software repositories, binary repository managers, and app stores.
Packages generally contain metadata, such as the software's name, description of its purpose, version number, vendor, checksum, and a list of dependencies necessary for the software to run properly. Upon installation, metadata is stored in a local package database. Package managers typically maintain a database of software dependencies and version information to prevent software mismatches and missing prerequisites. They are designed to eliminate the need for manual installs and updates. This can be particularly useful for operating systems which are based on Linux and other Unix-like systems. They are typically consisting hundreds of or even tens of thousands of distinct software packages.
A software package is an archive file containing a computer program as well as necessary metadata for its deployment. The computer program can be in the source code that has to be compiled and built first. Package metadata include package description, package version, and dependencies.
In the early days of Linux, programs were only distributed as source code, along with the required man pages, the necessary configuration files, and more. Nowadays, most Linux distributors use by default pre-built programs or sets of programs called packages, which are presented to users ready for installation on that distribution.
Let's see the list of Linux package manager -
This the package management system used by Linux Standard Base (LSB)-compliant distributions for the low-level handling of packages. Just like dpkg, it can query, install, verify, upgrade, and remove packages, and is more frequently used by Fedora-based distributions, such as RHEL and CentOS.
It is a low-level package manager for Debian-based systems. It can install, remove, provide information about and build *.deb packages but it can’t automatically download and install their corresponding dependencies.
It's a high-level package manager for Debian and derivatives and provides a simple way to retrieve and install packages, including dependency resolution, from multiple sources using the command line. Unlike dpkg, apt-get does not work directly with *.deb files, but with the package proper name.
It adds the functionality of automatic updates and packages management with dependency management to RPM-based systems. As a high-level tool, like apt-get or aptitude, yum works with repositories.
It's another high-level package manager for Debian-based systems, and can be used to perform management tasks (installing, upgrading, and removing packages, also handling dependency resolution automatically) in a fast and easy way. It provides the same functionality as apt-get and additional ones, such as offering access to several versions of a package.
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.
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.
Portage is the package manager for Gentoo, a no-frills operating system that has to be compiled from scratch when installing on any system. It is one of the most advanced package managers currently available, with new features and improvements being added continuously.
up2date, also known as the Red Hat Update Agent, is a tool used by older versions of Red Hat Enterprise Linux, CentOS, and Fedora Core that downloads and installs new software and upgrades the operating system. It functions as a front-end to the RPM Package Manager and adds advanced features such as automatic dependency resolution. The file /etc/sysconfig/rhn/sources specify where up2date will search for packages.
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.
Photograph by jivacore
urpmi is a package management tool for installing, removing, updating and querying software packages of local or remote (networked) media. It wraps around the RPM Package Manager (RPM) package manager so that the user will not suffer the often-encountered dependency hell. It works with official sources from Mandriva or unofficial sources such as those from the Penguin Liberation Front. It has a graphical front-end: Rpmdrake.
ZYpp is another dependency resolver for the RPM package management system and is the default package manager for OpenSUSE and SUSE Linux Enterprise. ZYpp utilizes .rpm binaries, just like YUM, but is a bit faster due to being written in C++, where YUM is written in Python. ZYpp is extremely easy to use, as it includes command shortcuts which can be used in place of the full command.
Nix is a purely functional package management system. This means that the act of building a package does not have side effects, such as destructively updating or deleting files that may be used by other packages. Nix makes it easy for systems to use multiple versions of the same package simultaneously, and ensure that updating or removing a package can't break other packages. Furthermore, these actions are atomic, and so the system can't be left in an unstable state. This all means that behavior with Nix is very predictable, which is particularly useful in testing configurations and deploying across multiple systems.
Synaptic is a GTK+-based graphical user interface for APT (Debian). This package management system used by Debian and its derivatives. Synaptic is usually used on systems based on deb packages but can also be used on systems based on RPM packages. It can be used to install, remove and upgrade software packages and to add repositories.
URPMI is Mageia command line tool for managing packages and repositories (media). It’s a powerful command-line tool which is used to automatically download and install new software packages, upgrade existing software packages, update the package list index, and to upgrade the entire Mageia system. urpmi handles dependencies automatically.
Flatpak is a software utility for software deployment, package management, and application virtualization for Linux desktop computers. It provides a sandbox environment in which users can run applications in isolation from the rest of the system. Applications using Flatpak need permission from the user to control hardware devices or access the user's files.
Entropy is the default package management system for Sabayon Linux, a Gentoo derivative. What makes Entropy interesting is Sabayon utilizes binary files through Entropy, and also source code through Gentoo package management system, Portage.
Snap packages are secure, isolated from each other and the host system using technologies such as AppArmor, It’s cross-platform, self-contained, allowing a developer to package the exact software their application needs. This sandboxed isolation also improves security and allows applications, and whole snap-based systems, to be rolled back should an issue occur. It has many advantages over the more traditional package formats such as .deb, .rpm, and others. Snaps use a special YAML formatted file named snapcraft.yaml. Snaps really are the future of Linux application packaging.
Packages in Slackware Linux are distributed as compressed tarballs, generally using gzip or lzma compression. These tarballs can be recognized by their suffixes, .tgz or .txz. This format includes a complete filesystem layout, as well as additional scripts to be run upon installation or removal of the software. Slackware packages do not offer dependency resolution information; this is generally viewed as allowing more flexibility and control. Packages can also be built using SlackBuilds, shell scripts that compile source or repackage binary distribution packages for easy installation and removal on Slackware.
Hope you find it useful in your preparation for your daily tasks. Feel free to leave your comments or questions below. Thank you!