Table of Contents
- Core Concepts: What You Need to Know
- APT (Debian/Ubuntu/Linux Mint)
- DNF/YUM (RHEL/CentOS/Fedora/Rocky Linux)
- Pacman (Arch Linux/Manjaro/EndeavourOS)
- Zypper (openSUSE)
- Universal Package Managers (Flatpak/Snap)
- Troubleshooting Common Issues
- Conclusion
- References
Core Concepts: What You Need to Know
Before diving into commands, let’s clarify key terms:
- Repository: A remote server (or local directory) hosting pre-built packages and metadata (e.g., version info, dependencies). Package managers fetch packages from repositories by default.
- Dependency: Software required by a package to function. For example, a video editor might depend on a codec library. Package managers automatically resolve and install dependencies.
- Package File: A compressed archive containing software binaries, configuration files, and metadata. Examples:
.deb(Debian),.rpm(RHEL/Fedora),.pkg.tar.zst(Arch). - Cache: A local directory where package managers store downloaded packages to avoid re-downloading them. Useful for offline installs or rollbacks.
APT (Debian/Ubuntu/Linux Mint)
APT (Advanced Package Tool) is the default package manager for Debian-based distributions like Ubuntu, Linux Mint, and Pop!_OS. It uses .deb packages and relies on apt, apt-get, and apt-cache commands (we’ll focus on apt, the modern, user-friendly frontend).
APT: Quick Reference Table
| Command | Description |
|---|---|
sudo apt update | Refresh local package lists (metadata) from repositories. Always run before upgrading! |
sudo apt upgrade | Upgrade all installed packages to their latest versions (without removing old ones). |
sudo apt full-upgrade | Upgrade packages and remove/replace conflicting packages (use cautiously!). |
sudo apt install <package> | Install a specific package (e.g., sudo apt install firefox). |
sudo apt remove <package> | Remove a package but leave configuration files (useful for re-installs). |
sudo apt purge <package> | Remove a package and its configuration files (permanent cleanup). |
sudo apt autoremove | Remove unused dependencies left behind by uninstalled packages. |
apt search <keyword> | Search repositories for packages matching a keyword (e.g., apt search text-editor). |
apt show <package> | Display detailed info about a package (version, dependencies, description). |
sudo apt clean | Clear the package cache (deletes all downloaded .deb files). |
sudo apt autoclean | Clear the cache but keep recent .deb files (safer than clean). |
Key APT Commands Explained
1. Update Package Lists
Always run update first to ensure your system knows about the latest package versions:
sudo apt update
Why? Repositories are updated frequently. Without this, upgrade may miss new versions.
2. Upgrade Packages
Upgrade all installed packages safely:
sudo apt upgrade
Add -y to auto-confirm prompts (e.g., sudo apt upgrade -y).
3. Install a Package
Install a package (and its dependencies) with:
sudo apt install <package-name>
Example: Install the htop system monitor:
sudo apt install htop
4. Remove a Package
- To keep config files (e.g., for later re-install):
sudo apt remove htop - To delete config files彻底删除配置文件:
sudo apt purge htop
5. Search for Packages
Find packages by name or description:
apt search "text editor"
Filter results with grep for precision:
apt search "text editor" | grep "vim"
6. Clean Up Unused Dependencies
Over time, uninstalled packages leave behind unused dependencies. Remove them with:
sudo apt autoremove
Pro Tip: Add a PPA (Personal Package Archive)
Some software (e.g., Node.js, VS Code) isn’t in official repos. Use a PPA to add third-party repositories:
sudo add-apt-repository ppa:<user>/<repo> # Add the PPA (e.g., ppa:git-core/ppa)
sudo apt update # Refresh lists to include the new PPA
sudo apt install <package> # Install from the PPA
DNF/YUM (RHEL/CentOS/Fedora/Rocky Linux)
DNF (Dandified YUM) is the modern successor to YUM (Yellowdog Updater, Modified), used in RHEL-based distributions like Fedora, CentOS Stream, and Rocky Linux. It uses .rpm packages and offers faster performance, better dependency resolution, and cleaner output than YUM.
DNF: Quick Reference Table
| Command | Description |
|---|---|
sudo dnf check-update | List available updates (no action taken). |
sudo dnf update | Upgrade all installed packages (equivalent to yum update). |
sudo dnf upgrade | Same as dnf update (preferred in Fedora). |
sudo dnf install <package> | Install a package (e.g., sudo dnf install thunderbird). |
sudo dnf remove <package> | Remove a package (leaves config files). |
sudo dnf erase <package> | Same as dnf remove. |
sudo dnf autoremove | Remove unused dependencies. |
dnf search <keyword> | Search repositories for packages. |
dnf info <package> | Show details about a package. |
sudo dnf clean all | Clear cached packages and metadata. |
Key DNF Commands Explained
1. Update Packages
Upgrade all packages (Fedora recommends dnf upgrade):
sudo dnf upgrade -y # -y auto-confirms prompts
2. Install a Package
Install git (version control tool):
sudo dnf install git
3. Remove a Package
Uninstall git but keep config files:
sudo dnf remove git
4. Enable a Repository
Some repos (e.g., EPEL for extra packages) are disabled by default. Enable them with:
sudo dnf config-manager --set-enabled <repo-name> # e.g., epel
5. Roll Back an Update
DNF automatically creates transaction history, making rollbacks easy. To undo the last update:
sudo dnf history undo last
Pacman (Arch Linux/Manjaro/EndeavourOS)
Pacman is the lightweight, fast package manager for Arch Linux and its derivatives (Manjaro, EndeavourOS). It uses .pkg.tar.zst packages and is known for its simplicity and direct control over the system.
Pacman: Quick Reference Table
| Command | Description |
|---|---|
sudo pacman -Sy | Sync package databases (refresh metadata). |
sudo pacman -Syu | Sync databases and upgrade all packages (Arch’s “update” command). |
sudo pacman -S <package> | Install a package (e.g., sudo pacman -S neovim). |
sudo pacman -R <package> | Remove a package (leaves dependencies). |
sudo pacman -Rs <package> | Remove a package and its unused dependencies. |
sudo pacman -Rns <package> | Remove a package, dependencies, and config files (彻底清理). |
pacman -Ss <keyword> | Search repositories for packages. |
pacman -Si <package> | Show info about a package. |
sudo pacman -Sc | Clean cached packages (keeps latest versions). |
sudo pacman -Scc | Clear the entire cache (use only if low on disk space). |
Key Pacman Commands Explained
1. Update the System
Arch is a rolling-release distro, so updating is critical. Use Syu (Sync, Refresh, Upgrade):
sudo pacman -Syu
2. Install a Package
Install firefox (web browser):
sudo pacman -S firefox
3. Remove a Package
彻底删除 firefox (including dependencies and configs):
sudo pacman -Rns firefox
4. Search for Packages
Find all packages related to “terminal”:
pacman -Ss terminal
5. Clean the Cache
Pacman caches all downloaded packages. To free space, keep only the latest versions:
sudo pacman -Sc
Zypper (openSUSE)
Zypper is the default package manager for openSUSE (both Leap and Tumbleweed). It uses .rpm packages and combines the speed of DNF with the flexibility of APT.
Zypper: Quick Reference Table
| Command | Description |
|---|---|
sudo zypper refresh | Refresh package metadata (same as apt update). |
sudo zypper update | Upgrade all installed packages. |
sudo zypper install <package> | Install a package (e.g., sudo zypper install libreoffice). |
sudo zypper remove <package> | Remove a package. |
sudo zypper autoremove | Remove unused dependencies. |
zypper search <keyword> | Search repositories for packages. |
zypper info <package> | Show package details. |
sudo zypper clean | Clear cached packages. |
Key Zypper Commands Explained
1. Update the System
Refresh metadata and upgrade packages:
sudo zypper refresh && sudo zypper update -y
2. Install a Package
Install gimp (image editor):
sudo zypper install gimp
3. Add a Repository
Enable the Packman repo (for multimedia codecs in openSUSE):
sudo zypper addrepo https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ packman
sudo zypper refresh
Universal Package Managers (Flatpak/Snap)
Native package managers (APT, DNF, etc.) are tied to specific distributions. Flatpak and Snap solve this by offering cross-distribution, sandboxed packages that work on any Linux desktop.
Flatpak
Flatpak is a popular universal package manager focused on security (sandboxed apps) and compatibility. It’s pre-installed on Fedora and available for most distributions.
Flatpak: Quick Reference
| Command | Description |
|---|---|
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | Add Flathub (the main Flatpak repository). |
flatpak install flathub <app-id> | Install an app (e.g., flatpak install flathub org.mozilla.firefox). |
flatpak run <app-id> | Launch an app (e.g., flatpak run org.mozilla.firefox). |
flatpak update | Update all Flatpak apps. |
flatpak uninstall <app-id> | Remove an app. |
Snap
Snap, developed by Canonical (Ubuntu’s parent company), is another universal package manager. It’s pre-installed on Ubuntu and focuses on simplicity and automatic updates.
Snap: Quick Reference
| Command | Description |
|---|---|
sudo snap install <package> | Install a snap (e.g., sudo snap install spotify). |
snap run <package> | Launch a snap. |
sudo snap refresh | Update all snaps. |
sudo snap remove <package> | Uninstall a snap. |
Troubleshooting Common Issues
Even with the best tools, package management can hit snags. Here’s how to fix common problems:
1. Broken Packages (APT)
If apt fails due to broken dependencies:
sudo apt --fix-broken install # Auto-resolve missing dependencies
sudo dpkg --configure -a # Fix interrupted package configurations
2. Corrupted Cache (Pacman)
If Pacman complains about corrupted packages:
sudo pacman -Scc # Clear the cache
sudo pacman -Syu # Re-download and update
3. Dependency Conflicts (DNF)
DNF’s solver usually handles conflicts, but if stuck:
sudo dnf upgrade --allowerasing # Allow removing conflicting packages (use carefully!)
4. “Package Not Found” Errors
- Ensure your package lists are updated (
apt update,dnf check-update, etc.). - Verify the package name (use
searchcommands to confirm spelling). - Add missing repositories (e.g., PPAs for APT, EPEL for DNF).
Conclusion
Mastering Linux package management transforms you from a passive user into an empowered system administrator. Whether you’re on Debian, Arch, Fedora, or openSUSE, the commands in this cheat sheet will help you install, update, and maintain software with confidence.
Remember: Always back up critical data before major upgrades, and prefer official repositories over untrusted third-party sources. With practice, these tools will become second nature!