Skip to content

Pacman Package Manager

Comprehensive Pacman commands and workflows for Arch Linux package management.

Installation & Updates

Basic Package Operations

CommandDescription
sudo pacman -SyuUpdate system (sync + upgrade)
sudo pacman -S package_nameInstall package
sudo pacman -R package_nameRemove package
sudo pacman -Rs package_nameRemove package and dependencies
sudo pacman -Rns package_nameRemove package, deps, and config
sudo pacman -U package.pkg.tar.xzInstall local package

Advanced Installation

CommandDescription
sudo pacman -S package1 package2Install multiple packages
sudo pacman -S --needed package_nameInstall only if not installed
sudo pacman -S --asdeps package_nameInstall as dependency
sudo pacman -D --asdeps package_nameMark as dependency
sudo pacman -D --asexplicit package_nameMark as explicitly installed

Package Information

Search and Information

CommandDescription
pacman -Ss keywordSearch for packages
pacman -Si package_nameShow package information
pacman -QList installed packages
pacman -Qs keywordSearch installed packages
pacman -Qi package_nameShow installed package info
pacman -Ql package_nameList package files
pacman -Qo /path/to/fileFind package owning file

Package Dependencies

CommandDescription
pacman -Qi package_name | grep DependsShow dependencies
pacman -Qii package_nameShow detailed package info
pactree package_nameShow dependency tree
pactree -r package_nameShow reverse dependencies

System Maintenance

Cleanup Operations

CommandDescription
sudo pacman -ScClean package cache
sudo pacman -SccClean all cache
sudo pacman -Rns $(pacman -Qtdq)Remove orphaned packages
sudo pacman -Qqd | pacman -Rsu -Remove unused dependencies

Database Operations

CommandDescription
sudo pacman -SySync package database
sudo pacman -SyyForce sync database
sudo pacman-db-upgradeUpgrade package database

AUR (Arch User Repository)

AUR Helpers

CommandDescription
yay -S package_nameInstall AUR package (yay)
yay -SyuUpdate system including AUR
yay -Ss keywordSearch AUR packages
paru -S package_nameInstall AUR package (paru)

Manual AUR Installation

bash
# Clone AUR package
git clone https://aur.archlinux.org/package_name.git
cd package_name

# Review PKGBUILD
cat PKGBUILD

# Build and install
makepkg -si

Configuration Files

Pacman Configuration

FileDescription
/etc/pacman.confMain configuration
/etc/pacman.d/mirrorlistMirror list
/var/log/pacman.logPackage log
/var/lib/pacman/local/Local package database

Example pacman.conf

ini
[options]
HoldPkg     = pacman glibc
Architecture = auto
Color
CheckSpace
VerbosePkgLists
ParallelDownloads = 5

[core]
Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

[community]
Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist

Mirror Management

Reflector (Mirror Optimization)

CommandDescription
sudo reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlistUpdate mirrorlist
sudo reflector --country 'United States' --latest 10 --sort rate --save /etc/pacman.d/mirrorlistCountry-specific mirrors

Manual Mirror Selection

bash
# Backup current mirrorlist
sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup

# Edit mirrorlist
sudo nano /etc/pacman.d/mirrorlist

# Test mirrors
sudo pacman -Syy

Package Groups

Group Operations

CommandDescription
pacman -SgList all groups
pacman -Sg group_nameList packages in group
sudo pacman -S group_nameInstall package group
sudo pacman -S --needed group_nameInstall missing group packages

Common Groups

GroupDescription
baseBase system packages
base-develDevelopment tools
gnomeGNOME desktop environment
kde-applicationsKDE applications
xorgX Window System

Advanced Usage

Package Verification

CommandDescription
sudo pacman -QkCheck all packages
sudo pacman -QkkThorough check
sudo pacman -Qk package_nameCheck specific package

Downgrading Packages

CommandDescription
sudo pacman -U /var/cache/pacman/pkg/package-version.pkg.tar.xzDowngrade from cache
downgrade package_nameDowngrade using downgrade tool

Hooks and Scripts

bash
# /etc/pacman.d/hooks/example.hook
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = *

[Action]
Description = Running custom script...
When = PostTransaction
Exec = /usr/local/bin/custom-script.sh

Troubleshooting

Common Issues

ProblemSolution
Conflicting filessudo pacman -S --overwrite glob package
Corrupted packagesudo pacman -S --force package
Key issuessudo pacman-key --refresh-keys
Database locksudo rm /var/lib/pacman/db.lck

Package Conflicts

CommandDescription
sudo pacman -Rdd package_nameRemove without checking deps
sudo pacman -S --force package_nameForce installation
sudo pacman -Syu --ignore package_nameIgnore package during upgrade

Key Management

CommandDescription
sudo pacman-key --initInitialize keyring
sudo pacman-key --populate archlinuxPopulate Arch keys
sudo pacman-key --refresh-keysRefresh all keys
sudo pacman-key --recv-keys KEYIDReceive specific key

Performance Optimization

Parallel Downloads

ini
# /etc/pacman.conf
[options]
ParallelDownloads = 5

Fastest Mirrors

bash
# Install reflector
sudo pacman -S reflector

# Auto-update mirrors weekly
sudo systemctl enable reflector.timer

SSD Optimization

ini
# /etc/pacman.conf
[options]
NoExtract = usr/share/doc/*
NoExtract = usr/share/man/*
NoExtract = usr/share/info/*

Backup and Recovery

Package List Backup

bash
# Create package list
pacman -Qqe > pkglist.txt

# Restore packages
sudo pacman -S --needed - < pkglist.txt

System Snapshot

bash
# Create system backup
sudo rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /backup/

# Package cache backup
sudo cp -r /var/cache/pacman/pkg/ /backup/pacman-cache/

Best Practices

Security

  1. Regular Updates: Keep system updated with sudo pacman -Syu
  2. Key Verification: Maintain updated package signing keys
  3. AUR Caution: Review PKGBUILDs before building AUR packages
  4. Minimal Installation: Install only necessary packages
  5. Backup: Regular system and package list backups

Performance

  1. Mirror Optimization: Use fastest mirrors with reflector
  2. Parallel Downloads: Enable parallel downloads
  3. Cache Management: Regular cache cleanup
  4. SSD Optimization: Exclude unnecessary files
  5. Database Optimization: Keep package database clean

Maintenance

  1. Orphan Cleanup: Regular removal of orphaned packages
  2. Log Monitoring: Check pacman logs for issues
  3. Dependency Health: Monitor package dependencies
  4. Mirror Health: Verify mirror accessibility
  5. System Consistency: Regular package verification