What is Package Manager in Linux? [Types, Functions & Usage]

Package managers are the crucial components in Linux Distributions. It is essential as it handles the installation, removal, and upgradable process, resolves dependencies, and controls the version from the repositories. So it is very important to understand what is package manager in Linux to manage software. In this article, I tried to explain about the package manager in detail.

What Are Package Managers?

To download, install, remove, and upgrade packages one can use a software application that makes this management easier called package manager. Package managers mainly simplify the management process and help to handle the system efficiently. It lists all the dependencies and metadata that help the user to prevent the missing of information.

Reasons to Use Package Managers

The package manager makes the management of the software easier. If you don’t have a package manager then you have to do all the functions manually which is done by the package manager effortlessly. Below I have shown if you don’t have a package manager how you have to install a package:

  • Firstly when one wants to install a package he has to find all the related files and packages of it.
  • Make sure that all the packages are secure and do not have vulnerability issues.
  • Download all the packages that you want and sort them to the correct location.
  • Install the package by compiling the code of the application.
  • All the dependencies and related files are downloaded and installed in that process.
  • After completing the task, one has to remove all the files of the packages again.

From the above discussion, you can understand the reason to use a package manager.

Types of Package Managers in Linux

There are two types of package managers in Linux and they are:

  1. Low-level Package Managers
  2. High-level Package Managers

Different Kinds of Package Managers

There are different package managers for different Linux distributions. Here I have shown some of the popular package managers:

1. Advanced Packaging Tool (APT)

The APT package manager is used in the Debian-based Linux distribution and its derivatives. Use as the front-end of back-end dpkg package manager. It is the high-level package manager. APT package manager handles the .deb format packages. Install, remove, upgrade packages, and resolve dependencies automatically. It uses the apt, apt-get command line.

2. Yellow-Dog Updater Modified (YUM)

YUM package manager is used in the RedHat-based Linux distribution and its derivatives. It is the default common package manager in RedHat and handles the .rpm formatted packages. It is the high-level package manager that is used on the front end of the RPM package manager. Yum checks the dependencies with header files and package metadata and resolves dependencies while installing or updating packages.

3. Dandified YUM (DNF)

DNF package manager is the successor and the top of the yum package manager. It is also used in Red Hat-based distribution. Dnf also uses the .rpm file extension. Dnf provides faster performance, Parallel downloading, a rich command line interface, and enhanced dependency resolution by using a dependency solver.

4. Pacman

Pacman is a utility that is used in Arch Linux distribution for managing software packages. Using simple compressed files, it maintains a text-based database. Pacman does not work as the front end of any package manager. The file extension for the Pacman package manager is  .pkg.tar.xz. Pacman is lightweight, fast, and high-speed packaging, it provides two types of repositories and automatically upgrades the package.

Functions of Package Managers in Linux

The critical functions that a package manager has to do are shown below:

  • Download, install, remove, and upgrade all the packages and make the system more efficient.
  • Ensure security and authenticity by providing digital signature packages.
  • Make the system user-friendly for the end user by combining the packages using functions.
  • Upgrade the configuration file which is very difficult to maintain.
  • Update the system with a single command.
  • Provide upgrade suppression by upgrading a single package or excluding a single package from upgrading.
  • Handle the libraries and local files effortlessly.

Package Manager Architecture

Here I have created a diagram of the architecture based on the Distribution system.

Architecture of the package manager

The image shows that the software repository is the collection of packages and metadata files. Here I have shown a repository but there can be multiple repositories. When any transaction takes place the package manager creates a local cache file of metadata which includes all the package name, version, and package information. So when you want to upgrade the system, it has all the info from the metadata. Dependencies are the collection of packages on which a package depends. So as all the packages and dependencies are in the repository, the package manager can easily handle and resolve dependencies automatically while interacting with repositories.

For the Debian, RedHat, and OpenSUSE distributions, there are high-level package managers like apt, yum, and Zypper that act as the front-end for the low-level package managers like dpkg and rpm.

Importance of the Package Manager

The Package manager makes installation, upgradation, and software maintenance more efficient and easier. For managing software effectively, package management systems come with several significant advantages. The key advantages are shown below:

1. Efficient Software Setup

By handling all the dependencies, the package management installs all the required packages and sets up the software. You do not have to search and install any dependencies manually.

2. Management of Dependencies

By ensuring compatibility with each other of the software versions and managing dependencies, the package management system reduces potential errors and conflicts.

3. Centralized Repository

User can install, download thousand of libraries and easily as the package management system provide a central repository of software packages.

4. Version Management

The package manager will help you install the desired version. It allows you to choose a specific version of the software and also automatically update the software.

5. Installation Removal and Cleaning

Package managers provide commands that you can use to remove a package and clean up all the unnecessary packages. It removes all the files with the remove command, reduces the possibility of leftover files, and makes the process simple.

6. Confidence and Security

Most of the time, package managers provide signed packages, ensuring the software’s legitimacy and lowering the possibility of downloading and installing dangerous malware.

7. Automatic Conflict Resolution

When multiple packages need to be installed and multiple versions need the same dependency it is solved by the package manager to maintain the particular function.

8. Easy Update and Upgrade

The update and upgradation are essential for the installed software which can be done with a single simple command and made easier through the package management system.

9. Package Searching

In the package management system, many functions are made easier. Such a function is search. By using this function you can effortlessly search a specific library or software which saves time.

10. Distribution Management

Package manager smooths the distribution of software for the software developers and also makes it accessible for users over different operation systems.

Comparing Package Managers and Installers in Linux

Here I have shown the comparison between the package manager and Installers.

Parameter Package Manager Installer
Definition A software tool that maintains the software efficiently. Tool to install specific software.
Source of packages From the repository which is maintained by the distributor, and community. From the third-party repository or from the developer’s website.
Function Install, update, remove packages, and maintain the dependencies. Install specific software with a Graphical user interface.
Package format In a distribution, different package managers use different formatted packages. Number of formats increases with the number of apps.
Compatibility Users can use a package format till the package manager uses it. If the package manager does not use that package format then it cannot be used. If an installer uses a package format once then it will be compatible with that format forever.
Maintenance Upgrade all the packages of the system. Only the packed product.

How to Use a Package Manager in Linux

One can use the package manager in the terminal section. If the user wants to install packages then he has to open the terminal and use the command line. As some users prefer a Graphical User Interface, they can use the graphics-based synaptic package manager. Some of the package managers provide a user-friendly interface that also helps the user to understand the command line. There are two popular package managers One is APT and another is YUM which are used in different distros.

Below I will show you some basic commands to install, remove, and search for packages with two different package managers.

Manage Packages With APT on Debian-based Distribution

Managing packages means installing, removing, searching, and updating a package. Below I will illustrate the management of packages with the apt package manager in Debian distribution.

Install a Package in Ubuntu

To install a single package you can copy the following command on Ubuntu:

sudo apt install gedit
EXPLANATION
  • sudo: Permits administrative privileges.
  • apt: Provides a high-level command line interface for the package management system.
  • install: Command installs the specified package.
  • gedit: Package name which I want to install.

Install a package with apt package manager in linux

How to Reinstall a Package in Ubuntu

When you want to install the failed packages that have been not installed you can reinstall the package with the following command on Ubuntu:

sudo apt reinstall vlc
EXPLANATION
  • reinstall: Reinstall the failed or removed packages
  • vlc: The package that I want to reinstall.

Reinstall a package with apt package manager

Search for a Package in Ubuntu

When one needs to search for a package in the repository he can locate the package with the search command. You can copy the following command on Ubuntu to search for a package:

sudo apt search zfs
EXPLANATION
  • search: Locate a package in the repository.
  • zfs: The package that I searched for.

Search for a package with apt package manager in Linux

Remove a Package in Ubuntu

To remove a package you can copy the command:

sudo apt remove vlc
EXPLANATION
  • remove: Remove the desired package from the repository.
  • vlc: The package that I want to remove.

Remove a package with apt package manager

Update Packages in Ubuntu

With the apt tool when you use the update command it also shows how many packages can be upgraded. You can copy and run the following command on Ubuntu:

sudo apt update
EXPLANATION
  • update: Command to make packages up to date.

Update system with apt package manager

From the image you can see, that 123 packages can be upgraded. You can also see the upgradable package list.

Here is the command to see the list of the packages that you can upgrade. You can copy the command from here:

sudo apt list  --upgradable
EXPLANATION
  • list: Shows the list of the following command.
  • upgradable: Upgradable package.

Upgradable list with apt package manager

From the above image, you can see as I run the command it shows the list of the upgradable packages.

How to Clean Up the System in Ubuntu

To uninstall any dependency packages that are not required by any installed packages, in Ubuntu you can copy this command:

sudo apt autoremove
EXPLANATION
  • autoremove: Uninstall the unnecessary dependency packages from the system.

Remove unnecessary dependencies with apt package manager

Manage Packages With YUM on RedHat-based Distribution

On RedHat distribution, the user can use the yum package manager to install, remove, update, and search for a package. Below I will show some of the examples of how a package manager works:

Install a Package in RedHat

To install a single yum package you have to use the install option. Here I have used the vsftpd package You can use any package according to your liking. To practice, you can copy this command:

sudo yum install vsftpd
EXPLANATION
  • sudo: Permits administrative privileges.
  • yum: Package management system in Red Hat that provides a high-level front-end command interface.
  • install: Command install the following package.
  • vsftpd: The package that I want to install.

Install a package with yum package manager

How to Reinstall a Package in RedHat

Here I will reinstall Firefox, you can choose any package according to your liking.

To reinstall a package in Red Hat copy this command:

sudo yum reinstall firefox
EXPLANATION
  • reinstall: Reinstall the failed or removed packages.
  • firefox: The package that I want to reinstall.

Reinstall a package with yum package manager

Search for a Package in RedHat

When one needs to search for a package in the repository he can locate the package with the search command. You can copy the following command on Redhat to search for a package:

sudo yum search postgresql
EXPLANATION
  • search: Locate a package in the repository.
  • postgresql: The package that I searched for.

Search for a package with yum package manager

It displays all the names that match with the package name.

Remove a Package in RedHat

To uninstall a package you can use the remove option and copy the following command on RedHat:

sudo yum remove postgresql
EXPLANATION
  • remove: Remove the desired package from the repository.
  • postgresql: The package that I want to remove.

Remove package with yum package manager

Update Packages in RedHat

With yum you can update and upgrade all the packages with one command. So if you want to update all the packages within one command then you can copy the following command:

sudo yum update
EXPLANATION
  • update: Command to make packages up to date.

Update and upgrade package with yum package manager

To confirm the installation press Y and then ENTER.

How to Clean Up the System in RedHat

To uninstall any dependency packages that are not required by any installed packages, in Red Hat, you can copy this command:

sudo yum autoremove
EXPLANATION
  • autoremove: Uninstall the unnecessary dependencies.

Remove all unnecessary dependencies with yum package manager

Conclusion

In this article, I have shown the package manager’s function, importance, architecture, and examples in different distributions. I hope the beginners will be able to understand what a package manager is by reading this article.

People Also Ask

What is the difference between a package manager and a software package?
Package managers are the software tools that you can use to install, remove, and update packages and handle dependencies but a software package is a tool that installs a specific package with a package manager.
Why do we use package managers instead of installing packages manually?
If you want to install the vlc package then you need vlc-bin, vlc-plugin-base. So you have to download the vlc-bin, vlc-plugin-base first then you have to install the vlc package. Again you have to check on which package vlc-bin depends on. If you want to do all these tasks manually, then you can carry on. But to make this process easier you need a package manager.
What is the easiest package manager for Linux?
Mainly the package manager that is easier to use depends on the distribution and user’s preference. But there are some popular package managers for each distribution for Debian, the default package manager is apt, for Redhat, the package manager is Dnf, for Arch Linux, the default package manager is Pacman.

Related Articles


<< Go Back to Package Management in Linux | Learn Linux Basics

Rate this post
Afia Zahin Oishi

Assalamualaikum, I am Afia Zahin, completed my graduation in Biomedical Engineering from Bangladesh University of Engineering and Technology, currently working as a Linux Content Developer Executive at SOFTEKO. A high achieving professional with a strong work ethic and able to work in a team in order to consistently achieve my goal and build my skillset. Able to handle difficult problems with patience and swift decision-making. Read Full Bio

Leave a Comment