Pacman

Essential commands for Arch Linux's pacman package manager.

cli
pacmanarchlinuxpackage-manager

Installing Packages

# Install a package
sudo pacman -S package_name

# Install multiple packages
sudo pacman -S package1 package2 package3

# Install without confirmation prompt
sudo pacman -S --noconfirm package_name

# Install from local file
sudo pacman -U /path/to/package.pkg.tar.zst

# Install with dependencies
sudo pacman -S --asdeps package_name  # Mark as dependency

Removing Packages

# Remove a package
sudo pacman -R package_name

# Remove package and its dependencies (not used by others)
sudo pacman -Rs package_name

# Remove package, dependencies, and config files
sudo pacman -Rns package_name

# Remove package without checking dependencies (dangerous)
sudo pacman -Rdd package_name

Updating System

# Update package database
sudo pacman -Sy

# Upgrade all packages
sudo pacman -Su

# Update database and upgrade all packages
sudo pacman -Syu

# Force refresh package databases
sudo pacman -Syy

# Full system upgrade with database refresh
sudo pacman -Syyu

Searching Packages

# Search for package in repositories
pacman -Ss search_term

# Search installed packages
pacman -Qs search_term

# Search for package that owns a file
pacman -Qo /path/to/file

# List all files owned by a package
pacman -Ql package_name

# Find which package provides a file
pacman -F filename

Package Information

# Display info about installed package
pacman -Qi package_name

# Display info about repository package
pacman -Si package_name

# List all installed packages
pacman -Q

# List explicitly installed packages
pacman -Qe

# List packages installed as dependencies
pacman -Qd

# List orphaned packages (no longer needed)
pacman -Qdt

# Check for package updates
pacman -Qu

Cleaning Cache

# Remove all cached packages
sudo pacman -Sc

# Remove all cached packages (uninstalled only)
sudo pacman -Scc

# Remove orphaned packages
sudo pacman -Rns $(pacman -Qtdq)

# Clear package cache (keep 3 most recent)
paccache -r

# Clear cache for uninstalled packages
paccache -ruk0

Database Management

# Check database for errors
sudo pacman -Dk

# Refresh package database
sudo pacman -Fy

# Mark package as explicitly installed
sudo pacman -D --asexplicit package_name

# Mark package as dependency
sudo pacman -D --asdeps package_name

# List files in package database
pacman -Fl package_name

Common Flags

# -S: Sync (install/upgrade packages)
# -R: Remove packages
# -Q: Query installed packages
# -F: Query file database
# -U: Upgrade from local file
# -D: Database modification

# Modifiers:
# -y: Refresh database
# -u: Upgrade packages
# -s: Search
# -i: Info
# -l: List
# -c: Clean cache
# -n: No backup
# --noconfirm: Skip confirmation
# --needed: Skip up-to-date packages

Package Groups

# List all groups
pacman -Sg

# List packages in a group
pacman -Sg group_name

# Install entire group
sudo pacman -S group_name

# List installed groups
pacman -Qg

# List packages in installed group
pacman -Qg group_name

Configuration

# Configuration file
/etc/pacman.conf

# Mirror list
/etc/pacman.d/mirrorlist

# Update mirror list (manually edit)
sudo nano /etc/pacman.d/mirrorlist

# Enable color output (uncomment in /etc/pacman.conf)
Color

# Enable parallel downloads (add to /etc/pacman.conf)
ParallelDownloads = 5

# Ignored packages (won't be upgraded)
IgnorePkg = package1 package2