Arch Linux: Der umfassende Leitfaden zum Paketmanager Pacman

Vollständiger Praxis-Guide zu Pacman: Repository-Konfiguration, Sync, Installation, sauberes Entfernen, Abhängigkeitsbäume, ALPM-Hooks und Troubleshooting.

Lesezeit: 35 min

pacman (Package Manager) ist das zentrale Werkzeug und Herzstück jeder Arch-Linux-Installation. Entwickelt von Judd Vinet, kombiniert Pacman ein einfaches Binärpaketformat mit einem deklarativen, schnellen Abhängigkeitsmanagement über die Bibliothek libalpm (Arch Linux Package Management).

Pacman unterscheidet sich grundlegend von dpkg/apt oder rpm/dnf: Anstatt komplexe Pre- und Post-Installationsskripte beliebig tief zu verschachteln, setzt Pacman auf vorkompilierte tar.zst-Archive, strikte Metadaten und deklarative ALPM-Hooks. Die Administration ist direkt, transparent und extrem performant.

Dieser Leitfaden ist Teil unserer Arch-Linux-Serie und führt dich durch sämtliche Facetten von Pacman: von der Konfiguration in /etc/pacman.conf über grundlegende Operationen (Sync, Search, Install, Remove) bis hin zu fortgeschrittenen Themen wie ALPM-Hooks, Abhängigkeitsbäumen mit pactree, GPG-Schlüsselbundverwaltung und gezieltem Troubleshooting bei Paketkonflikten.

💡 Voraussetzungen: Ein lauffähiges Arch-Linux-System mit Sudo-Berechtigung sowie grundlegende Vertrautheit mit dem Linux-Terminal.

Die Pacman- und ALPM-Architektur

Pacman teilt seine Aufgaben in klar definierte Schichten auf:


┌─────────────────────────────────────────────────────────────┐
│ PACMAN & LIBALPM ARCHITEKTUR                                │
├─────────────────────────────────────────────────────────────┤
│ 1. KONFIGURATION: /etc/pacman.conf & /etc/pacman.d/         │
│ 2. DATENBANKEN:   /var/lib/pacman/sync/ (core, extra, multi)│
│ 3. CACHE:         /var/cache/pacman/pkg/ (*.pkg.tar.zst)    │
│ 4. HOOKS:         /etc/pacman.d/hooks/ & /usr/share/libalpm/│
│ 5. GPG-SCHLÜSSEL: /etc/pacman.d/gnupg/ (pacman-key)         │
└─────────────────────────────────────────────────────────────┘

1. Konfiguration in /etc/pacman.conf

Die globale Steuerung von Pacman erfolgt über die Datei /etc/pacman.conf. Hier werden globale Optionen, Farbausgaben, Download-Parameter und die aktiven Repositories definiert.

Öffne die Datei zur Einsicht oder Bearbeitung:


sudo nano /etc/pacman.conf

Empfohlene globale Optionen


[options]
# Verhindert das versehentliche Entfernen überlebenswichtiger Kernpakete
HoldPkg     = pacman glibc

# Prüft vor Transaktionen, ob genügend Speicherplatz auf Zielpartitionen frei ist
CheckSpace

# Aktiviert farbige Terminalausgaben und den Pacman-Fortschrittsbalken
Color
ILoveCandy

# Parallele Downloads aktivieren (massiver Geschwindigkeitsvorteil)
ParallelDownloads = 5

# Strikte Signaturprüfung für maximale Sicherheit
SigLevel           = Required DatabaseOptional
LocalFileSigLevel  = Optional
  • ParallelDownloads = 5: Lädt bis zu 5 Pakete gleichzeitig herunter, was Systemupdates drastisch beschleunigt.
  • ILoveCandy: Ein beliebtes visuelles Easter Egg, das den Standard-Fortschrittsbalken in eine animierte Pacman-Animation verwandelt.
  • CheckSpace: Berechnet vorab den Plattenplatzbedarf aller Zielmounts und bricht Transaktionen bei Speichermangel sicher ab.

Offizielle Repositories

Arch Linux strukturiert seine Software in klar getrennte offizielle Repositories:


# Das Fundament: Kernel, Init-System, Basis-Tools, Compiler
[core]
Include = /etc/pacman.d/mirrorlist

# Alle weiteren offiziellen Anwendungen: Desktop-Umgebungen, Browser, Server-Dienste
[extra]
Include = /etc/pacman.d/mirrorlist

# 32-Bit-Bibliotheken für 64-Bit-Systeme (z. B. für Steam, Wine, 32-Bit-Treiber)
[multilib]
Include = /etc/pacman.d/mirrorlist

💡 Hinweis zum [community]-Repository: Bis Mai 2023 existierte ein separates [community]-Repository. Arch Linux hat die Repository-Struktur konsolidiert und alle Community-Pakete vollständig in [extra] integriert. Der Eintrag [community] wird in modernen Installationen nicht mehr benötigt.

Mirrorlist optimieren mit reflector

Die Datei /etc/pacman.d/mirrorlist steuert, von welchen Servern Pacman Pakete lädt. Eine geographisch nahe und aktuelle Mirrorliste verhindert langsame Downloads:


# reflector installieren
sudo pacman -S reflector

# Top 10 deutsche HTTPS-Mirrors generieren
sudo reflector --country Germany --latest 10 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

2. Grundlegende Operationen: Die Hauptmodi

Pacman steuert seine Hauptoperationen über Großbuchstaben-Flags:

  • -S (Sync): Pakete aus Remote-Repositories suchen, herunterladen, installieren und aktualisieren.
  • -R (Remove): Installierte Pakete und Abhängigkeiten entfernen.
  • -Q (Query): Die lokale Paketdatenbank nach installierten Paketen und Dateien durchsuchen.
  • -F (Files): Dateien in Remote-Repositories suchen (Dateizuordnung).
  • -D (Database): Metadaten installierter Pakete modifizieren (z. B. Installationsgrund).

Paketdatenbanken synchronisieren und Upgrades durchführen


# Vollständiges Systemupdate (Sync + Refresh + Upgrade)
sudo pacman -Syu

# Falls Repositories gewechselt wurden oder der Cache desynchronisiert ist:
sudo pacman -Syyu

⚠️ Niemals pacman -Sy ohne -u nutzen: Das isolierte Synchronisieren der Datenbank (-Sy) gefolgt von der Installation eines einzelnen Pakets (-S <paket>) führt zu einem Partial Upgrade. Da neuere Bibliotheken installiert werden, während das restliche System veraltet bleibt, brechen bestehende Binaries (Shared Library Mismatch).

Sichere Update-Prüfung ohne Root-Rechte: checkupdates

Um zu prüfen, ob Aktualisierungen bereitstehen, ohne die lokale Systemdatenbank zu synchronisieren, verwende checkupdates aus dem Paket pacman-contrib:


# Prüft remote auf verfügbare Updates (sicher für Skripte und Statusleisten)
checkupdates

3. Pakete suchen und analysieren

Remote-Repositories durchsuchen (-S)


# Nach Paketen im Namen oder der Beschreibung suchen
pacman -Ss nginx

# Detaillierte Remote-Paketinformationen vor der Installation anzeigen
pacman -Si nginx

Beispielausgabe von pacman -Si nginx:


Repository      : extra
Name            : nginx
Version         : 1.26.1-1
Beschreibung    : Lightweight HTTP server and IMAP/POP3 proxy server
Architektur     : x86_64
URL             : https://nginx.org
Lizenzen        : BSD-2-Clause
Gruppen         : Nichts
Stellt bereit   : http-server
Hängt ab von    : pcre2  zlib  openssl  geoip  mailcap
Optionale Abh.  : Nichts
Konflikt mit    : Nichts
Ersetzt         : Nichts
Größe des Downloads: 540,22 KiB
Installationsgröße: 1,68 MiB
Packer          : Arch Linux Package Maintainers
Erstellt am     : Di 23 Jul 2024 14:10:00 CEST

Lokale Datenbank abfragen (-Q)


# Alle manuell und explizit installierten Pakete auflisten
pacman -Qe

# Alle als Abhängigkeit installierten Pakete auflisten
pacman -Qd

# Detaillierte Informationen zu einem bereits installierten Paket anzeigen
pacman -Qi nginx

# Alle Dateien auflisten, die zu einem installierten Paket gehören
pacman -Ql nginx

# Herausfinden, welches Paket eine bestimmte Datei auf der Festplatte bereitstellt
pacman -Qo /usr/bin/htop
# Ausgabe: /usr/bin/htop wird von htop 3.3.0-1 bereitgestellt

Abhängigkeitsbäume visualisieren mit pactree

Um die exakte Abhängigkeitshierarchie eines Pakets zu analysieren:


# pacman-contrib liefert pactree
pactree nginx

# Umgekehrter Baum: Welche installierten Pakete hängen von openssl ab?
pactree -r openssl

4. Installation und gezieltes Entfernen

Pakete installieren


# Einzelnes oder mehrere Pakete installieren
sudo pacman -S htop neovim git

# Paket nur herunterladen, aber nicht entpacken/installieren
sudo pacman -Sw wireshark-qt

# Lokale oder manuell gebaute Paketdatei (*.pkg.tar.zst) installieren
sudo pacman -U /pfad/zu/paket-1.0-1-x86_64.pkg.tar.zst

Pakete sauber und rückstandsfrei entfernen

Beim Entfernen von Software ist es entscheidend, verwaiste Abhängigkeiten und ungenutzte Konfigurationsdateien nicht auf dem System zu hinterlassen:


# Standard-Entfernung (Hinterlässt Abhängigkeiten und Konfigurationen)
sudo pacman -R paketname

# BEST PRACTICE: Entfernt das Paket, dessen ungenutzte Abhängigkeiten (-s) 
# und globale Konfigurationsdateien (-n)
sudo pacman -Rns paketname
  • -s (Recursive): Entfernt alle Abhängigkeiten, die von keinem anderen installierten Paket mehr benötigt werden.
  • -n (NoSave): Löscht auch Konfigurationsdateien, anstatt .pacsave-Dateien anzulegen.

Installationsgrund ändern: --asdeps und --asexplicit

Wenn du ein Paket manuell installiert hast, das eigentlich nur eine temporäre Abhängigkeit ist (oder umgekehrt), kannst du den Status nachträglich korrigieren:


# Paket als Abhängigkeit markieren (wird bei Bereinigung als Orphan erkannt)
sudo pacman -D --asdeps libxml2

# Paket als explizit vom Administrator gewollt markieren
sudo pacman -D --asexplicit neovim

5. Systemwartung: Orphans, Cache & ALPM-Hooks

Verwaiste Pakete (Orphans) bereinigen

Orphans sind Pakete, die als Abhängigkeit installiert wurden, deren übergeordnetes Hauptprogramm aber inzwischen deinstalliert wurde:


# Alle verwaisten Pakete auflisten
pacman -Qtdq

# Alle verwaisten Pakete restlos entfernen
sudo pacman -Rns $(pacman -Qtdq)

Paket-Cache automatisiert verwalten mit paccache

Pacman behält alle heruntergeladenen Pakete in /var/cache/pacman/pkg/. Um Speicherplatz zu sparen, aber im Notfall eine Version zurückrollen zu können (Downgrade):


# Behalte die letzten 2 Versionen jedes Pakets
sudo paccache -r -k 2

# Entferne alle Versionen deinstallierter Pakete
sudo paccache -ruk0

# systemd-Timer für wöchentliche Bereinigung aktivieren
sudo systemctl enable --now paccache.timer

ALPM Transaktions-Hooks verstehen und erstellen

Pacman führt bei Transaktionen (Install, Upgrade, Remove) sogenannte ALPM-Hooks aus. System-Hooks liegen unter /usr/share/libalpm/hooks/, eigene Administrator-Hooks unter /etc/pacman.d/hooks/.

Beispiel: Automatischer Sicherheits-Audit mit arch-audit nach jedem Upgrade in /etc/pacman.d/hooks/90-arch-audit.hook:


[Trigger]
Operation = Install
Operation = Upgrade
Operation = Remove
Type = Package
Target = *

[Action]
Description = Prüfe installierte Pakete auf bekannte CVE-Schwachstellen...
When = PostTransaction
Exec = /usr/bin/arch-audit

6. GPG-Schlüsselbund & Troubleshooting

Fehler: "Ungültige oder beschädigte Paket-Signatur"

Tritt ein Signaturfehler auf, ist meist der lokale Arch-Schlüsselbund veraltet oder desynchronisiert:


# 1. Schlüsselbund aktualisieren
sudo pacman -Sy archlinux-keyring

# 2. Falls Schlüsselbund korrupt ist: Neu initialisieren
sudo rm -rf /etc/pacman.d/gnupg
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --refresh-keys

Fehler: "Fehler beim Sperren der Datenbank (db.lck)"

Wenn Pacman während einer Transaktion abbricht (z. B. durch Stromausfall oder Ctrl+C), bleibt die Sperrdatei /var/lib/pacman/db.lck bestehen.


# Prüfe zuerst, ob wirklich kein anderer Pacman-Prozess mehr läuft
pgrep -l pacman

# Falls kein Prozess aktiv ist: Lockfile sicher entfernen
sudo rm /var/lib/pacman/db.lck

Fehler: "Dateikonflikt: /usr/lib/... existiert im Dateisystem"

Wenn eine Datei existiert, die laut Datenbank zu keinem Paket gehört (z. B. durch frühere manuelle make install-Aufrufe):


# 1. Prüfen, wem die Datei gehört
pacman -Qo /pfad/zur/datei

# 2. Falls die Datei verwaist ist, Backup erstellen und überschreiben
sudo pacman -Syu --overwrite "/pfad/zur/datei"

Befehlsreferenz (Cheatsheet)

Aufgabe Befehl
System aktualisieren sudo pacman -Syu
Paket suchen pacman -Ss <suchbegriff>
Paketinfo (Remote) pacman -Si <paket>
Paket installieren sudo pacman -S <paket>
Paket rückstandsfrei löschen sudo pacman -Rns <paket>
Lokales Paket installieren sudo pacman -U <datei.pkg.tar.zst>
Dateibesitzer ermitteln pacman -Qo /pfad/zur/datei
Paketdateien auflisten pacman -Ql <paket>
Orphans entfernen sudo pacman -Rns $(pacman -Qtdq)
Cache bereinigen sudo paccache -r -k 2
Updates sicher prüfen checkupdates

Weiterführende Ressourcen

Arch Linux Installation und Grundkonfiguration Arch Linux: Best Practices und Tipps zur Systempflege Arch Linux: Systemhärtung und Sicherheit – Best Practices Arch Linux: Fortgeschrittene Sicherheitsfeatures und Wartung Offizielles Arch Wiki: Pacman Dokumentation Arch Wiki: Pacman Tipps und Tricks

Fazit

Der Paketmanager pacman ist das zentrale Nervensystem von Arch Linux. Wer seine Mechanismen, Flags und Konfigurationsoptionen beherrscht, besitzt das wichtigste Werkzeug, um ein Rolling-Release-System dauerhaft stabil, schlank und performant zu betreiben.

In diesem ersten Teil unserer Serie haben wir gelernt, warum Teil-Upgrades (Partial Upgrades) vermieden werden müssen, wie Signaturschlüssel über pacman-key verwaltet werden und wie verwaiste Abhängigkeiten und Paket-Caches sauber bereinigt werden. Mit diesem Rüstzeug bist du in der Lage, Paketkonflikte souverän zu lösen und dein System in einem optimalen Zustand zu halten.

💡 Praxis-Tipp: Nutze vor jedem System-Upgrade checkupdates, um anstehende Aktualisierungen risikofrei zu prüfen, und halte immer mindestens zwei Vorversionen im Cache, um im Notfall per pacman -U ein schnelles Downgrade durchführen zu können.

Im nächsten Artikel unserer Serie nutzen wir dieses Wissen für den Ernstfall: In Arch Linux Installation und Grundkonfiguration bauen wir ein vollständiges System von Grund auf auf – inklusive UEFI, BTRFS-Subvolumes, Festplattenverschlüsselung und Basis-Netzwerkkonfiguration.

Teilen & Export

Als Markdown exportieren