Erste Schritte mit Pacman-Befehlen in Arch-basierten Linux-Distributionen

Kurz: Dieses Anfängerhandbuch zeigt Ihnen, was Sie mit pacman-Befehlen in Linux tun können, wie Sie sie verwenden, um neue Pakete zu finden, neue Pakete zu installieren und zu aktualisieren und Ihr System zu bereinigen.

Der pacman Paketmanager ist einer der Hauptunterschiede zwischen Arch Linux und andere große Distributionen wie Red Hat und Ubuntu/Debian. Es kombiniert ein einfaches Binärpaketformat mit einem benutzerfreundlichen Build-System. Das Ziel von pacman ist die einfache Verwaltung von Paketen, entweder von der offizielle Repositorys oder die eigenen Builds des Benutzers.

Wenn Sie jemals Ubuntu- oder Debian-basierte Distributionen verwendet haben, haben Sie möglicherweise die Befehle apt-get oder apt verwendet. Pacman ist das Äquivalent in Arch Linux. Wenn Sie Arch Linux gerade installiert haben, ist eines der ersten Dinge, die Sie nach der Installation von Arch Linux tun müssen, die Verwendung von Pacman-Befehlen zu lernen.

In diesem Anfängerhandbuch erkläre ich einige der wesentlichen Verwendungen des Befehls pacmand, die Sie für die Verwaltung Ihres Arch-basierten Systems kennen sollten.

Grundlegende Pacman-Befehle, die Arch Linux-Benutzer kennen sollten

Wie andere Paketmanager kann pacman Paketlisten mit den Software-Repositorys synchronisieren, damit der Benutzer Pakete mit einem einfachen Befehl herunterladen und installieren kann, indem alle erforderlichen Abhängigkeiten gelöst werden.

Pakete mit pacman installieren

Sie können ein einzelnes Paket oder mehrere Pakete mit dem Befehl pacman auf diese Weise installieren:

pacman -S _package_name1_ _package_name2_ ...

Paket installieren

Das -S steht für Synchronisation. Das bedeutet, dass sich Pacman zuerst synchronisiert

Die pacman-Datenbank kategorisiert die installierten Pakete nach dem Grund ihrer Installation in zwei Gruppen:

  • explizit installiert: die Pakete, die mit einem generischen pacman-Befehl -S oder -U installiert wurden
  • Abhängigkeiten: die Pakete, die implizit installiert wurden, weil erforderlich durch ein anderes Paket, das explizit installiert wurde.

Ein installiertes Paket entfernen

So entfernen Sie ein einzelnes Paket und lassen alle seine Abhängigkeiten installiert:

pacman -R package_name_

Entfernen eines Pakets

So entfernen Sie ein Paket und seine Abhängigkeiten, die von keinem anderen installierten Paket benötigt werden:

pacman -Rs _package_name_

Um nicht mehr benötigte Abhängigkeiten zu entfernen. Für example, das Paket, das die Abhängigkeiten benötigte, wurde entfernt.

pacman -Qdtq | pacman -Rs -

Upgrade-Pakete

Pacman bietet eine einfache Möglichkeit, Arch Linux zu aktualisieren. Sie können alle installierten Pakete mit nur einem Befehl aktualisieren. Dies kann eine Weile dauern, je nachdem, wie aktuell das System ist.

Der folgende Befehl synchronisiert die Repository-Datenbanken und aktualisiert die Pakete des Systems, mit Ausnahme von „lokalen“ Paketen, die sich nicht in den konfigurierten Repositorys befinden:

pacman -Syu
  • S steht für Sync
  • y ist für die Aktualisierung (lokaler Cache)
  • du bist für systemupdate

Im Grunde bedeutet es, dass Sie mit dem zentralen Repository (Master-Paketdatenbank) synchronisieren, die lokale Kopie der Master-Paketdatenbank aktualisieren und dann das Systemupdate durchführen (indem Sie alle Pakete aktualisieren, für die eine neuere Version verfügbar ist).

Systemupdate

Aufmerksamkeit!

Wenn Sie ein Arch Linux-Benutzer sind, bevor Sie das Upgrade durchführen, wird empfohlen, die Website zu besuchen Arch Linux-Homepage um die neuesten Nachrichten auf ungewöhnliche Updates zu überprüfen. Wenn ein manueller Eingriff erforderlich ist, wird ein entsprechender Nachrichtenbeitrag erstellt. Alternativ können Sie die abonnieren RSS-Feed oder der arch-announce-Mailingliste.

Achten Sie auch auf die entsprechenden Forum bevor Sie grundlegende Software (wie den Kernel, xorg, systemd oder glibc) auf alle gemeldeten Probleme aktualisieren.

Teilupgrades werden nicht unterstützt bei einer Rolling-Release-Distribution wie Arch und Manjaro. Das heißt, wenn neue Bibliotheksversionen an die Repositorys gepusht werden, müssen alle Pakete in den Repositorys für die Bibliotheken neu erstellt werden. Für example, wenn zwei Pakete von derselben Bibliothek abhängen, kann die Aktualisierung nur eines Pakets das andere Paket beschädigen, das von einer älteren Version der Bibliothek abhängt.

Verwenden Sie pacman, um nach Paketen zu suchen

Pacman fragt die lokale Paketdatenbank mit dem Flag -Q, die Sync-Datenbank mit dem Flag -S und die Dateidatenbank mit dem Flag -F ab.

Pacman kann in der Datenbank nach Paketen suchen, sowohl in den Paketnamen als auch in den Beschreibungen:

pacman -Ss _string1_ _string2_ ...

Suche nach einem Paket

So suchen Sie nach bereits installierten Paketen:

pacman -Qs _string1_ _string2_ ...

So suchen Sie nach Paketdateinamen in Remotepaketen:

pacman -F _string1_ _string2_ ...

So zeigen Sie den Abhängigkeitsbaum eines Pakets an:

pactree _package_naenter code hereme_

Paketcache bereinigen

Pacman speichert seine heruntergeladenen Pakete in /var/cache/pacman/pkg/ und entfernt die alten oder deinstallierten Versionen nicht automatisch. Dies hat einige Vorteile:

  1. Es erlaubt Herabstufung ein Paket, ohne dass die vorherige Version über andere Quellen abgerufen werden muss.
  2. Ein deinstalliertes Paket kann problemlos direkt aus dem Cache-Ordner neu installiert werden.

Es ist jedoch erforderlich, den Cache regelmäßig zu bereinigen, um zu verhindern, dass der Ordner größer wird.

Der Pacache (8) Skript, bereitgestellt innerhalb der pacman-Beitrag Paket, löscht standardmäßig alle zwischengespeicherten Versionen installierter und deinstallierter Pakete, mit Ausnahme der neuesten 3:

paccache -r

Cache leeren

Um alle zwischengespeicherten Pakete, die derzeit nicht installiert sind, und die nicht verwendete Synchronisierungsdatenbank zu entfernen, führen Sie Folgendes aus:

pacman -Sc

Um alle Dateien aus dem Cache zu entfernen, verwenden Sie zweimal den Clean-Schalter. Dies ist der aggressivste Ansatz und hinterlässt nichts im Cache-Ordner:

pacman -Scc

Lokale Pakete oder Pakete von Drittanbietern installieren

Installieren Sie ein ‘lokales’ Paket, das nicht aus einem Remote-Repository stammt:

pacman -U _/path/to/package/package_name-version.pkg.tar.xz_

Installieren Sie ein ‘Remote’-Paket, das nicht in einem offiziellen Repository enthalten ist:

pacman -U https://www.example.com/repo/example.pkg.tar.xz

Bonus: Behebung häufiger Fehler mit pacman

Hier sind einige häufige Fehler, die beim Verwalten von Paketen mit pacman auftreten können.

Transaktion konnte nicht festgeschrieben werden (in Konflikt stehende Dateien)

Wenn Sie den folgenden Fehler sehen:

error: could not prepare transaction
error: failed to commit transaction (conflicting files)
package: /path/to/file exists in filesystem
Errors occurred, no packages were upgraded.

Dies geschieht, weil pacman einen Dateikonflikt erkannt hat und keine Dateien für Sie überschreibt.

Ein sicherer Weg, dies zu lösen, besteht darin, zuerst zu überprüfen, ob ein anderes Paket die Datei besitzt (pacman -Qo /path/to/file). Wenn die Datei einem anderen Paket gehört, reichen Sie einen Fehlerbericht ein. Wenn die Datei keinem anderen Paket gehört, benennen Sie die Datei, die im Dateisystem existiert, um und geben Sie den Update-Befehl erneut aus. Wenn alles gut geht, kann die Datei dann entfernt werden.

Anstatt alle Dateien, die zu dem betreffenden Paket gehören, manuell umzubenennen und später zu entfernen, können Sie auch explizit ausführen pacman -S –Glob-Paket überschreiben um Pacman zu zwingen, Dateien zu überschreiben, die mit glob übereinstimmen.

Transaktion konnte nicht festgeschrieben werden (ungültiges oder beschädigtes Paket)

Suchen Sie nach .part-Dateien (teilweise heruntergeladene Pakete) in /var/cache/pacman/pkg/ und entfernen Sie sie. Es wird oft durch die Verwendung eines benutzerdefinierten XferCommand in pacman.conf verursacht.

Transaktion konnte nicht initiiert werden (Datenbank kann nicht gesperrt werden)

Wenn pacman die Paketdatenbank ändern will, z example Beim Installieren eines Pakets wird eine Sperrdatei unter /var/lib/pacman/db.lck erstellt. Dadurch wird verhindert, dass eine andere Instanz von pacman gleichzeitig versucht, die Paketdatenbank zu ändern.

Wenn pacman beim Ändern der Datenbank unterbrochen wird, kann diese veraltete Sperrdatei bestehen bleiben. Wenn Sie sicher sind, dass keine Instanzen von pacman ausgeführt werden, löschen Sie die Sperrdatei.

Prüfen Sie, ob ein Prozess die Sperrdatei hält:

lsof /var/lib/pacman/db.lck

Wenn der obige Befehl nichts zurückgibt, können Sie die Sperrdatei entfernen:

rm /var/lib/pacman/db.lck

Wenn Sie die PID des Prozesses finden, der die Sperrdatei mit der lsof-Befehlsausgabe enthält, beenden Sie ihn zuerst und entfernen Sie dann die Sperrdatei.

Ich hoffe, Ihnen gefällt mein bescheidener Versuch, die grundlegenden Pacman-Befehle zu erklären. Bitte hinterlassen Sie unten Ihre Kommentare und vergessen Sie nicht, unsere sozialen Medien zu abonnieren. Pass auf dich auf!