Die zentrale Bedeutung von Paketmanagern bei Arch Linux

Aus LinuxUser 06/2018

Die zentrale Bedeutung von Paketmanagern bei Arch Linux

© Andrii Torianyk, 123RF

Expresslieferung

Für Arch Linux und dessen Derivate gibt es eine ganze Reihe von Paketmanagern und Helfern, die die Installation von Paketen komfortabler gestalten.

Paketmanager dienen der Verwaltung und Pflege des Systems, übernehmen damit sicherheitsrelevante Aufgaben und dienen zudem als direkte Schnittstelle zum Anwender oder Systemverwalter. Viele Distributionen werben mit besonders leistungsfähigen Paketmanagern, einige bauen sogar direkt auf dem Paketmanager beziehungsweise auf dessen speziellen Eigenschaften auf.

Der “klassische” Paketmanager von Arch Linux hört auf den Namen Pacman. Als Konsolenprogramm läuft er nur auf der Befehlszeile, was besonders Einsteiger oft abschreckt. Zudem kann es bei der Installation zu speziellen, durch das Rolling-Releases-Prinzip bedingten Problemen kommen (siehe Kasten “Pacman zurückrollen”).

Darüber hinaus dient Pacman nur der Verwaltung des Basissystems und hat keinen Zugriff auf die zusätzlichen, von Anwendern gepflegten Repositories (siehe Kasten “Arch User Repositories”). Viele Arch-Linux Derivate stellen daher zusätzliche Paketmanager bereit, die über eine grafische Oberfläche verfügen und auch die AUR einbeziehen. Ein typisches Beispiel dafür bietet Manjaro.

Pacman zurückrollen

Rolling-Release-Distributionen wie Arch Linux bieten zwar etliche Vorteile, bergen aber auch einige Risiken. Eines davon tritt gelegentlich bei Updates auf, und zwar dann, wenn eine Aktualisierung des Paketmanagers ansteht.

Pacman benötigt eine überschaubare Anzahl an Bibliotheken als Abhängigkeiten, die das Kommando ldd /bin/pacman anzeigt. Gibt es nun ein Update einer dieser Bibliotheken (was implizit die älteren Versionen löscht), ohne dass auch das Binärprogramm pacman entsprechend aktualisiert wird, lässt sich unter Umständen nach dem Einrichten der neuen Bibliotheksversionen Pacman nicht mehr starten. Ein Downgrade als Ausweg fällt hier flach, denn auch dafür bräuchte man Pacman.

In einem solchen Fall laden Sie via Webbrowser das Paket für die momentan installierte Version von Pacman – Ldd hilft Ihnen, gegebenenfalls die Versionsnummer herauszufinden. Öffnen Sie das Paket dann beispielsweise mit dem Midnight Commander, und kopieren Sie die darin enthaltenen Bibliotheken manuell in das passende Systemverzeichnis, üblicherweise /usr/local/lib/. Danach aktualisieren Sie mit ldconfig -v den Library-Cache. Nun sollte Pacman wieder funktionieren.

Arch User Repositories

In den Arch User Respositories oder kurz AUR [8] lagern anders als in den Standard-Paketquellen keine fertigen Pakete. Hier finden sich lediglich “Bauanleitungen”, die beschreiben, wie sich solche Pakete herstellen lassen. Dieser Mechanismus erlaubt es den Maintainern, schnell auf Versionsänderungen zu reagieren und so die AUR-Pakete aktuell zu halten.

Die Bauanleitung jedes AUR-Eintrags steckt jeweils in der Datei PKGBUILD und folgt immer demselben Format [9]. Zusammen mit dem Kommando makepkg erzeugt PKGBUILD als Teil eines Shell-Skripts das Paket und installiert es dann über die Paketverwaltung. Ein so erzeugtes Paket können Sie auch einlagern, um es etwa für spätere Downgrades zu nutzen oder um es auf mehreren Rechnern zu installieren.

Manjaro: Pamac

Viele Arch Linux Derivate bringen eigene Paketmanager mit, um die Installation und Aktualisierung der Software zu erleichtern; als Unterbau dient in aller Regel Pacman. Ein typisches Beispiel dafür liefert Manjaro mit seinem Standard-Paketmanager Pamac (Abbildung 1), der wie Pacman auf der Kommandozeile agiert.

Abbildung 1: Manjaros Paketmanager Pamac setzt auf Pacman auf, beherrscht aber auch die Installation von Paketen über das AUR.

Abbildung 1: Manjaros Paketmanager Pamac setzt auf Pacman auf, beherrscht aber auch die Installation von Paketen über das AUR.

Das Programm besteht aus mehreren Teilen, die jeweils unterschiedliche Aufgaben übernehmen. So überwacht der pamac-updater beispielsweise, ob es Updates gibt, pamac-tray zeigt sie im Panel an, und der pamac-installer erledigt die eigentliche Installation. Das Löschen der Paketdateien übernimmt anschließend pamac-clean-cache.

Pamac beherrscht die Suche und Installation von Paketen aus den Standard-Paketquellen wie auch dem AUR (Abbildung 2). Er trennt dazu Treffer in der Suchansicht in zwei seitlich angezeigten Tabs. Als Besonderheit kann Pamac die Installationshistorie anzeigen. Dieses Log hilft bei der Fehlersuche, falls zum Beispiel nicht erfüllbare Abhängigkeiten zu Problemen führen.

Abbildung 2: Zur Installation von Paketen aus AUR müssen Sie in den Einstellungen von Pamac die entsprechende Unterstützung aktivieren.

Abbildung 2: Zur Installation von Paketen aus AUR müssen Sie in den Einstellungen von Pamac die entsprechende Unterstützung aktivieren.

Grafische Alternativen zum CLI-basierten Pamac bieten die auch in anderen Arch-Derivaten zur Verfügung stehenden Programme Tkpacman und Octopi sowie der – aktuell stark vernachlässigte – PacmanXG.

Tkpacman

Die Idee, Pacman mit einer grafischen Oberfläche zu versehen, über die sich die Optionen und Argumente der Befehlszeile konfigurieren lassen, ist nicht unbedingt originell. Dennoch erleichtert sie dem Anwender in vielen Fällen die Arbeit.

Tkpacman setzt genau dieses Konzept um (Abbildung 3). Die eigentlichen Ein- und Ausgaben erfolgen auf einer automatisch gestarteten Befehlszeilenemulation, die Bedienung gelingt mehr oder weniger intuitiv. Spezielle Funktionen bietet Tkpacman kaum; zu den wenigen Ausnahmen zählt die im Menü Pacman angebotene Möglichkeit, die Datenbank zu optimieren.

Abbildung 3: Tkpacman bietet eine grafische Oberfläche für Pacman. Das Programm benötigt kaum Abhängigkeiten und eignet sich daher besonders für schlanke Systeme ohne Gnome oder KDE.

Abbildung 3: Tkpacman bietet eine grafische Oberfläche für Pacman. Das Programm benötigt kaum Abhängigkeiten und eignet sich daher besonders für schlanke Systeme ohne Gnome oder KDE.

Unter Filters haben Sie die Möglichkeit, nach Paketen zu suchen. Dabei unterscheidet das Programm nur zwischen Available packages (alle Pakete) oder die Installed packages. Apply Changes führt die ausgewählten Aktionen durch.

Octopi

Während sich Tkpacman als minimales, universelles Frontend für Pacman darstellt, versucht sich Octopi als universelle Lösung (Abbildung 4). Das auf Qt5 basierende Programm verfügt über viele nützliche Funktionen.

Abbildung 4: Komfortabel, leistungsfähig und universell präsentiert sich der Paketmanager Octopi.

Abbildung 4: Komfortabel, leistungsfähig und universell präsentiert sich der Paketmanager Octopi.

Voreingestellt teilt sich das Programmfenster in drei Bereiche: Unter der Menüzeile finden Sie ein Suchfeld, das Sie auch per [Strg]+[L] erreichen. Darunter befindet sich die Liste mit den zur Sucheingabe passenden Paketen. Rechts davon finden Sie die unterschiedlichen Paketgruppen. Der Button neben dem Suchfeld oder [F9] schaltet diese Darstellung um.

Hier suchen Sie ebenfalls nach Paketen, erhalten aber nur Treffer für die ausgewählte Paketgruppe. Die Voreinstellung Alle Gruppen anzeigen lässt Sie alle Pakete finden, die den Paketquellen-Einstellungen genügen. Letztere finden Sie unter Ansicht |Repository. Wählen Sie hier Alle, schließt das auch das AUR mit ein. In diesem Menü legen Sie auch fest, ob Octopi bereits installierte oder noch nicht installierte Pakete anzeigen soll.

Im Listenfenster signalisieren Icons, ob ein Paket bereits installiert wurde. Eine Legende dafür finden Sie im Reiter Verwendung im unteren Fenster. Im Reiter Info zeigt Octopi Details zum oben ausgewählten Paket. Diese Anzeige liefert umfangreiche Informationen und erleichtert damit das Aufspüren potenzieller Konflikte.

Im Reiter Dateien finden Sie die im gewählten Paket enthaltenen Dateien. Das hilft beispielsweise beim Identifizieren von Bibliotheksversionen oder der Suche nach fehlenden Dateien. Im Reiter Nachrichten finden Sie die aktuellen Nachrichten zu Ihrem System. In den Einstellungen von Octopi lassen sich eine ganze Reihe von Aspekten konfigurieren, die meisten davon unter Werkzeuge | Optionen.

Anders als bei Tkpacman und PacmanXG arbeiten die Entwickler bei Octopi derzeit aktiv und regelmäßig am Programm, auch wenn es derzeit noch auf veraltete AUR-Helfer setzt.

PacmanXG

Viele Jahre galt der Paketmanager PacmanXG als das optimale Werkzeug für die Systempflege unter Arch Linux. Das relativ einfach aufgebaute Programm verfügt über viele Möglichkeiten, bietet eine sauber organisierte Struktur (Abbildung 5) und lässt sich gut anpassen.

Abbildung 5: PacmanXG hat eine ziemlich aufgeräumt und übersichtliche Oberfläche, die sich in mehrere Bereiche unterteilt.

Abbildung 5: PacmanXG hat eine ziemlich aufgeräumt und übersichtliche Oberfläche, die sich in mehrere Bereiche unterteilt.

Das Verwalten von Paketen erledigen Sie im Bereich Packages. Links im Hauptfenster finden Sie Filter, die bestimmen, welche Pakete Sie im mittleren Fensterabschnitt sehen: Update available zeigt anstehende Aktualisierungen, Orphans nicht mehr benötigte Pakete, Dependencies die Abhängigkeiten derzeit installierter Pakete und Explicites auf ausdrücklichen Wunsch installierte Pakete. Hier integriert PacmanXG auch den Zugriff auf das AUR.

Zum im mittleren Fensterabschnitt ausgewählten Paket finden Sie am unteren Rand ausführliche Informationen. Dabei erscheinen im Bereich Full info auch die benötigten beziehungsweise in Konflikt stehenden Pakete sowie eine Liste der im Paket enthaltenen Dateien. Am rechten Rand zeigt eine History die in der Vergangenheit ausgeführten Aktionen und deren Erfolg.

Unter Tasks finden Sie vorbereitete Routinen für viele wiederkehrende Aufgaben (Abbildung 6). Auch die Idee, Pakete für ein möglicherweise erforderliches Downgrade bereitzustellen, käme in der Praxis ausgesprochen gelegen, doch zeigen die dort vorhandenen Quellen inzwischen ins Leere. Ebenfalls nicht oft sieht man die Möglichkeit, AUR-Pakete zu aktualisieren.

Abbildung 6: PacmanXG bietet vorbereitete Funktionen für die meisten regelmäßig anfallenden Aufgaben.

Abbildung 6: PacmanXG bietet vorbereitete Funktionen für die meisten regelmäßig anfallenden Aufgaben.

Auch die Konfiguration der Helfer löst PacmanXG gut: Als AUR-Helper kommt beispielsweise Yaourt zum Einsatz. Dafür gibt es unter Einstellungen die Möglichkeit, die dazu verwendete Konfigurationsdatei einzusehen und den eigenen Wünschen anzupassen.

Wie der Name schon vermuten lässt, setzt auch PacmanXG unter der Haube auf das Kommandozeilenwerkzeug Pacman auf. Die entsprechenden Aufrufe zeigen die von PacmanXG eingeblendeten Terminalausgaben. Nicht alle dieser Pacman-Aufrufe lassen sich auf den ersten Blick durchschauen, sodass es sich lohnt, sie einmal auf der Befehlszeile nachzuvollziehen.

Das größte Manko an PacmanXG: Die Entwickler haben die Pflege des Programms weitgehend eingestellt; die jüngste Version 4.17 gibt es nur für i686-Systeme mit 32-Bit-CPU. Die Homepage des Projekts [1] lässt sich nur noch schwer erreichen. Auch die Quelltexte des Programms stehen nicht mehr zur Verfügung, was das Vertrauen in diese Software nicht unbedingt erhöht.

Befehlszeilen-Tools

Die Basis der meisten Arch-Paketmanager bildet der Befehl pacman, dessen Optionen damit eine grundsätzliche Bedeutung zukommt. Es gilt als guter Stil unter den Entwicklern, bei den auf Pacman aufbauenden Programmen dieselben Optionen mit identischen Funktionen bereitzustellen oder gar diese Optionen mehr oder weniger direkt an Pacman durchzureichen.

Daher lohnt sich ein Blick auf pacman und seine Optionen. Durch Großbuchstaben gekennzeichnete Optionen steuern primäre Funktionen, für den Feinschliff sorgen mit Kleinbuchstaben angegebene Schalter. Die Tabelle “Pacman: Modus-Optionen” fasst die wichtigsten der primären Optionen zusammen.

Option

Bedeutung

Funktion

-S

sync

Datenbanken synchronisieren, Pakete installieren

-U

upgrade

lokal vorhandene Pakete aktualisieren

-R

remove

Pakete aus dem System entfernen

-Q

query

lokale Datenbank abfragen

-F

find

lokale Datenbank durchsuchen

-D

database

lokale Datenbank bearbeiten

-h

help

Online-Hilfe anzeigen

Die weiteren Optionen variieren abhängig von den primären. Viele der erweiterten Optionen stehen nur in bestimmten Modi zur Verfügung. Sie erhalten jederzeit durch pacman -Modus -h eine Hilfe. Meist erweitert -v (“verbose”) den Umfang der ausgegebenen Meldungen. Manchmal verstärkt die Verdoppelung von Optionen deren Wirkung: pacman -Sy aktualisiert nach Änderungen die lokale Datenbanken, pacman -Syy erzwingt das Aktualisieren.

Einige regelmäßig benötigte Kombinationen von Optionen und Argumenten sollten Sie unbedingt kennen; die Tabelle “Wichtige Pacman-Optionen” zeigt typische Vertreter.

Kürzel

Funktion

Installationen und Updates

-Syu

System aktualisieren

-Su

installierte Pakete aktualisieren

-Sw

Pakete laden, aber nicht installieren

-Sc

veraltete, nicht installierte Pakete aus dem Cache löschen

-Scc

Cache komplett leeren

-S Paket(e)

Paket(e) installieren, nicht aus dem AUR

--force

Überschreiben vorhandener Dateien erzwingen

-U Paket(e)

lokal vorhandene(s) Paket(e) installieren, nicht aus dem AUR

Pacman-Datenbank

-D --asexplicit Paket

kennzeichnet ein als Abhängigkeit installiertes Paket als “explizit” installiert

Pakete vom System löschen

-R Paket(e)

entfernt Paket(e)

-Rs Paket(e)

entfernt Paket(e) samt Abhängigkeiten

-Rscn Paket(e)

entfernt Paket(e) samt Konfiguration

-Rss Paket(e)

entfernt Paket(e) samt aller Abhängigkeiten

Datenbank durchsuchen

-Q

alle installierten Pakete zeigen

-Qi Paket

Informationen zum Paket zeigen

-Qs Muster

Pakete mit dem Muster suchen

-Qdt

verwaiste (nicht mehr benötigte Abhängigkeiten) zeigen

-Qe

explizit installierte Pakete zeigen

-Qet

wie -Qe, aber nicht als Abhängigkeiten installierte

-Qeq

Kurzform von -Qe, verwendbar zur Neuinstallation

-Ql Paket(e)

enthaltene Dateien anzeigen

-Qo Pfad/zu/Datei

herausfinden, aus welchem Paket eine Datei stammt

-Qu

Aktualisierungen anzeigen

-Qk

Pakete auf fehlende Dateien prüfen

-Qm

Pakete finden, die nicht aus den Standard-Paketquellen stammen

-Qn

Pakete finden, die aus den Standard-Paketquellen stammen

-Qd Paket

abhängige Pakete zu Paket finden

-Fsx Muster

Paket suchen, das durch Muster definierte Dateien enthält

In der Praxis müssen Sie darauf achten, immer die richtigen Optionen zu verwenden. So erzeugt zwar pacman -Qe eine Liste der installierten Anwendungen, aber das dabei verwendete Format eignet sich nicht dafür, diese Liste als Eingabedatei für eine Installation auf einem anderen Rechner zu verwenden. Das funktioniert nur, wenn Sie die Liste mit dem Kommando pacman -Qeq erstellen. Eine Lock-Datei verhindert, dass mehrere Instanzen von Pacman einander stören. Klemmt die Paketverwaltung, müssen Sie diese Datei eventuell mit sudo rm /var/lib/pacman/db.lck explizit löschen.

Eine Reihe von Umgebungsvariablen konfigurieren das Verhalten von Pacman zusätzlich: $DBPath enthält den Pfad zur lokalen Datenbank, voreingestellt /var/lib/pacman/. $CacheDir definiert den Pfad zum Pufferverzeichnis, voreingestellt /var/cache/pacman/pkg/, in dem Pacman installierte Pakete speichert. Die Log-Datei zur Installationshistorie finden Sie unter $LogFile (voreingestellt /var/log/pacman.log). $EDITOR definiert den zur Bearbeitung eingesetzten Texteditor.

Pacman installiert grundsätzlich keine Pakete aus dem AUR. Um Pakete aus den Kochrezepten des Community-Repos zu schnüren, müssen Sie diese entweder von Hand bauen oder zu einem AUR-Helfer wie Yaourt, Trizen oder Pacaur greifen.

Yaourt

Lange Zeit war Yaourt die übliche oder zumindest eine typische Möglichkeit, um AUR-Pakete ohne viel Handarbeit zu bauen und so im System zu installieren. Seit der Version 1.9 schläft die Weiterentwicklung des Programms jedoch, daher sollte man besser zu aktuellen Alternativen greifen. Da Yaourt allerdings als “Mutter aller AUR-Helper” gilt und immer wieder in Anleitungen referenziert wird, sollte man sich dem Programm dennoch widmen.

Das als Bündel von Shell-Skripten umgesetzte Yaourt kann immer nur ein Paket bearbeiten. Diese sequenzielle Arbeitsweise erschwert das Aktualisieren oder Installieren größerer Mengen von AUR-Paketen, der Anwender muss immer wieder in den Prozess eingreifen. Dafür hat sich Yaourt über die Jahre hinweg als sehr zuverlässig herausgestellt.

Die ersten Schritte mit Yaourt fallen nicht schwer: yaourt Paket sucht Pakete und zeigt die Ergebnisse an (Listing 1). Dabei durchstöbert Yaourt sowohl die Paketnamen als auch die Paketbeschreibungen – beispielsweise macht yaourt pacman so ziemlich alle Paketmanager für Arch Linux ausfindig. In der Standardkonfiguration durchsucht Yaourt sowohl die herkömmlichen Paketquellen als auch das AUR.

Listing 1

$ yaourt yaourt
1 extra/yaourt 1.9-1 [installed]
    A pacman wrapper with extended features and AUR support
2 community/pacui 1.9.2-1 [installed]
    Bash script providing advanced Pacman and Trizen/Yay/Yaourt/Pacaur functionality in a simple UI
3 community/yaourt-gui-manjaro 1.4.5-2
    A bash GUI for yaourt - Manjaro theming
4 aur/aurtab 1-2 (30) (2,04)
    AUR tab completion for yaourt and apacman using zsh.
[...]
:16 aur/yaourt-gui-manjaro 1.4.5-2 (Out of Date) (22) (0,43)
    A bash GUI for yaourt (Manjaro theming) and Romanian translation added
==> Geben Sie die Nummern der zu installierenden Pakete an (z.B. 1 2 3 oder 1-3)
==> ----------------------------------------------------------------------------

Die gewünschten Pakete lassen sich nun einzeln über ihre Nummern auswählen (1 3 7 16) oder in Gruppen angeben (3-5 7-11). Beachten Sie, dass auch veraltete, nicht mehr gepflegte Pakete ((Out of Date)) in der Liste erscheinen können.

Beim Aktualisieren oder Installieren von Paketen treten gelegentlich Konflikte auf. Im Beispiel aus Listing 2 gelang es Yaourt zwar, die gewünschten Pakete zu bauen, aber bei der Installation kam es zu einem Konflikt mit einem anderen Paket. Yaourt legt die Pakete dann unter /tmp/yaourt-tmp-tst/ ab, von wo aus Sie diese dann manuell mit pacman -U --force Paket einspielen. Lösen Sie aber besser vorher den zugrundeliegenden Konflikt.

Listing 2

[...]
Suche nach in Konflikt stehenden Paketen...
:: aurtab und zsh-completions stehen miteinander in Konflikt. zsh-completions entfernen? [j/N]
Fehler: Nicht auflösbare Paketkonflikte gefunden
Fehler: Konnte den Vorgang nicht vorbereiten (In Konflikt stehende Abhängigkeiten)
:: aurtab und zsh-completions stehen miteinander in Konflikt
==> WARNUNG:Ihre Pakete wurden in /tmp/yaourt-tmp-tst gespeichert

Yaourt lässt sich auch als Pacman-Alternative verwenden, weil es alle nicht selbst interpretierten Optionen an den Standard-Paketmanager durchreicht. Daher funktioniert yaourt -Syu genau wie pacman -Syu, mit dem Schalter --aur schränken Sie die Aktion dabei auf das AUR ein. Der Aufruf von yaourt -Syu --aur aktualisiert also nur AUR-Pakete.

Ein großer Vorteil von Yaourt liegt darin, dass Sie mehrere Instanzen des Programms parallel in unterschiedlichen Terminals verwenden können. Allerdings bekommt Yaourt Probleme, wenn es bei der Installation mehrerer Pakete bei einem davon zu einem nicht behebbaren Fehler kommt. In diesem Fall bricht das Programm ab und verliert dabei die zuvor ausgewählten Pakete.

Pacaur

Pacaur stellt eine Erweiterung und Vereinfachung von Pacman und besonders von Yaourt dar. Als wesentliches Ziel fasst es dabei ins Auge, die Interaktionen des Anwenders mit dem Programm bei der Installation zu minimieren. So lassen sich wie beispielsweise bei pacaur -S mehrere Pakete gleichzeitig für eine Installation angeben. Nach dem Absetzen des Kommandos erfragt Pacaur als Erstes alle wichtigen Optionen, wie etwa manuelle Eingriffe in die PKGBUILD-Dateien. Danach baut das Programm die gewählten AUR-Pakete ohne weitere Nachfragen (Abbildung 7). Schlägt eine der Installationen fehl, hat das keine Auswirkungen auf die anderen.

Abbildung 7: Pacaur stellt beim Bauen eines AUR-Pakets alle Nachfragen gleich am Anfang und führt dann den eigentlichen Build-Prozess in einem Rutsch durch.

Abbildung 7: Pacaur stellt beim Bauen eines AUR-Pakets alle Nachfragen gleich am Anfang und führt dann den eigentlichen Build-Prozess in einem Rutsch durch.

Pacaur unterstützt neben Pacman-spezifischen Optionen auch solche, die sich auf AUR beziehen: --sync (oder kurz -y, PKGBUILD klonen), --search (-s, Pakete suchen), --info (-i, Paketinformationen anzeigen), --makepkg (-m, bauen ohne zu installieren), --upgrade (-u, nur AUR-Pakete updaten), --check (-k, AUR-Pakete prüfen), --clean (AUR-Pakete aus dem Cache löschen), --cleanall (ganzen Cache löschen). Mit --aur begrenzen Sie die Bearbeitungen und Anzeigen auf die AUR-Pakete.

Um beispielsweise die installierten AUR-Pakete zu aktualisieren, starten Sie mit pacaur -u ein “unspezifisches” Upgrade. Durch Argumente wie -u Paket(e) schränken Sie die aktualisierenden Pakete ein.

Im ersten Schritt sucht Pacaur die zu aktualisierenden Pakete und lädt die PKGBUILD-Dateien aus dem Netz. Diese lassen sich anschließend im $EDITOR (siehe Kasten “Editor”) ansehen und modifizieren, ebenso wie eventuelle *.install-Dateien. Der Rest erfolgt weitgehend automatisch: Pacaur lädt die benötigten Quelltexte herunter und kompiliert sie. Dabei gilt es zu beachten, dass Pacaur dazu nicht das üblicherweise genutzte System-Verzeichnis /var/ verwendet, sondern in ~/.cache/pacaur/ für jedes Programm ein eigenes Arbeitsverzeichnis anlegt. Hierher kommen die Originaldateien und Patches sowie die Pakete. Das Home-Verzeichnis ihres Benutzers wächst beim Kompilieren daher recht schnell an.

Editor

Damit Pacaur funktioniert, müssen Sie in der Umgebungsvariablen $EDITOR einen Editor zur Anzeige und zum Bearbeiten von PKGBUILD-Dateien angeben, beispielsweise durch: export EDITOR=nano. Üblicherweise geschieht das automatisch über die ~/.bashrc oder eine ähnliche Konfigurationsdatei.

Das genaue Verhalten von pacaur steuern Sie durch die zwei Konfigurationsdateien $XDG_CONFIG_DIRS/pacaur/config (voreingestellt /etc/xdg/pacaur/config) und $XDG_CONFIG_HOME/pacaur/config (voreingestellt ~/.config/pacaur/config).

Pacaur erweist sich in der Praxis als ausgesprochen nützlich. Insbesondere erleichtert seine Fehlertoleranz das Aktualisieren größerer Mengen von Paketen. Auch das Verlegen sämtlicher Nachfragen vor den Build-Prozess spart im Vergleich zu Yaourt Zeit und Nerven. Einen Haken gibt es jedoch: Seit Ende 2017 stagniert die Weiterentwicklung der Anwendung, da sich der Hauptentwickler aus Zeitgründen aus dem Projekt zurückgezogen hat [2].

Trizen und Tpac

Ebenfalls mit besonderem Augenmerk auf die Bearbeitung von AUR-Paketen wurde Trizen [3] entwickelt. Das Programm weist viele Gemeinsamkeiten mit Pacaur auf, ist aber etwas anders konzipiert. Trizen unterstützt dieselben Pacman-spezifischen Optionen wie Pacaur, und auch die Optionen für AUR-Pakete ähneln einander.

Mit trizen -Qu ermitteln Sie die zu aktualisierenden Pakete, mit trizen -Syu bringen Sie alle Pakete auf den neuesten Stand. trizen -Sc löscht nach der Installation veraltete Pakete aus dem Cache. Bei Updates löst das Tool Abhängigkeiten rekursiv auf und arbeitet sie ab. Fehler beim Bau von Paketen stoppen den Prozess nicht, sondern lassen sich überspringen, sodass Trizen die weiteren Pakete noch installiert.

Trizen lässt sich ohne andere Abhängigkeiten oder einen bereits installierten AUR-Helper bauen und im System einspielen. Dazu holt das erste Kommando aus Listing 3 die aktuelle Version der PKGBUILD-Datei aus dem Git-Repository des AUR. Anschließend wechseln Sie in das Verzeichnis und erstellen das Paket.

Listing 3

$ git clone https://aur.archlinux.org/trizen.git
$ cd trizen
$ makepkg -si

Anders als bei Yaourt und Pacaur steht bei Trizen die Entwicklung nicht still. Zudem lässt es sich noch erweitern: Das Programm Tpac [4] legt sich als Wrapper um den AUR-Helper und erlaubt, die Suchfunktion von Yaourt (yaourt Muster) auch bei Trizen anzuwenden.

Yay

Der Paketmanager Yay [5] versucht die Eigenschaften von Yaourt und Apacman, einem inzwischen veralteten Pacman für AUR-Pakete, zu kombinieren. Auch hier stehen die einfache Suchfunktion von Yaourt und möglichst wenige interaktive Eingaben bei der Installation vieler Pakete im Fokus. Dazu erfragt Yay zunächst alle benötigten Informationen, um dann die Installation weitgehend autonom auszuführen.

Neben den bekannten Optionen verfügt Yay auch über einige spezielle Funktionen. Insbesondere erleichtern die drei Optionen -P (--print), -Y (--yay) und -G (--getpkgbuild) durch eine weitreichende Automatisierung das Administrieren großer Systeme. So liefert yay -Ps etwa eine interessante Statistik zum Paketmanagement (Listing 4).

Listing 4

$ yay -Ps
Yay version v4.505
===========================================
Total installed packages: 2454
Total foreign installed packages: 441
Explicitly installed packages: 1037
Total Size occupied by packages: 15.3 GiB
===========================================
Ten biggest packages:
wine: 403.2 MiB
libreoffice-fresh: 384.3 MiB
[...]
openclipart-svg: 241.1 MiB
iridium-bin: 235.0 MiB
===========================================
==> Missing AUR Packages: atlas-maps-bin ...
==> Orphaned AUR Packages: bash-docs ...
==> Out Of Date AUR Packages: babl-git ...

PacUI

Das als Bash-Skript realisierte Pacman User Interface PacUI [6] übernimmt zum einen die Aufgaben eines Paketmanagers, bietet aber zum anderen noch weitergehende Funktionen an. Abbildung 8 zeigt die nach dem Start in einem Terminal sichtbare Oberfläche.

Abbildung 8: Pacui fasst viele Tätigkeiten rund um die Paketverwaltung in einer textbasierten Oberfläche zusammen.

Abbildung 8: Pacui fasst viele Tätigkeiten rund um die Paketverwaltung in einer textbasierten Oberfläche zusammen.

Die meisten der angebotenen Optionen entsprechen jenen der bereits vorgestellten Paketmanager, die Github-Seite der Anwendung erklärt die meisten Funktionen. Besonders sticht jedoch 2 Maintain System hervor, das umfangreiche Prüfungen sowohl des Paketmanagements als auch der Konfigurationsdateien und Logfiles oder Symlinks ausführt.

Auch 5 Dependency Tree hilft bei Problemen in vielen Fällen weiter. Die Option zeigt in einem Baumdiagramm, welche Abhängigkeiten ein Paket benötigt. Die Option 6 Reverse Dependency Tree stellt das auf den Kopf: Mit ihr finden Sie heraus, welche Pakete ein bestimmtes Paket als Abhängigkeit anfordern.

Besondere Bedeutung kommt bei PacUI der Suchsyntax für Pakete zu, da das Programm interaktive Eingaben nicht unterstützt. PacUI nutzt zum Auffinden von Paketen den “fuzzy finder” Fzf [7]. Er unterstützt neben einfachen regulären Ausdrücken auch eine eigene Suchsyntax: ^Muster kennzeichnet Muster am Wortanfang, Muster$ solche am Wortende. Einfache Hochkommas interpretiert Fzf als Joker, ein Ausrufezeichen sorgt für Negation. Das Pipe-Symbol (|) schließlich dient als logisches Oder.

Arch-Spiegelserver

Wie schnell eine Installation abläuft, hängt maßgeblich von der Geschwindigkeit ab, mit der die Pakete das System erreichen. Dazu lädt Pacman Pakete von unterschiedlichen Spiegelservern (siehe Kasten “Mirror-Ranking”). Diese Mirrors verwaltet der Paketmanager in der Datei /etc/pacman.d/mirrorlist. Das Programm ruft die Mirrors in der Reihenfolge ab, in der sie in der Konfigurationsdatei stehen.

Es gibt verschiedene Möglichkeiten, diese Liste automatisch zu optimieren. Bei Manjaro heißt das entsprechende Programm pacman-mirrors, bei anderen Arch-Derivaten manchmal auch rankmirrors. Mit dem Kommando sudo pacman-mirrors -f klappern Sie die Arch-Mirrors ab und sortieren die Liste nach der Antwortgeschwindigkeit (Listing 5).

Listing 5

$ sudo pacman-mirrors -f
.: INFO Lade Mirrorliste herunter von  repo.manjaro.org
.: INFO: Frage Mirrors ab - Dies kann einige Zeit in Anspruch nehmen
   0.703 Brazil         : 09:11: http://linorg.usp.br/manjaro/
   1.388 China          : 01:17: https://mirrors.shuosc.org/manjaro/
   0.798 Ecuador        : 02:48: https://mirror.cedia.org.ec/manjaro/
   0.141 Germany        : 00:12: https://mirror.netzspielplatz.de/manjaro/packag
[...]
.: INFO Mirrorliste erzeugt und gespeichert nach: /etc/pacman.d/mirrorlist

Vor der Anwendung des Programms sollten Sie die ursprüngliche Datei sichern (Listing 6, erste Zeile): Sie kann durch Fehler bei der Aktualisierung beschädigt werden. Reißen alle Stricke, lässt sich auch das Original manuell wieder einspielen (zweite Zeile).

Listing 6

$ cp -b /etc/pacman.d/mirrorlist rankmirrors
$ curl -o /etc/pacman.d/mirrorlist https://www.archlinux.org/mirrorlist/all

Auch die Geschwindigkeit von Pacman selbst lässt sich in gewissen Grenzen nachjustieren. Dazu räumen Sie mit pacman -Sc zuerst den Pacman-Cache auf und organisieren dann im Dateisystem mittels pacman-optimize die kleinen Dateien neu, in denen die Metadaten zu den Paketen stehen.

Mirror-Ranking

Die Paketquellen von Arch Linux liegen auf weltweit verstreuten Mirror-Servern. Nicht immer aber ist der schnellste Spiegelserver auch der beste: Es kommt vor, dass sich ein Mirror nicht mehr zuverlässig mit den Hauptservern synchronisiert oder Fehler der Datenübertragung auftreten. Sowohl Arch Linux [10] als auch Manjaro [11] führen daher Statistiken zu den offiziellen Mirror-Servern.

Bei Arch sollten Sie einen Mirror wählen, der im Abschnitt Successfully Syncing Mirrors steht und einen möglichst niedrigen Mirror Score besitzt. Dieser Wert errechnet sich aus der Verfügbarkeit, Aktualität und Geschwindigkeit des Servers. Bei Manjaro markieren grün hinterlegte Einträge Server, die auf dem neuesten Stand sind und die daher in der Mirror-Liste nicht fehlen sollten.

Fazit

Bei einem so agilen System wie Arch Linux gibt es noch eine Vielzahl weiterer Pacman-Erweiterungen. Zum Teil verfügen diese jedoch über keine besonderen Fähigkeiten, oder die Entwicklung geht nicht mehr weiter voran. Die hier vorgestellten Paketmanager dagegen weisen alle besondere Fähigkeiten auf, die ihren Einsatz rechtfertigen.

Sie müssen keineswegs alle Pacman-Aufsätze und AUR-Helper kennen oder ausprobieren: Einige der Kandidaten weisen klare Vorteile auf. Unter Manjaro stellt Pamac immer eine gute Wahl dar, auf der Befehlszeile gehört Trizen mit zu den absoluten Stars der Szene. Yaourt eignet sich trotz seines Alters immer noch als Reservesystem, wenn es keine andere Möglichkeit gibt, ein Paket aus dem AUR zu installieren. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 06/2018 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben