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

LINUX
FUNDAMENTALS
A Complete Guide for Beginners Enroll Course Now

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?

A package manager is a software application to download, install, remove, and upgrade software packages. It can be a command line tool or a tool with a graphical interface. 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.

How Does the Package Manager Work?

Here I have created a diagram of the package manager architecture based on the Distribution system so that you can understand how the package manager works:

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, the package manager first interacts with the metadata since it has all the information. Then it upgrades the system by updating the local cache of metadata from the repository. Similarly, in removing a package, the package manager can remove it or alert your system to be cleaned. In addition, 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: Users can install, download thousands of libraries and easily as the package management system provides 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 simplifies the process.

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: The package manager smooths the distribution of software for the software developers and also makes it accessible for users over different operation systems.

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.

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

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.

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 does the package manager do in Linux?

A Linux package manager manages the software packages in Linux. It’s a software tool that automates software installation, removal, and updates which saves time and effort compared to manually installing software. It also handles package dependencies and ensures smooth installation by fetching required files from the repositories.

What is a package in Linux?

In Linux, a package is an archive file that contains software applications, libraries, and related files essential for software installation and management on the system. Packages offer a standardized approach to manage software.

How to upgrade the system package using the package manager?

To upgrade the system packages, you can use command-based tools provided by the package manager in the terminal depending on the specific Linux distribution you are currently using. For instance, in a Debian-based distro such as Ubuntu, use the command sudo apt upgrade, provided by the APT package manager to upgrade your system software packages.

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.

Most Linux distributions make use of what package manager?

It depends on what Linux distribution you are currently using. For example, most Debian-based Linux distros such as Ubuntu use APT (Advanced Package Tool) package manager for software installation, updates, and removal. In addition, the Red Hat-based distros like RHEL, and Fedora use Yum and DNF package managers as popular package managers while Pacman is used in Arch Linux.


Related Articles


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

5/5 - (2 votes)
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