pacman ist der Paketmanager von Arch Linux und seinen Derivaten. Anders als das apt/dpkg-Gespann unter Debian ist pacman ein eigenständiges Werkzeug - kein Frontend, das ein darunterliegendes Backend ansteuert. Klein, schnell, in C geschrieben. Die Bedienung wirkt auf den ersten Blick kryptisch, weil Operationen mit Großbuchstaben angegeben werden (-S, -R, -Q), folgt aber einer klaren inneren Logik.
Was pacman macht
pacman verwaltet die Software auf Arch-basierten Systemen: Pakete installieren, aktualisieren, entfernen, durchsuchen und Abhängigkeiten auflösen. Die Datenbank, die er dafür pflegt, liegt unter /var/lib/pacman/. Pakete kommen als komprimierte Archive (.pkg.tar.zst) und enthalten neben den Dateien auch Metadaten und Installations-Skripte.
Im Gegensatz zu Debian-Systemen, wo apt als Frontend über dpkg arbeitet, ist pacman beides in einem: niedrige Ebene (Paket entpacken, Datenbank führen) und hohe Ebene (Quellen synchronisieren, Abhängigkeiten lösen). Das macht ihn schlanker - aber auch weniger nachsichtig, wenn man Befehle falsch kombiniert.
Distros, die pacman nutzen
pacman wird in der gesamten Arch-Familie eingesetzt. Diese Distributionen folgen dem Rolling-Release-Modell: Es gibt keine festen Versionen, sondern einen kontinuierlichen Strom an Updates. Wer aktualisiert, bekommt immer den neuesten Stand.
| Distribution | Charakter | Zielgruppe |
|---|---|---|
| Arch Linux | Minimal, manuelle Installation, sehr aktuell | Power-User, Bastler |
| Manjaro | Arch-basiert, mit Installer und eigenen Repos | Einsteiger ins Arch-Universum |
| EndeavourOS | Arch nahe am Original, mit grafischem Installer | Mittelweg zwischen Arch und Manjaro |
| Garuda | Arch mit BTRFS-Snapshots und Gaming-Fokus | Gamer, Optik-Fans |
| ArcoLinux | Lehrorientierte Arch-Variante | Lernende, die Arch verstehen wollen |
Alle teilen sich denselben Paketmanager und größtenteils dieselben Repositories. Wer pacman beherrscht, ist auf jeder dieser Distributionen zu Hause.
Operationen-Buchstaben
pacman strukturiert seine Befehle über Operationen - jeweils ein Großbuchstabe, der den Modus festlegt. Zusaetzliche Optionen (Kleinbuchstaben) verfeinern das Verhalten innerhalb der Operation.
| Operation | Bedeutung | Beispiel |
|---|---|---|
-S | Sync - installieren oder aktualisieren aus Repos | pacman -S firefox |
-R | Remove - Paket entfernen | pacman -R firefox |
-Q | Query - lokale Datenbank abfragen | pacman -Q |
-U | Upgrade - Paket aus lokaler Datei installieren | pacman -U paket.pkg.tar.zst |
-D | Database - Datenbank-Operationen (Markierungen, Reparatur) | pacman -D --asexplicit |
-F | Files - durchsucht Datei-Datenbank der Repos | pacman -F /usr/bin/python |
-T | Test - prüft Abhängigkeiten | pacman -T glibc |
Das Schema ist konsequent: Jeder Befehl beginnt mit einer dieser Operationen. Wer das einmal verinnerlicht hat, liest pacman-Befehle praktisch von links nach rechts.
Wichtige Kombinationen
Die wahre Staerke von pacman liegt in der Kombination der Operationen mit kurzen Optionen. Die folgende Tabelle deckt den Alltag fast vollständig ab.
| Befehl | Was er tut |
|---|---|
pacman -Syu | Komplettes System-Update: Datenbank synchronisieren und alle Pakete aktualisieren |
pacman -S PAKET | Paket aus den Repos installieren |
pacman -Ss PATTERN | Repos nach Namen/Beschreibung durchsuchen |
pacman -Si PAKET | Detaillierte Info aus dem Repo (Version, Abhängigkeiten, Größe) |
pacman -Qi PAKET | Detaillierte Info zu einem lokal installierten Paket |
pacman -Ql PAKET | Listet alle Dateien, die ein installiertes Paket angelegt hat |
pacman -Qo /pfad | Welches Paket gehört zu der angegebenen Datei? |
pacman -Qdt | Orphans - Abhängigkeiten, die niemand mehr benötigt |
pacman -R PAKET | Paket entfernen, Konfigurationen und Deps bleiben |
pacman -Rns PAKET | Paket entfernen, plus Konfigurationen, plus unbenutzte Deps |
pacman -Sc | Cache aufraeumen - alte Paket-Archive löschen |
Die Buchstaben hinter -S lesen sich wie eine Mini-Sprache: y = sync database, u = upgrade, s = search, i = info, c = clean. Sobald du diese Bausteine kennst, kannst du Kombinationen ableiten, ohne in der Manpage nachzuschlagen.
Konfiguration
Die zentrale Konfigurationsdatei liegt unter /etc/pacman.conf. Dort werden Repositories aktiviert, Optionen wie Parallel-Downloads gesetzt und Ignorier-Listen verwaltet.
[options]
HoldPkg = pacman glibc
Architecture = auto
ParallelDownloads = 5
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlistDie wichtigsten Repositories:
[core]- Basis-Pakete für ein lauffähiges System (Kernel, Coreutils, pacman selbst)[extra]- Alles außerhalb des Kerns: Desktops, Anwendungen, Entwicklungswerkzeuge[multilib]- 32-Bit-Bibliotheken auf einem 64-Bit-System (z.B. für Steam und Wine)
Die Mirror-Liste mit den eigentlichen Server-URLs liegt unter /etc/pacman.d/mirrorlist. Welcher Mirror oben steht, beeinflusst die Download-Geschwindigkeit deutlich. Das Werkzeug reflector sortiert die Mirrors automatisch nach Geschwindigkeit und Aktualität.
sudo reflector --country Germany --latest 10 --sort rate \
--save /etc/pacman.d/mirrorlistAUR - Arch User Repository
Das AUR ist kein klassisches Repository mit fertigen Paketen, sondern eine Sammlung von Build-Rezepten - sogenannten PKGBUILDs. Jeder Eintrag ist ein kleines Shell-Skript, das beschreibt, wie ein Paket aus den Quellen oder aus einem fremden Binärpaket gebaut wird.
Der Workflow: PKGBUILD herunterladen, Inhalt prüfen, mit makepkg lokal ein .pkg.tar.zst erzeugen und mit pacman -U installieren. Der Komfort kommt durch AUR-Helfer wie yay oder paru, die diesen Prozess hinter einem einfachen Kommando verstecken.
yay -S spotifyWichtig zu wissen: AUR-Pakete sind user-contributed und werden von niemandem zentral geprüft. Das PKGBUILD entscheidet, welche Quellen heruntergeladen, welche Patches angewendet und welche Skripte ausgeführt werden - alles potenziell mit Root-Rechten während der Installation. Lies das PKGBUILD vor jeder Installation, besonders bei wenig populaeren oder neu hochgeladenen Paketen.
Praxis-Patterns
Die folgenden Muster decken den größten Teil des Arch-Alltags ab. Jeder Block enthält eine kurze Erläuterung dazu, wann und warum man ihn einsetzt.
Komplettes System-Update
sudo pacman -SyuDer Standard-Befehl für ein Rolling-Release-System: Die Repository-Datenbank wird synchronisiert (-Sy) und anschließend werden alle installierten Pakete auf den neuesten Stand gebracht (-u). Dieser Befehl sollte immer als Einheit laufen - niemals nur -Sy ohne -u (siehe Insights).
Paket suchen und installieren
pacman -Ss firefox
sudo pacman -S firefoxErst suchen, um den genauen Paketnamen zu finden, dann installieren. -Ss durchsucht Namen und Beschreibungen aller verfügbaren Pakete und liefert Treffer im Format repo/paketname version.
Orphans entfernen
sudo pacman -Rns $(pacman -Qdtq)pacman -Qdtq listet alle Pakete, die als Abhängigkeit installiert wurden, von keinem anderen Paket mehr benötigt werden und nicht explizit angefordert sind (-q gibt nur die Namen aus). Das Ergebnis wird an -Rns übergeben, das jedes davon mitsamt Konfiguration und unbenutzten Sub-Deps entfernt.
Welches Paket gehört zu einer Datei
pacman -Qo /usr/bin/pythonHilfreich beim Debuggen: Wenn du eine Datei findest und wissen willst, woher sie kommt. Funktioniert nur für installierte Pakete - für eine Datei aus einem nicht installierten Paket nimmst du pacman -F /pfad.
Cache reduzieren
sudo paccache -rpaccache (aus pacman-contrib) behält standardmäßig die letzten drei Versionen jedes Pakets im Cache und löscht alles ältere. Sicherer als pacman -Sc, weil ein Rollback auf eine vorherige Version möglich bleibt.
Nach Update: laufende Dienste neu starten
sudo lsof | grep deletedNach einem Update verweisen laufende Prozesse weiterhin auf die alten Bibliotheks-Dateien, die zwar entfernt, aber noch im Speicher gehalten werden ((deleted)). Der Befehl listet betroffene Prozesse - die zugehörigen Dienste sollten neu gestartet werden, damit sie die neuen Versionen laden. Komfortabler ist das Werkzeug needs-restart oder needrestart.
AUR-Paket mit yay
yay -S PAKETyay übernimmt PKGBUILD-Download, Build und Installation in einem Schritt. Es spiegelt grosse Teile der pacman-Syntax (auch -Syu aktualisiert offizielle Pakete und AUR-Pakete gemeinsam), so dass die Lernkurve flach bleibt.
Häufige Stolperfallen
Niemals -Sy ohne -u - die Partial-Upgrade-Falle.
Der gefährlichste Anfängerfehler unter Arch: sudo pacman -Sy paket. Damit wird die lokale Paket-Datenbank aktualisiert (-y), das angegebene Paket aber in der neuesten Version installiert, während alle anderen Pakete auf der alten Version bleiben. Da Arch ein Rolling Release ist und Pakete eng miteinander verzahnte Versionen erwarten, führt das oft zu fehlenden oder inkompatiblen Bibliotheks-Versionen - im schlimmsten Fall startet das System nicht mehr. Die Regel lautet: Vor jeder Installation ein vollständiges pacman -Syu, oder direkt sudo pacman -S paket ohne -y, wenn die Datenbank schon aktuell ist.
-Syyu mit zwei y - nur bei kaputten Mirrors.
Ein einzelnes -y aktualisiert die lokale Datenbank nur, wenn der Server eine neuere Version meldet. Bei defekten oder veralteten Mirrors hilft -yy: Es erzwingt einen kompletten Neu-Download der Datenbank, auch wenn die lokale gleich aktuell wirkt. Nützlich nach Mirror-Wechseln oder bei mysterioesen Hash-Fehlern - aber kein Standard-Befehl. Wer -Syyu als Routine schreibt, belastet die Mirrors unnötig.
Rolling Release heißt: regelmäßig updaten oder Konflikte ernten.
Arch ist nicht für Wochen ohne Updates gedacht. Wer sechs Monate liegen laesst und dann pacman -Syu startet, trifft mit hoher Wahrscheinlichkeit auf Schluessel-Probleme, manuelle Eingriffe (siehe archlinux-keyring) und brückende Änderungen, die in den News standen. Auf der Arch-Startseite werden diese manual interventions angekuendigt. Wer regelmäßig - etwa woechentlich - aktualisiert, bekommt kleine, schmerzfreie Updates.
--noconfirm in Skripten ist gefährlich.
Die Option —noconfirm überspringt jede Bestätigung. In Skripten verlockend, aber pacman fragt aus gutem Grund: Wenn ein Update zentrale Pakete entfernen will (etwa weil sich eine Abhängigkeit umbenannt hat), klickt —noconfirm einfach auf Ja. Im Worst Case löscht das Skript Pakete, die das System zum Booten braucht. Wenn überhaupt, dann gezielt für einzelne, gut bekannte Paket-Installationen - niemals für ein -Syu über alle Pakete.
AUR-Pakete sind ungeprüft - PKGBUILD lesen.
Das AUR ist eine offene Plattform: Jeder Nutzer kann PKGBUILDs hochladen, niemand prüft sie zentral. Pakete können Quellen aus beliebigen URLs ziehen, beliebige Skripte mit Build-Rechten ausführen und beim Install-Hook Root-Rechte nutzen. AUR-Helfer wie yay zeigen das PKGBUILD vor dem Bauen an - lies es, gerade bei selten heruntergeladenen Paketen. Achte auf seltsame URLs, Patches aus fremden Repos und Hooks, die in /etc oder Systemd-Dienste schreiben.
.pacnew und .pacsave - Konfigurationen manuell mergen.
Wenn ein Update eine Konfigurationsdatei ändern würde, die du lokal angepasst hast, schreibt pacman die neue Version als .pacnew daneben - deine Änderung bleibt aktiv, die neuen Defaults liegen ungenutzt. Beim Entfernen eines Pakets, dessen Config du verändert hast, wird sie als .pacsave gesichert. Beide müssen manuell verglichen und gemerged werden, sonst laeufst du irgendwann mit einer veralteten Konfiguration. Das Werkzeug pacdiff (aus pacman-contrib) findet diese Dateien und bietet einen interaktiven Merge.
pacman macht keine Snapshots - Rollbacks brauchen BTRFS oder Timeshift.
pacman selbst kennt kein “Update zurückrollen”. Theoretisch kannst du eine alte Paket-Version aus dem Cache mit pacman -U wieder installieren, aber das hilft nicht bei systemweiten Änderungen oder Konfigurationen. Wer ein echtes Sicherheitsnetz will, verwendet BTRFS-Snapshots (Garuda macht das automatisch über Snapper) oder Timeshift. Vor größeren Updates: Snapshot anlegen, dann updaten. Geht etwas schief, ist der vorherige Zustand mit einem Boot-Eintrag zurück.
Weiterführende Ressourcen
Externe Quellen
- pacman(8) - Manpage - Vollständige Operationen und Optionen
- Arch Wiki: pacman - Tiefenreferenz mit Tipps, FAQ und Troubleshooting
- Arch Wiki: Arch User Repository - Wie das AUR funktioniert und sicher genutzt wird
- pacman-contrib (paccache, pacdiff) - Hilfswerkzeuge rund um pacman
- yay - AUR-Helfer - Repository und Dokumentation zum populaeren Helfer
Verwandte Artikel
- apt - Paketmanager für Debian und Ubuntu - Das Pendant in der Debian-Welt
- dnf - Paketmanager für Fedora und RHEL - RPM-basierte Alternative
- Paket-Quellen verstehen - Repositories, Mirrors, Signaturen
- Kompilieren aus Quellen - Wenn das Paket nirgends fertig liegt
- Distributionen im Vergleich - Welche Distro setzt auf welchen Paketmanager