Package management is the method of installing, updating, configuring, and removing software on Linux systems. It handles dependencies automatically and maintains system integrity.
A compressed archive containing:
Compiled software/binaries
Configuration files
Documentation
Metadata (dependencies, version, description)
Installation scripts
Binary packages: Pre-compiled, ready to install
Source packages: Need compilation before installation
Package Managers:
RPM (low-level)
YUM (Yellowdog Updater Modified) - older
DNF (Dandified YUM) - modern replacement for YUM
Common Commands:
# DNF/YUM Commands
sudo dnf install package_name # Install package
sudo dnf remove package_name # Remove package
sudo dnf update # Update all packages
sudo dnf update package_name # Update specific package
sudo dnf search keyword # Search for packages
sudo dnf info package_name # Show package details
sudo dnf list installed # List installed packages
sudo dnf list available # List available packages
sudo dnf clean all # Clean cache
# RPM Commands (low-level)
sudo rpm -ivh package.rpm # Install RPM package
sudo rpm -Uvh package.rpm # Update RPM package
sudo rpm -e package_name # Remove package
rpm -qa # Query all installed packages
rpm -qi package_name # Query package info
rpm -ql package_name # List files in package
rpm -qf /path/to/file # Find which package owns a file
DPKG (low-level)
APT (Advanced Package Tool) - high-level
APT-GET - traditional interface
APTITUDE - alternative with text UI
# APT Commands
sudo apt update # Update package index
sudo apt upgrade # Upgrade all packages
sudo apt install package_name # Install package
sudo apt remove package_name # Remove package (keep config)
sudo apt purge package_name # Remove package + config
sudo apt autoremove # Remove unused dependencies
sudo apt search keyword # Search packages
sudo apt show package_name # Show package details
apt list --installed # List installed packages
sudo apt clean # Clean cache
# DPKG Commands (low-level)
sudo dpkg -i package.deb # Install DEB package
sudo dpkg -r package_name # Remove package
sudo dpkg -P package_name # Purge package
dpkg -l # List installed packages
dpkg -L package_name # List files in package
dpkg -S /path/to/file # Find package owning file
sudo dpkg --configure -a # Fix broken installations
Zypper (openSUSE)
sudo zypper install package_name
sudo zypper remove package_name
sudo zypper update
sudo zypper search package_name
Pacman (Arch Linux)
sudo pacman -S package_name # Install
sudo pacman -R package_name # Remove
sudo pacman -Syu # Update system
sudo pacman -Ss keyword # Search
sudo snap install package_name
sudo snap remove package_name
sudo snap list
sudo snap find keyword
sudo snap refresh # Update all snaps
Features:
Self-contained with dependencies
Automatic updates
Sandboxed for security
Works across distributions
flatpak install package_name
flatpak uninstall package_name
flatpak list
flatpak search keyword
flatpak update
Distribution-independent
Sandboxed applications
Decentralized repositories
chmod +x application.AppImage
./application.AppImage
Single executable file
No installation needed
Portable across distributions
# 1. Install build tools
sudo apt install build-essential # Debian/Ubuntu
sudo dnf groupinstall "Development Tools" # RHEL/Fedora
# 2. Download source code
wget https://example.com/software.tar.gz
# 3. Extract
tar -xzvf software.tar.gz
cd software
# 4. Configure
./configure --prefix=/usr/local
# 5. Compile
make
# 6. Install
sudo make install
# 7. (Optional) Uninstall
sudo make uninstall
# Add PPA
sudo add-apt-repository ppa:repository_name
sudo apt update
# Add repository manually
sudo nano /etc/apt/sources.list
# Add external repository
echo "deb http://repo.url distribution component" | sudo tee /etc/apt/sources.list.d/repo.list
# Add repository
sudo dnf config-manager --add-repo repository_url
# Enable/disable repository
sudo dnf config-manager --enable repo_name
sudo dnf config-manager --disable repo_name
# List repositories
sudo dnf repolist
Hard dependencies: Required for software to run
Soft dependencies: Optional features
Build dependencies: Needed only during compilation
Debian/Ubuntu:
sudo apt --fix-broken install
sudo dpkg --configure -a
sudo apt autoremove
RHEL/Fedora:
sudo dnf check
sudo dnf distro-sync
sudo dnf autoremove
Always update package index first
sudo apt update # or sudo dnf check-update
Regular system updates
sudo apt update && sudo apt upgrade
Use official repositories when possible
Check package authenticity
Verify GPG signatures
Use HTTPS repositories
Clean up regularly
sudo apt autoremove && sudo apt clean
Backup before major updates
Read package descriptions before installing
Keep systems updated regularly
Only use trusted repositories
Verify package signatures
Use sudo appropriately
sudo
Review installed packages periodically
Remove unused packages
# APT
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
# DNF
sudo rm /var/run/dnf.pid
sudo apt clean && sudo apt update # Debian/Ubuntu
sudo dnf clean all && sudo dnf makecache # RHEL/Fedora
What is a package in Linux?
A compressed archive containing compiled software, configuration files, documentation, metadata (dependencies, version), and installation scripts.
Name the three main package management tools in RPM-based systems.
RPM (low-level package manager)
YUM (legacy high-level manager)
DNF (modern high-level manager)
What command updates the package index in Debian/Ubuntu?
What's the difference between apt remove and apt purge?
apt remove
apt purge
apt remove: Removes package but keeps configuration files
apt purge: Removes package AND configuration files
How do you install a .deb package using dpkg?
sudo dpkg -i package.deb
What command installs a package using DNF?
sudo dnf install package_name
How do you search for a package in APT?
sudo apt search keyword or apt-cache search keyword
sudo apt search keyword
apt-cache search keyword
What command lists all installed packages in RPM-based systems?
rpm -qa or dnf list installed
rpm -qa
dnf list installed
How do you find which package a file belongs to in Debian/Ubuntu?
dpkg -S /path/to/file
What does sudo apt autoremove do?
Removes packages that were automatically installed as dependencies but are no longer needed.
Name three universal package formats that work across Linux distributions.
Snap
Flatpak
AppImage
What are the typical steps to compile software from source?
./configure
How do you update all packages in a Debian/Ubuntu system?
What command shows detailed information about a package in DNF?
dnf info package_name
How do you add a PPA repository in Ubuntu?
sudo add-apt-repository ppa:repository_name followed by sudo apt update
What is the difference between YUM and DNF?
DNF is the modern replacement for YUM with better performance, improved dependency resolution, and lower memory usage. DNF uses libsolv for dependency resolution.
How do you clean the package cache in APT?
sudo apt clean (removes all cached packages) or sudo apt autoclean (removes only outdated cached packages)
sudo apt clean
sudo apt autoclean
What command fixes broken dependencies in Debian/Ubuntu?
sudo apt --fix-broken install or sudo dpkg --configure -a
How do you list files installed by a package using RPM?
rpm -ql package_name
What does the -y flag do in package managers?
-y
Automatically answers "yes" to all prompts, allowing non-interactive installation (e.g., sudo apt install -y package_name)
sudo apt install -y package_name
Where are APT repository sources stored?
/etc/apt/sources.list (main file)
/etc/apt/sources.list
/etc/apt/sources.list.d/ (additional repository files)
/etc/apt/sources.list.d/
How do you enable/disable a DNF repository?
Enable: sudo dnf config-manager --enable repo_name
Disable: sudo dnf config-manager --disable repo_name
What command shows available updates without installing them?
Debian/Ubuntu: apt list --upgradable
apt list --upgradable
RHEL/Fedora: dnf check-update
dnf check-update
How do you install a Snap package?
What is a dependency in package management?
Other packages or libraries that a software package requires to function properly.
How do you remove a package and its dependencies in DNF?
sudo dnf remove package_name (then optionally sudo dnf autoremove for orphaned dependencies)
sudo dnf remove package_name
What command verifies the integrity of installed RPM packages?
rpm -V package_name or rpm -Va (verify all packages)
rpm -V package_name
rpm -Va
How do you hold/prevent a package from being updated in APT?
sudo apt-mark hold package_name
What is the difference between dnf update and dnf upgrade?
dnf update
dnf upgrade
In DNF, update and upgrade are aliases and do the same thing - update all packages. (In older YUM, update kept obsolete packages while upgrade removed them)
update
upgrade
Where are downloaded .deb packages cached?
/var/cache/apt/archives/
How do you download a package without installing it?
Debian/Ubuntu: apt download package_name
apt download package_name
RHEL/Fedora: dnf download package_name
dnf download package_name
What command reinstalls a package in APT?
sudo apt reinstall package_name
How do you list all available repositories in DNF?
dnf repolist or dnf repolist all (includes disabled repos)
dnf repolist
dnf repolist all
What is the purpose of package signatures?
To verify the authenticity and integrity of packages, ensuring they haven't been tampered with and come from trusted sources.
How do you check if a package is installed?
Debian/Ubuntu: dpkg -l | grep package_name or apt list --installed | grep package_name
dpkg -l | grep package_name
apt list --installed | grep package_name
RHEL/Fedora: rpm -qa | grep package_name or dnf list installed package_name
rpm -qa | grep package_name
dnf list installed package_name
Zuletzt geändertvor einem Monat