🎯 Learning Objectives
- Understand what Linux packages are[cite: 41].
- Learn common package formats[cite: 41].
- Understand package managers[cite: 41].
- Learn repository concepts[cite: 41].
- Identify package tools available on your system[cite: 41].
📋 Prerequisites
Complete Chapters 1–4 before starting this chapter[cite: 41].
1. Introduction
Modern Linux systems install software using package managers instead of downloading random executables[cite: 41]. Package management automates installation, dependency resolution, updates and software removal, making system administration faster and more reliable[cite: 41].
2. What Is a Linux Package?
A package is a compressed archive containing everything needed to install an application[cite: 41].
Application ──► Executables | Libraries | Configuration Files | Documentation | Metadata[cite: 41]
Examples include vim, git, curl, nginx and OpenSSH[cite: 41].
3. Why Package Managers Exist
- Install software consistently[cite: 41].
- Resolve dependency packages automatically[cite: 41].
- Apply updates and security fixes[cite: 41].
- Verify package integrity[cite: 41].
- Remove software cleanly[cite: 41].
4. Common Package Formats
| Format | Used By | Description |
|---|---|---|
| RPM | RHEL, Rocky, AlmaLinux, Fedora | Red Hat Package Manager format[cite: 41]. |
| DEB | Debian, Ubuntu | Debian package format[cite: 41]. |
| Source Code | All | Compiled manually[cite: 41]. |
| Flatpak | Multiple distributions | Sandboxed desktop packages[cite: 41]. |
| Snap | Ubuntu and others | Universal package format[cite: 41]. |
| AppImage | Multiple distributions | Portable application package[cite: 41]. |
5. Package Managers by Distribution
| Distribution | Package Manager |
|---|---|
| RHEL / Rocky / AlmaLinux | rpm, yum, dnf[cite: 41] |
| Fedora | dnf[cite: 41] |
| Debian / Ubuntu | apt, dpkg[cite: 41] |
6. Understanding Repositories
A repository is a trusted software source containing packages and metadata[cite: 41]. These can include official channels, third-party extensions, localized offline networks, or enterprise baseline mirror servers[cite: 41].
7. Useful Information Commands
cat /etc/os-release # Display distribution information[cite: 41]
hostnamectl # Show system details[cite: 41]
uname -r # Display kernel version[cite: 41]
which dnf apt rpm # Locate package manager binaries[cite: 41]
8. Hands-on Practice (Package Query)
- Identify your Linux distribution and kernel version[cite: 41].
- Determine whether your system uses RPM or APT binaries[cite: 41].
- Locate the package manager path cleanly using
which[cite: 41].
9. Installing & Querying RPM Packages Directly
rpm -ivh package.rpm # Install a local RPM package[cite: 41]
rpm -qa # List all installed packages[cite: 41]
...
rpm -qi openssh # Display complete package information[cite: 41]
rpm -ql openssh # List all files installed by this package[cite: 41]
rpm -qf /usr/bin/ssh # Identify which package owns a specific file path[cite: 41]
rpm -V openssh # Verify package integrity against repository bounds[cite: 41]
10. Automated Dependency Management (dnf, apt)
While low-level tools like `rpm` and `dpkg` track single packages, wrappers like `dnf` and `apt` parse full repositories to resolve dependency chains automatically[cite: 41].
sudo dnf install nginx # RHEL / Rocky package setup[cite: 41]
sudo apt update && sudo apt install nginx # Debian / Ubuntu workflow[cite: 41]
sudo dnf clean all # Flush package metadata cache for troubleshooting[cite: 41]
11. Advanced Text Processing Pipelines
Isolate and process text logs directly using core system tools[cite: 41]:
- grep: Filters streams using pattern matches (e.g.,
grep -i error /var/log/nginx/error.log)[cite: 41]. - sed: Non-interactive stream editor (e.g.,
sed 's/error/ERROR/g' app.log)[cite: 41]. - awk: Powerful structural evaluation scripting language (e.g.,
awk '{print $1,$3}' /etc/passwd)[cite: 41]. - cut: Splits sections out of text fields via fields and delimiters (e.g.,
cut -d: -f1 /etc/passwd)[cite: 41].
Commands Covered in This Chapter
grep,egrep- Pattern matching utilities[cite: 41]sed- Stream text filter and transformation asset[cite: 41]awk- Pattern scanning and reporting processor language[cite: 41]cut- Field isolation text column separator[cite: 41]tr- Translate or delete text characters cleanly[cite: 41]sort/uniq- Organize rows and omit duplicate lines[cite: 41]wc- Generate newline, word, and byte counts[cite: 41]xargs- Build and execute command structures from stdin[cite: 41]dnf/apt/rpm- Package configuration systems[cite: 41]