Kurz:Dieser Anfängerleitfaden zeigt Ihnen, was Sie mit pacman-Befehlen unter Linux machen 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 anderen großen Distributionen wie Red Hat und Ubuntu/Debian. Es kombiniert ein einfaches Binärpaketformat mit einem benutzerfreundlichen Build-System. Das Ziel von Pacman ist es, Pakete einfach zu verwalten, entweder aus den offiziellen Repositories oder den 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, müssen Sie als Erstes nach der Installation von Arch Linux lernen, Pacman-Befehle zu verwenden.
In diesem Anfängerleitfaden erkläre ich einige der wesentlichen Verwendungszwecke des pacmand-Befehls, 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, um dem Benutzer zu ermöglichen, Pakete mit einem einfachen Befehl herunterzuladen und zu installieren, indem alle erforderlichen Abhängigkeiten gelöst werden.
Pakete mit Pacman installieren
Sie können ein einzelnes Paket oder mehrere Pakete mit dem Pacman-Befehl auf diese Weise installieren:
pacman -S _package_name1_ _package_name2_ ...
Das -S steht für Synchronisation. Das bedeutet, dass Pacman zuerst synchronisiert
Die Pacman-Datenbank kategorisiert die installierten Pakete in zwei Gruppen nach dem Grund, warum sie installiert wurden:
- explizit installiert :die Pakete, die durch einen generischen pacman -S oder -U Befehl installiert wurden
- Abhängigkeiten :die Pakete, die implizit installiert wurden, weil sie von einem anderen explizit installierten Paket benötigt wurden.
Ein installiertes Paket entfernen
Um ein einzelnes Paket zu entfernen und alle seine Abhängigkeiten installiert zu lassen:
pacman -R package_name_
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. Beispielsweise wurde das Paket, das die Abhängigkeiten benötigte, entfernt.
pacman -Qdtq | pacman -Rs -
Upgrade von Paketen
Pacman bietet eine einfache Möglichkeit, Arch Linux zu aktualisieren. Sie können alle installierten Pakete mit nur einem Befehl aktualisieren. Dies kann je nach Aktualität des Systems eine Weile dauern.
Der folgende Befehl synchronisiert die Repository-Datenbanken und aktualisiert die Pakete des Systems, ausgenommen „lokale“ Pakete, die sich nicht in den konfigurierten Repositories befinden:
pacman -Syu
- S steht für sync
- y steht für Refresh (lokaler Cache)
- u ist für Systemaktualisierung
Grundsätzlich 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).
Achtung!
Wenn Sie ein Arch Linux-Benutzer sind, sollten Sie vor dem Upgrade die Arch Linux-Homepage besuchen, 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 den RSS-Feed oder die Arch-Announce-Mailingliste abonnieren.
Denken Sie auch daran, im entsprechenden Forum nach gemeldeten Problemen zu suchen, bevor Sie grundlegende Software (wie den Kernel, xorg, systemd oder glibc) aktualisieren.
Teilweise Upgrades werden nicht unterstützt bei einer Rolling-Release-Distribution wie Arch und Manjaro. Das bedeutet, wenn neue Bibliotheksversionen in die Repositories gepusht werden, müssen alle Pakete in den Repositories gegen die Bibliotheken neu erstellt werden. Wenn beispielsweise zwei Pakete von derselben Bibliothek abhängen, kann das Aktualisieren 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 Paketnamen als auch in Beschreibungen:
pacman -Ss _string1_ _string2_ ...
So suchen Sie nach bereits installierten Paketen:
pacman -Qs _string1_ _string2_ ...
So suchen Sie nach Paketdateinamen in entfernten Paketen:
pacman -F _string1_ _string2_ ...
So zeigen Sie den Abhängigkeitsbaum eines Pakets an:
pactree _package_naenter code hereme_
Paketcache leeren
Pacman speichert seine heruntergeladenen Pakete in /var/cache/pacman/pkg/ und entfernt die alten oder deinstallierten Versionen nicht automatisch. Das hat einige Vorteile:
- Es ermöglicht ein Downgrade eines Pakets, ohne dass die vorherige Version über andere Quellen abgerufen werden muss.
- Ein Paket, das deinstalliert wurde, kann problemlos direkt aus dem Cache-Ordner neu installiert werden.
Es ist jedoch notwendig, den Cache regelmäßig zu bereinigen, um zu verhindern, dass der Ordner an Größe zunimmt.
Das paccache(8)-Skript, das im Paket pacman-contrib enthalten ist, löscht standardmäßig alle zwischengespeicherten Versionen von installierten und deinstallierten Paketen, mit Ausnahme der letzten 3:
paccache -r
Führen Sie Folgendes aus, um alle zwischengespeicherten Pakete, die derzeit nicht installiert sind, und die nicht verwendete Synchronisierungsdatenbank zu entfernen:
pacman -Sc
Um alle Dateien aus dem Cache zu entfernen, verwenden Sie den Clean-Schalter zweimal, dies ist der aggressivste Ansatz und hinterlässt nichts im Cache-Ordner:
pacman -Scc
Installieren von lokalen oder Drittanbieter-Paketen
Installieren Sie ein „lokales“ Paket, das nicht aus einem entfernten 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 http://www.example.com/repo/example.pkg.tar.xz
Bonus:Fehlerbehebung bei häufigen Fehlern mit Pacman
Hier sind einige häufige Fehler, die beim Verwalten von Paketen mit Pacman auftreten können.
Transaktion konnte nicht ausgeführt werden (widersprüchliche 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 prüfen, ob die Datei einem anderen Paket gehört (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 um, die „im Dateisystem vorhanden“ ist, und geben Sie den Aktualisierungsbefehl 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 explizit pacman -S –overwrite glob package ausführen um Pacman zu zwingen, Dateien zu überschreiben, die glob entsprechen .
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 initialisiert werden (Datenbank konnte nicht gesperrt werden)
Wenn pacman dabei ist, die Paketdatenbank zu ändern, zum Beispiel ein Paket zu installieren, erstellt es eine Sperrdatei unter /var/lib/pacman/db.lck. 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 laufen, löschen Sie die Sperrdatei.
Überprü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 Ausgabe des lsof-Befehls 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. Bleiben Sie gesund!