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.

💡 Hinweis: Die technischen Inhalte, Empfehlungen und Architekturen in diesem Artikel basieren auf unserer eigenen Praxiserfahrung. Zur Unterstützung nutzen wir Künstliche Intelligenz für Lektorat und Formatierung, um rohe Gedanken in einen lesbaren Stil zu überführen.

Teilen & Export

Als Markdown exportieren