Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Shell Scripting
  • Kali Linux
  • Ubuntu
  • Red Hat
  • CentOS
  • Docker in Linux
  • Kubernetes in Linux
  • Linux interview question
  • Python
  • R
  • Java
  • C
  • C++
  • JavaScript
  • DSA
Open In App
Next Article:
Understanding Package Managers and systemctl
Next article icon

Understanding Package Managers and systemctl

Last Updated : 07 Jun, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

A package manager is a command-line or graphical tool used to automate the process of installing, updating, and removing software packages on a Linux system. Software packages are collections of files, including executables, libraries, configuration files, and documentation, that are bundled together for easy distribution and installation. Package managers keep track of these packages, making it easier to manage software on a Linux system.

Functionalities of Package Manager in Linux

  • Installation: Package managers facilitate the installation of software packages from repositories or local files. They automatically handle dependencies, ensuring that all required components are installed.
  • Dependency Resolution: Linux software often relies on other packages. Package managers detect these dependencies and fetch and install them automatically.
  • Upgrading: Package managers allow users to update installed software to the latest versions. This helps in keeping the system secure and up-to-date.
  • Removal: Uninstalling software is straightforward with package managers. They ensure that all related files and dependencies are removed, preventing conflicts.
  • Querying: Users can query the package manager to get information about installed packages, available updates, and package details.

Most Widely used Package Manager in Linux

APT (Advanced Package Tool):

APT (Advanced Package Tool) is a powerful and widely used package manager in the Linux world. It's the default package manager for Debian-based distributions, including Debian itself, Ubuntu, and Linux Mint. APT simplifies software management, ensuring that users can easily install, update, and remove packages while taking care of dependencies. Let's explore APT in more detail, including its commands and real-world examples.

Key Features of APT:

  • Dependency Resolution: APT is known for its robust dependency resolution capabilities. It automatically detects and installs any necessary libraries or packages required by the software you want to install. This ensures that the software functions correctly without manual intervention.
  • Repository Management: APT connects to online repositories where software packages are hosted. Users can configure which repositories to use, allowing them to install software from official sources and trusted third-party repositories.
  • Package Management: It allows users to manage packages on the system, including installation, upgrading, downgrading, and removal. Additionally, APT can lock packages to specific versions, ensuring system stability.
  • Cache Management: APT maintains a local cache of package information. This cache helps in faster package searches and updates. Users can update this cache using the apt-get update command.

Basic commands in APT:

Installing a package:

sudo apt-get install package-name

Updating the package list:

sudo apt-get update

Upgrading packages:

sudo apt-get upgrade

Removing a package:

sudo apt-get remove package-name

Searching for packages:

apt-cache search package-name

Also Read: How to Install apt-file package on Ubuntu

YUM (Yellowdog Updater, Modified):

YUM (Yellowdog Updater, Modified) is a package manager primarily used in Red Hat-based Linux distributions such as CentOS, Fedora, and RHEL (Red Hat Enterprise Linux). YUM has played a significant role in simplifying package management on these systems, although it's important to note that in recent years, dnf (Dandified YUM) has become the modern and recommended replacement for YUM. Here, we will discuss YUM, its commands, and provide examples of its usage.

Key Features of YUM:

  • Dependency Resolution: YUM, like APT, is adept at handling complex dependency resolution. It automatically identifies and installs any necessary dependencies for the packages you want to install, ensuring that your software functions correctly.
  • Repository Management: YUM interacts with software repositories to fetch and install packages. Users can configure these repositories to obtain software from both official sources and trusted third-party repositories.
  • Package Management: YUM provides a set of commands to manage packages on the system. This includes installing, updating, downgrading, and removing packages, as well as listing installed packages and their information.
  • Cache Management: YUM maintains a local cache of metadata from the repositories. This cache improves package search and installation speed. You can update this cache using the yum makecache command.

Basic commands in YUM:

Installing a package:

sudo yum install package-name

Updating the package list:

sudo yum makecache

Upgrading packages:

sudo yum update

Removing a package:

sudo yum remove package-name

dnf Package Manager

dnf is the successor to YUM and is now the recommended package manager for Fedora-based distributions. It provides a more modern and user-friendly experience. The syntax and commands for dnf are similar to yum.

Some dnf examples are:

Installing a package:

sudo dnf install package-name

Updating packages:

sudo dnf upgrade

Also Read: Installation and Configuration of Yum

Pacman:

Pacman is the package manager used in Arch Linux and its derivatives, such as Manjaro. Arch Linux is known for its simplicity, flexibility, and rolling-release model, and Pacman is a vital component that makes managing software on Arch-based systems efficient. In this section, we'll explore Pacman, its commands, and provide examples of its usage.

Key Features of Pacman:

  • Simplicity and Transparency: Pacman follows a simple and transparent approach to package management. It doesn't hide the details and allows users to understand precisely what's happening during package installation, upgrade, and removal.
  • Rolling Release: Arch Linux and its derivatives use a rolling-release model, meaning that software is continuously updated rather than waiting for major distribution releases. Pacman plays a crucial role in keeping the system up-to-date with the latest software versions.
  • User-Managed Configuration: Pacman gives users significant control over their system's configuration files. It provides options to save, overwrite, or merge configuration files during package upgrades, ensuring that the system stays tailored to the user's preferences.
  • AUR Support: The Arch User Repository (AUR) is a community-driven repository for additional software not available in the official repositories. Pacman can be extended to manage packages from the AUR with AUR helpers like yay.

Basic commands in Pacman:

Installing a package:

sudo pacman -S package-name

Updating the package list and upgrading packages:

sudo pacman -Syu

Removing a package:

sudo pacman -R package-name

Querying package information:

pacman -Q package-name

Zypper:

Zypper is the default package manager used in openSUSE and its derivatives. It plays a critical role in managing software packages on these Linux distributions. Zypper is known for its efficiency and robust dependency resolution capabilities. In this section, we will delve into Zypper, its commands, and provide examples of its usage.

Key Features of Zypper:

  • Dependency Resolution: Zypper is highly effective at handling dependencies. It automatically detects and resolves package dependencies, ensuring that all required components are installed, which is crucial for software to function correctly.
  • Repository Management: Zypper interacts with software repositories, making it easy to fetch and install packages. openSUSE provides a wide range of official and community repositories, giving users access to a vast selection of software.
  • Package Management: Zypper offers a range of package management commands, including installation, upgrading, downgrading, and removal. It provides users with control over their software packages.
  • Transaction Safety: Zypper is designed with a focus on transaction safety. This means it will attempt to maintain a consistent system state by either completing a transaction successfully or rolling back changes in the event of an error, avoiding a partially updated system.

Basic commands in Zypper:

Installing a package:

sudo zypper in package-name

Updating packages:

sudo zypper up

Removing a package:

sudo zypper rm package-name

Searching for packages:

zypper se package-name

DPKG (Debian Package Manager):

DPKG (Debian Package Manager) is a fundamental package management tool for Debian-based Linux distributions, including Debian itself, Ubuntu, and their derivatives. DPKG is a low-level package manager, and while it directly interacts with individual package files, it is often used in conjunction with higher-level package managers like APT for a more user-friendly experience. In this section, we'll explore DPKG, its commands, and provide examples of its usage.

Key Features of DPKG:

  • Low-Level Package Management: DPKG directly handles the installation, removal, and management of individual package files (with the .deb extension). It does not automatically resolve or manage dependencies like higher-level package managers such as APT.
  • Package Installation: DPKG is responsible for installing software packages on a Debian-based system. Users can install packages from local .deb files or by specifying package names if the packages are already present on the system.
  • Package Removal: DPKG can remove installed packages from the system, ensuring that configuration files are retained or purged based on user preferences.
  • Package Querying: Users can query the status and information about installed packages, which is useful for diagnosing issues or verifying package details.

Basic commands in DPKG:

Installing a package from a .deb file:

sudo dpkg -i package.deb

Removing a package:

sudo dpkg -r package-name

Querying package information:

dpkg -l | grep package-name

systemctl in Linux

In this article, we will explore the systemctl command, an essential tool for managing services, units, and the entire systemd ecosystem in Linux. We must also know about systemd in Linux.

What is systemd?

Systemd is a system and service manager for Linux operating systems. It is designed to replace traditional init systems like SysV init and Upstart and is responsible for initializing the system, starting services, managing daemons, and monitoring system state. Its approach to managing processes is both efficient and powerful.

Some key features of systemd include:

  • Parallel startup of services, which accelerates the boot process.
  • Dependency management, ensuring that services are started in the right order.
  • Cgroups integration for resource management.
  • Enhanced logging through the journal system.
  • Socket activation, which allows services to be started on-demand.

Introduction to systemctl

systemctl is the primary command-line interface for interacting with systemd. It provides a wide range of functions for managing services, viewing their status, and controlling the system's behavior. Let's explore some of the most common systemctl commands and their usage.

Basic systemctl Commands

Starting and Stopping Services

To start a service, you use the start command. For example, to start the Apache web server:

sudo systemctl start apache2
12
start service


To stop a service, use the stop command:

sudo systemctl stop apache2
13
Stop service


Enabling and Disabling Services

To ensure a service starts at boot, you enable it using the enable command:

sudo systemctl enable apache2
14
Enable service


To disable a service from starting at boot:

sudo systemctl disable apache2
15
Disable sevices

Restarting and Reloading Services

To restart a service:

sudo systemctl restart apache2

To reload configuration files without stopping the service:

sudo systemctl reload apache2

Checking Service Status

To view the status of a service, use the status command:

systemctl status apache2
16
Checking status

This provides information about whether the service is running, its process ID, and recent log entries.

Viewing Active Units

You can list all currently active units (services, sockets, targets, etc.) with:

systemctl list-units --type=service
17
currently active units

Conclusion

Package managers and systemd, with its systemctl command, are indispensable tools for Linux system administrators and users. Package managers streamline software management, making installation, updates, and removals a breeze while resolving dependencies. The choice of package manager depends on your Linux distribution. Additionally, systemd and systemctl play a crucial role in managing processes and services, improving system startup times and ensuring efficient service management. Mastering these tools is fundamental to maintaining a well-functioning Linux system.


Next Article
Understanding Package Managers and systemctl

S

srivastavas260
Improve
Article Tags :
  • Linux-Unix
  • Geeks Premier League
  • Geeks Premier League 2023

Similar Reads

    How to Manage System Services in Linux | systemctl Command
    Linux operating systems are known for their robustness and versatility, and managing system services is a crucial aspect of maintaining a well-functioning system. With the advent of systemd, a system and service manager for Linux operating systems, the systemctl command has become an essential tool
    8 min read
    How to Start, Stop and Restart Services in Linux Using systemctl Command
    System services play a crucial role in the functioning of a Linux system, handling various tasks and processes in the background. systemctl is a powerful command-line tool that allows users to manage these services effectively. In this article, we will explore the basics of using systemctl to start,
    9 min read
    systemctl: command not found on ubuntu
    In Ubuntu, while working with the 'systemctl' command, users typically manage system services, view their status, start or stop them, and enable or disable them at system startup. However, encountering the "systemctl: command not found" error suggests that the 'systemctl' utility is not available or
    3 min read
    Systems Approach to Management
    The General Systems Theory applied to organisation and management in the 1950s, has been developed through the contributions of pioneers such as Kenneth Boulding, Ludwig Von Bertalanffy, Nisbet Wiener, E.L. Trist, F.E. Kast, R.A. Johnson, and Chester Barnard. Table of Content Concept of Systems Appr
    5 min read
    Design Restaurant Management System | System Design
    In the modern restaurant industry, delivering exceptional dining experiences requires more than just good cuisine. Restaurant Management Systems have emerged as the secret ingredient for efficient operations and customer satisfaction. In this article, we are going to design a restaurant management s
    15 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences