search
HomeSystem TutorialLINUXDetailed explanation of Linux package manager

Detailed explanation of Linux package manager

Feb 11, 2024 pm 05:12 PM
linuxlinux tutoriallinux systemlinux commandshell scriptembeddedlinuxGetting started with linuxlinux learning

An important factor that distinguishes a Linux distribution is its package management system. In this article, you will learn about packaging and package managers in Linux. We'll introduce you to the concepts of "packages" and "package managers" and how they work, as well as some common package managers.

Detailed explanation of Linux package manager

What is a package manager?

Simply put, a "package manager" (or "package manager") is a tool that allows users to install, remove, upgrade, configure, and manage software packages on an operating system. A package manager can be a graphical application like Software Center or a command-line tool like apt-get or pacman.

You'll notice that I use the word "package" a lot in tutorials and articles. To understand package managers, you must understand what packages are.

What is a package?

A "package" (or "software package") usually refers to an application, which can be a GUI application, a command line tool, or a software library (required by other software programs). A package is essentially an archive file that contains a binary executable, configuration files, and sometimes dependency information.

In the old days, software used to be installed from its source code. You would refer to a file (usually named README) to see what software components it requires and where the binaries are. It usually includes a configuration script or Makefile. You must compile the software yourself or handle all dependencies yourself (some software requires other software to be installed).

To get rid of this complexity, Linux distributions have created their own packaging formats that provide end users with ready-to-use binaries (precompiled software) for installing the software, while also providing some metadata (version number, description) and dependencies.

It’s like baking a cake versus buying a cake.

Detailed explanation of Linux package manager

Around the mid-1990s, Debian created the DEB packaging format (.deb), and Red Hat Linux created the RPM (abbreviation for Red Hat Package Manager) packaging system (.rpm). The way to compile source code still exists, but is now optional.

To interact with or use the packaging system, you need a package manager.

How does the package manager work?

Please remember that a package manager is a general concept, it is not unique to Linux. You will often find package managers for various software or programming languages. There is a PIP package manager just for Python packages. Even the Atom editor has its own package manager.

Since the focus of this article is Linux, I will start from the Linux perspective. However, much of the explanation here can also be applied to package managers in general.

I created this diagram (based on the SUSE Wiki) so that you can easily understand how the package manager works.

Detailed explanation of Linux package manager

Almost all Linux distributions have a "software repository", which is basically a collection of software packages. Yes, there can be more than one software repository. Software libraries contain different kinds of software packages.

Software warehouses also have metadata files, which contain software package information, such as software package name, version number, software package description, and software warehouse name. This is what you see using the apt show command in Ubuntu/Debian.

The package manager on your system will first interact with the metadata. The package manager creates a local cache of metadata on your system. When you run your package manager's update option (such as apt update), it updates the local metadata cache by referencing the metadata in the repository.

When you run the package manager's installation command (such as apt install package_name), the package manager will reference this cache. If it finds the package information in the cache, it uses the Internet to connect to the appropriate repository and download the package before installing it on your system.

A package may have dependencies. Meaning, it may require additional packages to be installed. Package managers usually handle these dependencies and install them automatically along with the package you are installing.

Detailed explanation of Linux package manager

*The package manager in Linux will handle dependencies*

Similarly, when you use the package manager to delete a package, it will either automatically delete it or notify you that the system has unused packages that can be cleaned up.

In addition to the obvious tasks of installing and removing, you can also use the package manager to configure packages and manage them according to your needs. For example, you can prevent a certain package version from being upgraded during regular system updates. There's probably a lot more your package manager can do.

Different types of package managers

Package managers vary depending on the packaging system, but the same packaging system may have multiple package managers.

For example, RPM has Yum and DNF package managers. For DEB, you have command line based package managers like apt-get, aptitude, etc.

Detailed explanation of Linux package manager

Synaptic Package Manager

Package managers are not necessarily command line-based, there are also graphical package management tools, such as Synaptic. Your distribution's Software Center is also a package manager, even if it's running apt-get or DNF under the hood.

in conclusion

I don't want to go into further detail on this topic, although I could go on, but that would detract from the goal of this topic - which is to give you a basic understanding of package managers in Linux.

I'm ignoring the new universal packaging formats like Snap and Flatpak for now.

The above is the detailed content of Detailed explanation of Linux package manager. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:良许Linux教程网. If there is any infringement, please contact admin@php.cn delete
How to Create GUI Applications In Linux Using PyGObjectHow to Create GUI Applications In Linux Using PyGObjectMay 13, 2025 am 11:09 AM

Creating graphical user interface (GUI) applications is a fantastic way to bring your ideas to life and make your programs more user-friendly. PyGObject is a Python library that allows developers to create GUI applications on Linux desktops using the

How to Install LAMP Stack with PhpMyAdmin in Arch LinuxHow to Install LAMP Stack with PhpMyAdmin in Arch LinuxMay 13, 2025 am 11:01 AM

Arch Linux provides a flexible cutting-edge system environment and is a powerfully suited solution for developing web applications on small non-critical systems because is a completely open source and provides the latest up-to-date releases on kernel

How to Install LEMP (Nginx, PHP, MariaDB) on Arch LinuxHow to Install LEMP (Nginx, PHP, MariaDB) on Arch LinuxMay 13, 2025 am 10:43 AM

Due to its Rolling Release model which embraces cutting-edge software Arch Linux was not designed and developed to run as a server to provide reliable network services because it requires extra time for maintenance, constant upgrades, and sensible fi

12 Must-Have Linux Console [Terminal] File Managers12 Must-Have Linux Console [Terminal] File ManagersMay 13, 2025 am 10:14 AM

Linux console file managers can be very helpful in day-to-day tasks, when managing files on a local machine, or when connected to a remote one. The visual console representation of the directory helps us quickly perform file/folder operations and sav

qBittorrent: A Powerful Open-Source BitTorrent ClientqBittorrent: A Powerful Open-Source BitTorrent ClientMay 13, 2025 am 10:12 AM

qBittorrent is a popular open-source BitTorrent client that allows users to download and share files over the internet. The latest version, qBittorrent 5.0, was released recently and comes packed with new features and improvements. This article will

Setup Nginx Virtual Hosts, phpMyAdmin, and SSL on Arch LinuxSetup Nginx Virtual Hosts, phpMyAdmin, and SSL on Arch LinuxMay 13, 2025 am 10:03 AM

The previous Arch Linux LEMP article just covered basic stuff, from installing network services (Nginx, PHP, MySQL, and PhpMyAdmin) and configuring minimal security required for MySQL server and PhpMyadmin. This topic is strictly related to the forme

Zenity: Building GTK  Dialogs in Shell ScriptsZenity: Building GTK Dialogs in Shell ScriptsMay 13, 2025 am 09:38 AM

Zenity is a tool that allows you to create graphical dialog boxes in Linux using the command line. It uses GTK , a toolkit for creating graphical user interfaces (GUIs), making it easy to add visual elements to your scripts. Zenity can be extremely u

Top 22 Best Music Players for LinuxTop 22 Best Music Players for LinuxMay 13, 2025 am 09:25 AM

Some may describe it as their passion, while others may consider it a stress reliever or a part of their daily life. In every form, listening to music has become an inseparable part of our lives. Music plays different roles in our lives. Sometimes it

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool