Package Management in Linux

LINUX
FUNDAMENTALS
A Complete Guide for Beginners Enroll Course Now

Being familiar with package management is very important, especially when you are using Linux. Because, package management is crucial for installing, maintaining, updating, and even removing software on the system. Modern package management systems offer dependency resolution methods to check whether the required packages are installed. In essence, package management is the means to add or remove applications, services, libraries, and packages to and from the Linux system. This tutorial will give you the most simplified overview of Package Management in Linux. Let’s dive into the details!

What is 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. Thus making it convenient for users to add or remove applications. However, the Linux package has various kind of formats. Among them, some mostly used are:

  1. deb: This package format is utilized by Ubuntu, Debian, Linux Mint, and various other derivatives in the Debian-based segment. The .deb files include all relevant files with metadata in a .ar archive format. The metadata contains all the relevant software details involving version, description, dependencies, licenses, etc.
  2. rpm: This format was initially known as Red Hat Package Manager, and it is utilized by Red Hat, Fedora, SUSE, and various other distributions. It also contains configuration files, metadata, and other required documents to create the software.
  3. tar.xz: The Arch Linux uses this package format, and it is just compressed tarball. In a word, tar.xz files are compiled ready-to-use binary files of a software package.

Introduction to Package Managers in Linux

A package manager is a software component available in every Linux distribution that looks after the task of maintaining software packages. Actually, the package manager does the package management. However, the package management task typically includes installing, uninstalling, and updating packages. When installing, some package manager offers automatic dependency resolution. Also, package managers provide functionality to manage repositories such as adding and removing repositories.

How Do Package Managers Help Users?

Package managers play a crucial role in simplifying and enhancing the software management experience for users on Linux and other Unix-like operating systems. Here are several ways in which package managers help users:

  • Easy Software Installation: By using package managers, users can install applications, libraries, and system components with just a few commands. It reduced the labor of downloading and compiling source code manually.
  • Centralized Software Repository: Package managers use centralized repositories that store a vast collection of pre-built software packages. This ensures that users have access to a wide range of software options from one location.
  • Dependency Resolution: Some package managers automatically handle dependencies, ensuring all required libraries and components are installed along with the requested software.
  • Version Management: Package managers keep track of software versions, making it easy to update packages when new versions are released.
  • System Security: Official repositories are maintained by trusted distribution maintainers, minimizing the risk of downloading and installing malicious software.
  • Package Information: Users can access detailed information about packages, including descriptions, maintainers, dependencies, and installed size, using commands provided by a package manager.
  • Consistency and Reliability: Package managers ensure that software installations follow standard procedures and integrate smoothly with the rest of the system. This consistency improves the overall stability and reliability of the system.
  • Package Removal: Users also use package managers to cleanly remove installed software, including associated configuration files, without leaving unnecessary clutter behind.
  • Bulk Operations: Bulk operations like upgrading all installed packages, removing all unused packages, or searching for specific software across all repositories are possible to do easily with the help of package managers.
  • Version Rollback: Some package managers support version rollback, enabling users to revert to a previous software version if issues arise after an update.

Popular Package Managers in Linux

As you have already learned, a package manager reduces the complexity for the user by automating the process of obtaining, installing, upgrading, and removing packages and their dependencies. Some popular package managers are listed below:

  1. apt, apt-get, and dpkg: Used in Debian-based distributions like Ubuntu and Debian.
  2. DNFand YUM: Used in Red Hat-based distributions like Fedora, CentOS, and RHEL.
  3. Zypper: Used in openSUSE. Just like DNF and YUM, packages are stored in the .rpm file format although Zypper interfaces with the ZYpp (libzypp) library instead of RPM. Some users report that Zypper is faster than other package managers.
  4. Pacman: Arch Linux and similar distributions such as Manjaro desktop distro uses the pacman package manager.
  5. Portage: It is the package manager for Gentoo. Portage stands apart from other solutions with its unique approach.

You can read our Comparative Analysis of Packages to distinguish among these package managers in Linux and best pick one for your needs.

Package manager fetching and installing packages with maintaining dependencies according to user command resembles total structure of Linux package management.

Repository in Linux

In Linux, software repositories are centralized storage locations that hold a collection of software packages for a specific Linux distribution. These are maintained and managed by the Linux distribution itself via the package manager and other third-party communities. Usually, each Linux distribution typically has its own set of official repositories. However, the purpose of these repositories is to provide a convenient and secure way for users to access and install software applications on their systems.

Repository Configuration Using Package Managers in Linux

Repositories are the storehouse of packages from where you can install packages via your package manager. There are many package managers available in different Linux distributions. But from the user experience, some of them are convenient and easy to use, especially for beginners. So, I’ll give you an introduction to the most frequently used package management task with the popular package managers available.

List Repositories in Linux

Usually, each Linux distribution typically has its own set of official repositories. Users use the package manager to access the repositories and handle the software installation process automatically instead of manually searching and downloading from various sources. While managing packages, you may need to list the available repositories in your system. Use the following commands according to your system distribution to list repositories:

Distribution Package Manager Command
Ubuntu APT sudo grep -rhE ^deb /etc/apt/sources.list
RHEL, CentOS, Fedora YUM sudo yum repolist
ArchLinux Pacman pacman-conf –repo-list

However, the purpose of these repositories is to provide a convenient and secure way for users to access and install software applications on their systems.

Package Installation in Linux

You may need to install different types of packages while working in Linux. For example, you need new software such as a browser or a music player to do your daily tasks. In Linux, the software is found in the form of a  package. So, you will face package installation tasks very frequently. That’s why you should know how to install packages in detail. For now, use the following command syntax to install a package:

Distribution Package Manager Command
Ubuntu APT sudo apt install <package-name>
RHEL, CentOS, Fedora YUM sudo yum install <package-name>
ArchLinux Pacman sudo pacman -S <package-name>

Note: Replace <package-name> with the original package name that you want to install.

Update Packages in Linux

User requirements for automation are increasing day by day. To cope with the needs of the user, packages are always updated. However, maybe you installed a software package many days ago and later Linux released an updated version of the package with more usability. So, you may need to check for updates and update your installed package at regular intervals. To check the update use the following commands:

Distribution Package Manager Command
Ubuntu APT apt list –upgradable
RHEL, CentOS, Fedora YUM yum list updates
ArchLinux Pacman pacman -Qu

If you want to install the updated version of all the upgradable packages, use the below syntax:

Distribution Package Manager Command
Ubuntu APT sudo apt upgrade
RHEL, CentOS, Fedora YUM sudo yum upgrade -y
ArchLinux Pacman sudo pacman -Syu

Uninstall Packages in Linux

You may not be using an installed package because you don’t need it anymore. Besides, sometimes you may need to install a package for doing a one-time task or for solving a specific problem. In this case, you can uninstall the package to free your system memory. You can uninstall only the package you don’t need or you can also uninstall a package with its all dependencies that are unused by any other package. Commands for uninstalling packages:

Distribution Package Manager Remove Only the Package
Ubuntu APT sudo apt remove <package-name>
RHEL, CentOS, Fedora YUM sudo yum remove <package-name>
ArchLinux Pacman sudo pacman -R <package-name>

These commands will help you to uninstall a package with all its dependencies:

Distribution Package Manager Remove Package With Dependencies
Ubuntu APT sudo apt autoremove <package-name>
RHEL, CentOS, Fedora YUM sudo yum erase <package-name>
ArchLinux Pacman sudo pacman -Rs <package-name

Note: Replace <package-name> with the original package name that you want to uninstall.

What is Package Dependency?

You may need to install some software to perform your daily tasks easily. However, installation of your desired software package may depend on some other packages called dependencies. When installing, upgrading, or removing any software, its dependencies may also need to be installed, upgraded, and optionally removed. In Linux, each package contains metadata detailing the dependencies. Efficiently handling those dependencies is also a very important role in Linux package management.

Comparative Analysis of Package Managers

There is more than one package manager available for almost every Linux distribution. That’s why, you may fall into confusion to choose which package manager is suitable for you. In the above commands, I’ve shown you the easiest syntax from beginner-friendly package managers. But there are some other package managers available also. Let me show you a brief comparison of package managers from different distributions.

A. Debian-Based Distributions

apt and dpkg are both package management tools used in Debian-based Linux distributions like Ubuntu, Kali Linux, Linux Mint, etc While they serve complementary roles, they have distinct functions and purposes.

Package Manager Pros Cons
apt
  • Provides a user-friendly interface to interact with dpkg and manage software packages on the system.
  • Consists of more advanced features like caching downloaded packages and automatic package retrieval from multiple sources.
  • Can handle dependencies automatically.
  • Unlike some package managers, apt does not have support for package version rollback.
  • apt does not inherently support parallel downloading of packages during updates, potentially slowing down the update process for users
dpkg
  • dpkg is responsible for installing, removing, and managing individual .deb packages on the system.
  • It directly handles the package installation process, including extracting files, creating directories, and registering installed packages in the system’s database.
  • dpkg does not fetch packages from remote repositories.
  • Can’t handle dependencies automatically.

Typically, users of Ubuntu interact with apt for most package management tasks, while dpkg is used in specific scenarios where direct package management control is necessary or desired.

B. RedHat-Based Distributions

rpm and yum are both tools used for package management in Red Hat-based Linux distributions like RHEL, CentOS, Fedora, etc but they serve different purposes and have different levels of functionality.

Package Manager Pros Cons
yum
  • It automates many tasks that rpm does not handle, such as dependency resolution and repository management.
  • Automatic updates package with a single command.
  • YUM utility requires only the package name making it easy to install and update.
  • Allows package rollback.
  • Doesn’t support installing multiple versions of a package.
  • Only supports package available in the repository.
rpm
  • It directly handles the package installation process from the low level.
  • RPM can install multiple versions of the same package.
  • RPM needs a local .rpm file to install and update.
  • Does not support package rollback.

If you are a beginner, I recommend you to use YUM as it automatically resolves dependencies making the installation process straightforward. In case you want software out of repositories or want to test multiple versions of software simultaneously, you have to use RPM.

In the ArchLinux distribution, pacman is the best choice for both beginner and advanced users.

Conclusion

Learning package management is probably the most important key to using Linux systems efficiently. However, you should do package management with caution, especially when adding third-party repositories, as they may contain software not officially tested or supported by Ubuntu. Only add repositories from trusted sources to ensure the stability and security of your system. You should maintain regular updates from the added repositories to keep the software up-to-date.

People Also Ask

What is package management in Linux?

Package management is the task of managing software packages such as installing, updating, removing, and configuring repositories. Different package managers based on the Linux distribution are used to handle package management.

What are YUM and RPM in Linux?

YUM and RPM are two package managers for RedHat-based Linux distributions. RPM is a low-level package manager that is used to install .rpm files. On the other hand, YUM is a high-level package management tool that maintains a repository to fetch packages when the user wants to install or update a package. YUM supports automatic dependency resolution.

Does Linux have a package manager?

Yes, every distribution of Linux has more than one or at least one package manager integrated with the system. For example, Debian based system such as Ubuntu, and Kali Linux has apt and dpkg, RedHat-based systems such as RHEL, Fedora, CentOS, etc. have yum, rpm, dnf, ArchLinux has pacman, OpenSUSE has zypper, and so on.

How to install packages in Linux?

Depending on the Linux distribution you are using, you may require different approaches to install packages. To install a package on Debian/Ubuntu-based Linux distros, use the command sudo apt install <package_name>, on Red Hat/Fedora-based systems, sudo yum install <package_name>, on Arch Linux, sudo pacman -S <package_name>, and, on SUSE/openSUSE, sudo zypper install <package_name>.

What is the name of the Linux package manager?

Linux has different package managers for different distributions. For example, Debian-based distributions such as Ubuntu, Kali Linux, and Linux Mint have apt and dpkg package managers. RedHat-based distribution such as RHEL, Fedora, and CentOS has yum and rpm. ArchLinux uses pacman, OpenSUSE uses zypper, Gentoo uses portage, etc.


Related Articles


<< Go Back to Learn Linux Basics

2.3/5 - (3 votes)
Ashikur Rahman

Hello, I’m Ashikur Rahman, currently working as a Linux Content Developer Executive at SOFTEKO. I have completed my graduation in Computer Science and Engineering from Khulna University of Engineering & Technology (KUET). Also, I’m pursuing my master’s in the same department at Bangladesh University of Engineering & Technology (BUET). I like to learn new technologies, contribute, and share those with others. Here my goal is to provide beneficial and user-friendly articles on Linux distribution for everyone. Read Full Bio

Leave a Comment