Das Open-Source-Universum rund um freie Software ist schier unüberschaubar geworden. Seit Jahrzehnten angewachsen, gibt es Programme für so gut wie jeden Zweck. Unter Linux lassen sich viele dieser Anwendungen über die Paketverwaltung komfortabel installieren und aktuell halten, doch keine Distribution integriert jede Software in ihre Repositories. Schon alleine die offiziellen Paketquellen unterscheiden zwischen Paketen, die direkt von den Entwicklern der Distribution betreut werden (Arch: Core und Extra, Ubuntu: Main) und Paketen, die von der Community gepflegt werden (Arch: Community, Ubuntu: Universe). In der Praxis macht das für den Nutzer der Distribution in der Regel jedoch kaum einen Unterschied.

Sehr neue Entwicklungen und gerade frisch gestartete Software-Ideen müssen hingegen entweder von Hand oder über aus von den Projekten betrieben Paketquellen integriert werden — wenn es denn überhaupt welche gibt. Nur Arch Linux geht hier wieder einen komplett eigenen Weg, das Arch User Repository oder kurz AUR vereinfacht die Installation fremder Software ganz wesentlich. Wer Arch Linux oder eines seiner Derivate wie etwa Manjaro noch nicht kennt, dem sagt das AUR vielleicht noch nichts: Im Vergleich zu herkömmlichen Paketquellen pflegt das AUR keine Binärpakete, sondern lediglich eine Sammlung von Kochrezepten, die dem System per Skript erklären, wie sich eine Software optimal in das Arch-System integrieren lässt.

Das Arch User Repository

Die dafür notwendige PKGBUILD-Datei (hier am Beispiel von Spotify) enthält Informationen, woher die Anwendung herunterzuladen und wie sie zu installieren ist, inklusive einer Reihe von Anpassungen, plus die benötigten Abhängigkeiten aus der Paketverwaltung. So lässt sich so gut wie jedes Programm ohne große Komplikationen installieren, egal ob es die Entwickler nur in Form des Quellcodes, über DEB- oder RPM-Pakete oder statisch gebaute Binaries bereitstellen. Unter Arch lassen sich so sehr einfach proprietäre Anwendungen wie Chrome oder Spotify installieren oder eben auch ganz neue Entwicklungen. Es braucht nur eine Person, die sich mit dem Schreiben einer PKGBUILD-Datei auskennt — und davon gibt es in der Arch-Linux-Community so einige.

Das Arch User Repository enthält selbst keine Software, sondern lediglich Kochrezepte zum Bauen von Paketen in Form von PKGBUILD-Dateien wie hier am Beispiel von Spotify.

Allerdings braucht es wie immer bei Fremdpaketen einen Disclaimer: Die Hürden Änderungen in das AUR einzubringen oder gar AUR-Pakete zu betreuen, sind im Vergleich zu denen in der Karriere eines offiziellen Arch-Entwicklers geringer. Von daher ist es durchaus möglich, dass Menschen mit schlechten Absichten Manipulationen oder gar Malware in das AUR einbringen. 2018 ist das bereits passiert, damals gab es einen Angriff auf den AUR-Eintrag des Acrobat Readers und zweier weiterer PKGBUILDs. Das AUR ist allerdings auch kein wilder Spielplatz für Bastler und Hacker, eine Gruppe von Trusted Users überwacht das Geschehen im AUR, korrigiert Fehler und leitet neue Beitragende an. In der Praxis lässt sich das AUR daher gut nutzen, zur Sicherheit sollte man allerdings immer mal in die PKGBUILD-Dateien sehen und kontrollieren, ob die Software zum Beispiel von den offiziellen Seiten des entsprechenden Projekts geladen wird.

AUR-Helper helfen im Alltag

Nun zurück zum Thema: Das AUR ist wie angesprochen kein Selbstläufer. Es enthält selbst keine Software oder fertige Pakete, sondern lediglich Skripte zum Bauen von Arch-Paketen. Der offizielle Installationsweg führt somit über das Auschecken der PKGBUILD-Datei aus dem Github-Repository des AUR, danach kontrolliert ihr die PKGBUILD und baut im letzten Schritt letztlich mit makepkg -si das Paket. Der Schalter -i am Ende installiert das am Ende erstellte Paket, dabei werden automatisch die im PKGBUILD definierten Abhängigkeiten aus der Paketverwaltung nachgezogen. Alle während dieses Prozesses heruntergeladenen und gebauten Daten braucht ihr am Ende nicht mehr, daher führte ich diese Schritte gerne im Ordner /tmp des Systems aus. Es sei denn, ich möchte die Daten auf anderen System wiederverwenden.

$ pacman -S --needed base-devel git
$ git clone https://aur.archlinux.org/spotify.git
$ cd spotify
$ less PKGBUILD  ### Mit [Q] beenden
$ makepkg -si

Es gibt viele Arch Nutzer, die generell diesen Weg gehen, so behalten sie die volle Kontrolle über den Vorgang. Allerdings gibt es spätestens dann beim Bauen der AUR-Pakete Probleme, wenn diese selbst zusätzliche Pakete aus dem AUR benötigen. Benötigen diese zusätzlichen Pakete wieder andere Pakete aus dem AUR, wird es arg kompliziert. Aus diesem Grund gibt es eine Reihe von Programmen, AUR-Helper genannt, die den Nutzer bei der Installation von AUR-Paketen unterstützen. Sie automatisieren die oben genannten Schritte und lösen Abhängigkeiten automatisch auf, sodass sich die Installation von Paketen aus dem AUR oft nicht anders anfühlt, als die Installation von Software aus den offiziellen Paketquellen. In der Regel übernehmen die AUR-Helper sogar die Syntax des Arch-Linux-Paketmanagers Pacman.

### AUR-Helper wie Yay oder Pacaur erleichtern die Arbeit
### mit Software aus dem Arch User Repository:
$ yay -S spotify
$ pacaur -S spotify
$ paru -S spotify
### Beim Update kann man sich das 'pacman -Syu' sparen.
### Die AUR-Helper übernehmen die Syntax von Pacman und
### rufen neben den eigen Update auch die aus der Paket-
### verwaltung ab.
$ yay -Syu
$ pacaur -Syu
$ paru -Syu

In der Geschichte der AUR-Helper gibt es immer mal wieder ein hin und her. Bis vor ein paar Jahren war Yaourt (Yet another AUR Helper) das Maß aller Dinge: Das Programm war das einzige, das AUR-Abhängigkeiten automatisch auflöste und vor allen Dingen alle Interaktionen mit dem Nutzer vor dem Build-Vorgang klärte, sodass das eigentliche Bauen später ohne Unterbrechungen in einem Rutsch erfolgte. Eine große Erleichterung, da das Bauen manche Pakete durchaus längere Zeit in Anspruch nimmt, besonders wenn diese aus dem Quellcode kompiliert werden. Doch mit der Version 1.9 stellte der Yaourt-Entwickler seine Arbeit ein, wodurch Pacaur zum Liebling der Nutzer wurde. Bis auch hier wieder der Entwickler goodbye sagte und Yay der Quasi-Standard wurde, auch wenn Pacaur inzwischen einen neuen Betreuer gefunden hat. Aktuell liegt Paru in der Gunst der User am höchsten und liegt im AUR-Ranking ganz vorne.

Ein Mix an AUR-Helfern hilft

Was ist allerdings immer wieder merke: Kein AUR-Helper ist perfekt. Yay erhält zum Beispiel regelmäßig Updates (zuletzt erschien das Update auf Yay 11.0.2 Mitte Oktober 2021), doch ich stelle immer wieder fest, dass das Programm in bestimmten Situationen scheitert. Aktuell bricht Yay zum Beispiel das Bauen von Spotify ab, da Prüfsummen nicht stimmen würden. Von Hand oder mit Pacaur lässt sich das Spotify-Paket jedoch ohne Probleme erstellen. Zudem wird Yay in Go entwickelt, das auf der Festplatte bald 500 MByte belegt (Tipp: Yay über das Binary yay-bin installieren). Auf einem schlanken System würde ich daher eher zu Paru oder Pacaur greifen. Letzteres hat aber auch wieder den Nachteil, dass die Entwicklung trotz eines neuen Projektbetreuers eher still steht. Die letzte Version ist vor über zwei Jahren freigegeben worden.

$ yay -S spotify
[...]
grep: spotify-1.1.72.439-Release: No such file or directory
sha256sum: spotify-1.1.72.439-x86_64-Packages.sha256: no properly formatted checksum lines found
==> ERROR: A failure occurred in prepare().
    Aborting...
 -> error making: spotify
Es passiert auf meinem System nicht das erste Mal, dass Yay einen Fehler beim Bauen eines AUR-Pakets auswirft und den Vorgang ohne Erfolg abbricht.

Ideal ist es daher in meinen Augen einen Mix an AUR-Helpern auf einem Arch-System bereitzuhalten und bei Fehlern im Build-Prozess erst einmal einen anderen AUR-Helfer zu testen, bevor man sich auf die Fehlersuche begibt oder gar einen Kommentar unter dem AUR-Eintrag im Repository hinterlässt. Bei mir hat schon mehrmals Yay einen Fehler ausgespuckt, während Pacaur ohne Problem das PKGBUILD abarbeitete und anders herum. Ich persönlich empfehle schon alleine aufgrund des schlankeren Unterbaus generell Paru und Pacaur, wobei Paru euer Hauptprogramm sein sollte — nicht ohne Grund ist Paru das am häufigsten installierte Paket aus dem AUR. Pacaur spielt bei mir die zweite Geige, ist aber immer ein gutes Backup. Yay versuche ich inzwischen zu vermeiden, auch wenn das Kommando yay -Syu bei mir im Gedächtnis eingebrannt ist.

### Installation von Paru
$ sudo pacman -S --needed base-devel
$ git clone https://aur.archlinux.org/paru.git
$ cd paru
$ makepkg -si
### Installation von Yay:
$ pacman -S --needed base-devel git
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si
### Alternativ Yay als Binary:
$ git clone https://aur.archlinux.org/yay-bin.git
$ cd yay-bin
$ makepkg -si
### Installation von Pacaur:
$ pacman -S --needed base-devel git
$ git clone https://aur.archlinux.org/pacaur.git
$ cd pacaur
$ makepkg -si
Vorheriger ArtikelUSB-Sticks und SD-Karten auf Fehler prüfen
Nächster ArtikelUpgrade auf Python 3.10, Zeit die AUR-Pakete neu zu bauen
Hallo, ich bin Christoph - Linux-User, Blogger und pragmatischer Fan freier Software. Wie ihr ohne Zweifel bemerkt haben solltet, schreibe ich hier über Linux im Allgemeinen, Ubuntu im Speziellen sowie Android und andere Internet-Themen. Wenn du Freude an meinen Artikel gefunden haben solltest, dann kannst du mir über Facebook, Twitter oder natürlich dem Blog folgen.

8 Kommentare

  1. Ich finde pikaur sehr angenehm und hat viele Komfortfunktionen wie gpg-schlüssel oder hash Überprüfung zu überspringen oder alle -git Versionen automatisch neu zu bauen wenn sie älter als x Tage sind. Dazu ist das tool in Python geschrieben und damit recht klein.

  2. Ich schließe mich @Fleixi an. Ich hatte bisher nie Probleme mit ‚pikaur‘. Mir gefällt besonders, dass alle Benutzereingaben zum Anfang abgefragt werden (z.B. pkgbuild ändern, etc.) und danach alles ohne Unterbrechung installiert wird.

    • Hallo Foxit, zum Bauen von yay brauchst du Go. Und Go ist mit über 400 MB eines der größten Pakete auf meinem System. Nur zum Bauen eines AUR-Helpers hunderte MB auf den Rechner zu schaufeln, besonders wenn es Alternativen gibt, ist nicht auf jedem System praktikabel.

      $ expac -H M -s "%-30n %m" | sort -rhk 2
      languagetool-ngrams-de         3135.08 MiB
      texlive-fontsextra             1438.96 MiB
      linux-firmware                 731.19 MiB
      wine                           489.54 MiB
      rust                           469.21 MiB
      go                             432.28 MiB
      libreoffice-fresh              419.03 MiB
      [...]

      Optional kannst du yay natürlich auch über das Binary installieren (AUR: yay-bin) oder Go nach dem Bauen wieder löschen — bei einem Update muss es aber wieder eingespielt werden. Aber wenn sowieso der Speicherplatz knapp ist (etwa bei Arch auf einem Raspberry Pi), dann würde ich zu einem anderen AUR-Helper ohne diese Abhängigkeit greifen.

Schreibe einen Kommentar zu Christoph Langner Antwort abbrechen

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein