dgt_sys04 – Package Systems RPM and DEB

Module Title: dgt_sys04 – Package Management Systems RPM and DEB

Overview:
This module covers Linux package management systems, focusing on RPM (Red Hat Package Manager) and DEB (Debian package). Participants study how packages, repositories and dependencies work on both RPM-based distributions such as Fedora and CentOS and DEB-based distributions such as Debian and Ubuntu, and then manage packages in practice by instructing the machine in natural language.

Module Objectives:
– Understand the fundamental principles of Linux package management systems.
– Learn how packages are installed, updated, removed and managed in the RPM and DEB formats, so you can request these operations from the machine and verify the result.
– Explore advanced package management tools such as dnf for RPM and apt for DEB systems, and learn to read the commands the machine runs with them.
– Differentiate between the RPM and DEB package formats in terms of structure, use cases and ecosystem support.
– Develop the skills to diagnose common installation and dependency problems and guide the machine towards the right fix.

Key Topics:
1. Introduction to Package Management Systems
– Overview of Linux distributions and their package management needs.
– Historical context and evolution of the RPM and DEB formats.

  1. Understanding RPM Packages
  2. Structure and components of an RPM file.
  3. What the rpm command does for basic operations: install, query, verify.
  4. Transition to advanced tools: introduction to dnf.
  5. Natural-language session: ask the machine to install and query packages with dnf, then check the transaction it proposes before confirming.

  6. Exploring DEB Packages

  7. Anatomy of a DEB package.
  8. How dpkg handles basic package management tasks.
  9. Moving up to apt: APT vs. DPKG.
  10. Exercises in which you direct the machine to manage packages with apt and verify what it installed, upgraded or removed.

  11. Comparative Analysis: RPM vs. DEB

  12. Key differences in package formats and metadata handling.
  13. Distribution ecosystems and their impact on package availability.
  14. Case studies illustrating scenarios where one might prefer RPM over DEB, or vice versa.

  15. Advanced Package Management Techniques

  16. Managing dependencies and resolving conflicts.
  17. Automating package installations: describing the goal to the machine and reviewing the script it generates.
  18. Security considerations in package management.

  19. Troubleshooting and Best Practices

  20. Common pitfalls and how to avoid them.
  21. Ensuring system integrity during package updates.
  22. Maintaining a clean and efficient system environment.

Prerequisites:
– Basic understanding of Linux operating systems and of how the command-line interface works.
– Familiarity with concepts such as repositories, dependencies and file permissions is helpful but not required.

Learning Outcomes:
Upon completion of this module, participants will be able to manage software packages on both RPM- and DEB-based systems by giving the machine clear, well-scoped instructions. They will read and understand the dnf and apt commands it runs, recognize the differences between the two package management philosophies, and confidently troubleshoot package-related issues, spotting when the machine is about to remove the wrong package or pull in an unwanted dependency.

Module Format:
This module combines theoretical instruction with natural-language labs. You never type the package commands yourself: you tell the machine, for instance, to install a web server from the official repositories on both a Fedora and an Ubuntu host, then compare the dnf and apt transactions it shows you, check versions and dependencies against what you studied, and correct its course if something is off. The module also includes interactive discussions and live demonstrations.

The students can push their exercises to the Academy DevOps & SRE Git project. For this module, create a folder with your username as its name in the following subfolder: https://github.com/Garanti-Del-Talento/gdt_academy