Arch User Repository

Das Arch User Repository (AUR) ist ein von der Gemeinschaft betriebenes Repository für Arch-Benutzer. Es enthält Paketbeschreibungen (PKGBUILDs), die es Ihnen ermöglichen, ein Paket aus dem Quellcode mit makepkg zu kompilieren und es dann mit pacman zu installieren. Das AUR wurde erstellt, um neue Pakete aus der Gemeinschaft zu organisieren und zu teilen und um die Aufnahme beliebter Pakete in das Gemeinschaftsrepository zu beschleunigen. Dieses Dokument erklärt, wie Benutzer auf das AUR zugreifen und es nutzen können.

Eine große Anzahl neuer Pakete, die in die offiziellen Repositories aufgenommen werden, beginnen im AUR. Im AUR können Nutzer ihre eigenen Paket-Builds (PKGBUILD und zugehörige Dateien) beisteuern. Die AUR-Gemeinschaft hat die Möglichkeit, für Pakete im AUR zu stimmen. Wenn ein Paket populär genug wird – vorausgesetzt, es hat eine kompatible Lizenz und eine gute Paketierungstechnik – kann es in das Community-Repository aufgenommen werden (direkt zugänglich durch pacman oder abs).

Warnung: AUR-Pakete sind von Benutzern erstellte Inhalte. Diese PKGBUILDsind völlig inoffiziell und wurden nicht gründlich überprüft. Jegliche Verwendung der zur Verfügung gestellten Dateien geschieht auf eigene Gefahr.

Einstieg

Benutzer können PKGBUILDs über das AUR Web Interface suchen und herunterladen. Diese PKGBUILDkönnen mit makepkg in installierbare Pakete umgewandelt und dann mit pacman installiert werden.

  • Stellen Sie sicher, dass die base-devel-Paketgruppe vollständig installiert ist (pacman -S --needed base-devel).
  • Werfen Sie einen Blick auf die #FAQ, um Antworten auf die häufigsten Fragen zu erhalten.
  • Sie können /etc/makepkg.confden Erstellungsprozess für Ihr System optimieren, bevor Sie Pakete aus dem AUR erstellen. Auf Systemen mit Multi-Core-Prozessoren kann eine signifikante Verbesserung der Paketerstellungszeiten erreicht werden, indem die MAKEFLAGS-Variable angepasst wird, indem mehrere Kerne für die Komprimierung verwendet werden oder indem ein anderer Komprimierungsalgorithmus verwendet wird. Benutzer können auch hardwarespezifische Compiler-Optimierungen über die CFLAGS-Variable aktivieren. Siehe makepkg#Tipps und Tricks für weitere Informationen.

Es ist auch möglich, mit dem AUR über SSH zu interagieren: Geben Sie ssh [email protected] help ein, um eine Liste der verfügbaren Befehle zu erhalten.

Geschichte

In den Anfängen gab es ftp://ftp.archlinux.org/incoming, und die Leute trugen bei, indem sie einfach das PKGBUILD, die benötigten Zusatzdateien und das gebaute Paket selbst auf den Server hochluden. Das Paket und die dazugehörigen Dateien blieben dort, bis ein Paketbetreuer das Programm sah und es übernahm.

Dann wurden die Trusted User Repositories geboren. Bestimmte Personen in der Gemeinschaft durften ihre eigenen Repositories hosten, die jeder nutzen konnte. Das AUR wurde auf dieser Grundlage erweitert, um es sowohl flexibler als auch benutzerfreundlicher zu machen. Tatsächlich werden die AUR-Maintainer immer noch als TUs (Trusted Users) bezeichnet.

Zwischen dem 08.06.2015 und dem 08.08.2015 wurde das AUR von Version 3.5.1 auf 4.0.0 umgestellt, wobei die Verwendung von Git-Repositories für die Veröffentlichung der PKGBUILDs eingeführt wurde.

Bestehende Pakete wurden gelöscht, sofern sie nicht manuell von ihren Maintainern auf die neue Infrastruktur migriert wurden.

Git-Repositories für AUR3-Pakete

Das AUR-Archiv auf GitHub hat ein Repository für jedes Paket, das zum Zeitpunkt der Migration in AUR 3 war.

Installation und Upgrade von Paketen

Die Installation von Paketen aus dem AUR ist ein relativ einfacher Prozess. Im Wesentlichen:

  1. Erwerben Sie die Build-Dateien, einschließlich PKGBUILD und möglicherweise andere benötigte Dateien, wie systemd-Units und Patches (oft nicht der eigentliche Code).
  2. Überprüfen Sie, dass die PKGBUILD und die dazugehörigen Dateien nicht bösartig oder nicht vertrauenswürdig sind.
  3. Starten Sie makepkg -si in dem Verzeichnis, in dem die Dateien gespeichert sind. Dadurch wird der Code heruntergeladen, die Abhängigkeiten mit pacman aufgelöst, kompiliert, verpackt und das Paket installiert.
Hinweis: Das AUR wird nicht unterstützt, so dass alle Pakete, die Sie installieren, von Ihnen aktualisiert werden müssen, nicht von pacman. Wenn Pakete in den offiziellen Repositories aktualisiert werden, müssen Sie alle AUR-Pakete, die von diesen Bibliotheken abhängen, neu erstellen.

Voraussetzungen

Stellen Sie zunächst sicher, dass die notwendigen Werkzeuge installiert sind, indem Sie die base-devel-Gruppe vollständig installieren, die make und andere Werkzeuge enthält, die zum Kompilieren aus dem Quellcode benötigt werden.

Tipp: Verwenden Sie das --needed-Flag bei der Installation der base-devel-Gruppe, um Pakete zu überspringen, die Sie bereits haben, anstatt sie neu zu installieren.
Hinweis: Pakete im AUR gehen davon aus, dass die base-devel-Gruppe installiert ist, d.h. sie führen die Mitglieder der Gruppe nicht explizit als Build-Abhängigkeiten auf.

Wählen Sie als nächstes ein geeignetes Build-Verzeichnis. Ein Build-Verzeichnis ist einfach ein Verzeichnis, in dem das Paket erstellt oder „gebaut“ wird und kann ein beliebiges Verzeichnis sein. Die Beispiele in den folgenden Abschnitten verwenden ~/builds als Build-Verzeichnis.

Build-Dateien beschaffen

Suchen Sie das Paket im AUR. Dies geschieht über das Suchfeld oben auf der AUR-Startseite. Wenn Sie den Namen der Anwendung in der Suchliste anklicken, wird eine Informationsseite über das Paket angezeigt. Lesen Sie die Beschreibung, um zu bestätigen, dass es sich um das gewünschte Paket handelt, notieren Sie, wann das Paket zuletzt aktualisiert wurde, und lesen Sie alle Kommentare.

Es gibt mehrere Methoden, um die Build-Dateien für ein Paket zu erhalten:

  • Klonen Sie sein Git-Repository, gekennzeichnet mit „Git Clone URL“ in den „Package Details“ auf seiner AUR-Seite. Dies ist die bevorzugte Methode, deren Vorteil darin besteht, dass man Aktualisierungen des Pakets leicht über git pull erhalten kann.
$ git clone https://aur.archlinux.org/package_name.git
  • Laden Sie einen Snapshot herunter, indem Sie entweder auf den Link „Download snapshot“ unter „Package Actions“ auf der rechten Seite der AUR-Seite klicken oder in einem Terminal:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Hinweis: Die Snapshot-Datei ist komprimiert und muss extrahiert werden (vorzugsweise in einem Verzeichnis, das für AUR-Builds reserviert ist): tar -xvf package_name.tar.gz

Beschaffen Sie einen öffentlichen PGP-Schlüssel, falls erforderlich

Prüfen Sie, ob eine Signaturdatei in Form von .sig oder .asc Teil des PKGBUILD-Quellarrays ist, wenn das der Fall ist, dann beschaffen Sie einen der öffentlichen Schlüssel, die im PKGBUILD validpgpkeys-Array aufgeführt sind. Siehe makepkg#Signaturprüfung für weitere Informationen.

Baue und installiere das Paket

Wechsele in das Verzeichnis, das die PKGBUILD des Pakets enthält.

$ cd package_name
Warnung: Überprüfen Sie sorgfältig die PKGBUILD, alle .install-Dateien und alle anderen Dateien im Git-Repository des Pakets auf bösartige oder gefährliche Befehle. Wenn Sie Zweifel haben, bauen Sie das Paket nicht und suchen Sie Rat in den Foren oder auf der Mailingliste. Bösartiger Code wurde schon früher in Paketen gefunden.

Betrachten Sie den Inhalt aller bereitgestellten Dateien. Um zum Beispiel den Pager less zu benutzen, um PKGBUILD anzusehen, tun Sie:

$ less PKGBUILD
Tipp: Wenn Sie ein Paket aktualisieren, möchten Sie vielleicht die Änderungen seit dem letzten Commit ansehen.

  • Um Änderungen seit dem letzten Git-Commit anzusehen, können Sie git show benutzen.
  • Um Änderungen seit dem letzten Commit mit vimdiff anzusehen, tun Sie git difftool @~..@ vimdiff. Der Vorteil von vimdiff ist, dass Sie den gesamten Inhalt jeder Datei zusammen mit Hinweisen darauf, was sich geändert hat, sehen können.

Machen Sie das Paket. Nachdem Sie den Inhalt der Dateien manuell bestätigt haben, führen Sie makepkg als normaler Benutzer aus:

$ makepkg -si
  • -s/--syncdeps löst automatisch alle Abhängigkeiten auf und installiert sie mit pacman, bevor das Paket erstellt wird. Wenn das Paket von anderen AUR-Paketen abhängt, müssen Sie diese zuerst manuell installieren.
  • -i/--install installiert das Paket, wenn es erfolgreich gebaut wurde. Alternativ kann das erstellte Paket mit pacman -U package_name.pkg.tar.zst installiert werden.

Andere nützliche Flags sind

  • -r/--rmdeps entfernt die Abhängigkeiten nach der Erstellung, da sie nicht mehr benötigt werden. Es kann jedoch sein, dass diese Abhängigkeiten bei der nächsten Aktualisierung des Pakets neu installiert werden müssen.
  • -c/--clean bereinigt temporäre Build-Dateien nach dem Build, da sie nicht mehr benötigt werden. Diese Dateien werden normalerweise nur beim Debuggen des Build-Prozesses benötigt.
Hinweis: Das obige Beispiel ist nur eine kurze Zusammenfassung des Build-Prozesses. Es wird dringend empfohlen, die Artikel makepkg und ABS zu lesen, um mehr Details zu erfahren.

Pakete aktualisieren

In dem Verzeichnis, das das PKGBUILD des Pakets enthält, müssen Sie zuerst die Dateien und Änderungen mit dem Befehl

$ git pull

aktualisieren und dann

$ makepkg -si

ausführen, um das Paket zu aktualisieren.

Feedback

Kommentierung von Paketen

Das AUR Web Interface hat eine Kommentarfunktion, die es Nutzern erlaubt, Vorschläge und Feedback zu Verbesserungen an den PKGBUILD-Beitragenden zu geben.

Tipp: Vermeiden Sie es, Patches oder PKGBUILDs in den Kommentarbereich einzufügen: Sie werden schnell überflüssig und nehmen nur unnötig viel Platz ein. Schicke diese Dateien stattdessen per E-Mail an den Betreuer oder verwende ein Pastebin.

Python-Markdown bietet eine grundlegende Markdown-Syntax, um Kommentare zu formatieren.

Hinweis:

  • Diese Implementierung hat einige gelegentliche Unterschiede zu den offiziellen Syntaxregeln.
  • Commit Hashes an das Git-Repository des Pakets und Verweise auf Flyspray-Tickets werden automatisch in Links umgewandelt.
  • Lange Kommentare werden eingeklappt und können bei Bedarf erweitert werden.

Abstimmen für Pakete

Eine der einfachsten Aktivitäten für alle Arch-Benutzer ist es, das AUR zu durchsuchen und über die Online-Schnittstelle für ihre Lieblingspakete zu stimmen. Alle Pakete kommen für die Aufnahme in das Community Repository in Frage, und die Anzahl der Stimmen ist eine der Überlegungen in diesem Prozess; es ist im Interesse aller, abzustimmen!

Melden Sie sich auf der AUR-Website an, um beim Durchsuchen der Pakete die Option „Vote for this package“ zu erhalten. Nach der Anmeldung ist es auch möglich, von der Kommandozeile aus mit aurvoteAUR, aurvote-gitAUR oder aur-auto-vote-gitAUR abzustimmen.

Alternativ können Sie, wenn Sie die ssh-Authentifizierung eingerichtet haben, direkt von der Kommandozeile aus mit Ihrem ssh-Schlüssel abstimmen. Das bedeutet, dass Sie Ihr AUR-Passwort nicht speichern oder eintippen müssen.

$ ssh [email protected] vote package_name

Pakete als veraltet kennzeichnen

Zuerst sollten Sie das Paket als veraltet kennzeichnen und Details dazu angeben, warum das Paket veraltet ist, vorzugsweise mit Links zur Veröffentlichungsankündigung oder dem Tarball der neuen Version.

Sie sollten auch versuchen, den Betreuer direkt per E-Mail zu erreichen. Wenn Sie nach zwei Wochen keine Antwort vom Betreuer erhalten haben, können Sie einen Orphan-Request einreichen. Siehe AUR Einreichungsrichtlinien#Anfragen für Details.

Hinweis: VCS-Pakete werden nicht als veraltet angesehen, wenn sich die pkgver ändert und sind in diesem Fall nicht zu kennzeichnen.

Debugging des Paket-Erstellungsprozesses

  1. Stellen Sie sicher, dass Ihre Erstellungsumgebung auf dem neuesten Stand ist, indem Sie ein Upgrade durchführen, bevor Sie etwas erstellen.
  2. Stellen Sie sicher, dass Sie die base-devel Gruppe installiert haben.
  3. Verwenden Sie die Option -s mit makepkg, um alle benötigten Abhängigkeiten zu überprüfen und zu installieren, bevor Sie den Build-Prozess starten.
  4. Versuchen Sie die Standardkonfiguration von makepkg.
  5. Siehe Makepkg#Fehlerbehebung für häufige Probleme.

Wenn Sie Probleme mit der Erstellung eines Pakets haben, lesen Sie zuerst dessen PKGBUILD und die Kommentare auf seiner AUR-Seite.

Es ist möglich, dass ein PKGBUILD für jeden kaputt ist. Wenn Sie es nicht selbst herausfinden können, melden Sie es dem Betreuer (z.B. indem Sie die Fehler, die Sie erhalten, in den Kommentaren auf der AUR-Seite posten). Sie können auch im Forum AUR Issues, Discussion & PKGBUILD Requests Hilfe suchen.

Der Grund ist vielleicht doch nicht trivial. Benutzerdefinierte CFLAGS, LDFLAGS und MAKEFLAGS können zu Fehlern führen. Um Probleme zu vermeiden, die durch Ihre spezielle Systemkonfiguration verursacht werden, bauen Sie Pakete in einem sauberen chroot. Wenn der Erstellungsprozess in einem sauberen Chroot immer noch fehlschlägt, liegt das Problem wahrscheinlich bei PKGBUILD.

Siehe Erstellen von Paketen#Paketüberprüfung zur Verwendung von namcap. Wenn Sie ein PKGBUILD überprüfen lassen möchten, posten Sie es auf der aur-general Mailingliste, um Feedback von den TUs und anderen AUR-Mitgliedern zu erhalten, oder im Forum „Erstellen & Ändern von Paketen“. Sie können auch im IRC-Kanal #archlinux-aur auf Freenode um Hilfe bitten.

Pakete einreichen

Benutzer können PKGBUILDs über das Arch User Repository teilen. Siehe AUR-Richtlinien für das Einreichen von Paketen für Details.

Übersetzung der Weboberfläche

Siehe i18n.txt im AUR-Quellbaum für Informationen über die Erstellung und Pflege der Übersetzung der AUR-Weboberfläche.

FAQ

Welche Art von Paketen sind im AUR erlaubt?

Die Pakete auf dem AUR sind lediglich „Build-Skripte“, d.h. Rezepte zum Erstellen von Binärdateien für pacman. In den meisten Fällen ist alles erlaubt, vorbehaltlich der Nützlichkeits- und Umfangsrichtlinien, solange man sich an die Lizenzbedingungen des Inhalts hält. In anderen Fällen, in denen es heißt, dass Sie nicht auf Downloads verlinken dürfen, d. h. auf Inhalte, die nicht weiterverteilt werden dürfen, dürfen Sie nur den Dateinamen selbst als Quelle verwenden. Dies bedeutet und erfordert, dass die Benutzer den eingeschränkten Quellcode bereits im Build-Verzeichnis haben, bevor sie das Paket erstellen. Im Zweifelsfall fragen Sie nach.

Wie kann ich für Pakete im AUR stimmen?

Siehe #Abstimmung für Pakete.

Was ist ein vertrauenswürdiger Benutzer / TU?

Ein Trusted User, kurz TU, ist eine Person, die ausgewählt wurde, um das AUR und das Community Repository zu überwachen. Sie sind diejenigen, die beliebte PKGBUILDs in der Community pflegen und insgesamt das AUR am Laufen halten.

Was ist der Unterschied zwischen dem Arch User Repository und dem Community Repository?

Im Arch User Repository werden alle PKGBUILDs, die von Benutzern eingereicht werden, gespeichert und müssen manuell mit makepkg erstellt werden. Wenn PKGBUILDs genügend Interesse der Community und die Unterstützung einer TU erhalten, werden sie in das Community Repository verschoben (das von den TUs gepflegt wird), wo die Binärpakete mit pacman installiert werden können.

Foo im AUR ist veraltet; was soll ich tun?

Siehe #Pakete als veraltet kennzeichnen.

In der Zwischenzeit können Sie versuchen, das Paket selbst zu aktualisieren, indem Sie die PKGBUILD lokal bearbeiten. Manchmal erfordern Aktualisierungen keine Änderungen am Build- oder Paketprozess, in diesem Fall reicht es aus, das pkgver oder source Array zu aktualisieren.

Foo im AUR kompiliert nicht, wenn ich makepkg ausführe; was soll ich tun?

Wahrscheinlich übersehen Sie etwas Triviales, siehe #Debugging des Paketerstellungsprozesses.

ERROR: Eine oder mehrere PGP-Signaturen konnten nicht verifiziert werden!; was soll ich tun?

Wahrscheinlich haben Sie nicht den/die erforderlichen öffentlichen Schlüssel in Ihrem persönlichen Schlüsselbund, um heruntergeladene Dateien zu verifizieren. Siehe Makepkg#Signaturprüfung für Details.

Wie erstelle ich ein PKGBUILD?

Lesen Sie die AUR-Einreichungsrichtlinien#Regeln für die Einreichung, dann siehe Erstellen von Paketen.

Ich habe ein PKGBUILD, das ich einreichen möchte; kann es jemand überprüfen, um zu sehen, ob es irgendwelche Fehler enthält?

Es gibt mehrere Kanäle, um Ihr Paket zur Überprüfung einzureichen; siehe #Debugging the package build process.

Wie bekommt man ein PKGBUILD in das Community Repository?

In der Regel sind mindestens 10 Stimmen erforderlich, damit etwas in die Gemeinschaft aufgenommen wird. Wenn jedoch eine TU ein Paket unterstützen möchte, wird es oft im Repository zu finden sein.

Das Erreichen der erforderlichen Mindestanzahl von Stimmen ist nicht die einzige Voraussetzung, es muss auch eine TU geben, die bereit ist, das Paket zu pflegen. TUs sind nicht verpflichtet, ein Paket in das Community Repository zu verschieben, selbst wenn es Tausende von Stimmen hat.

Wenn ein sehr beliebtes Paket im AUR bleibt, dann liegt das meist daran:

  • Arch Linux hat bereits eine andere Version eines Pakets in den Repositories
  • Seine Lizenz verbietet die Weiterverbreitung
  • Es hilft dabei, von Nutzern eingereichte PKGBUILDs zu finden. AUR-Helfer werden per Definition nicht unterstützt.

Siehe auch Regeln für Pakete, die in die Community Repo gelangen.

Wie kann ich wiederholte Build-Prozesse beschleunigen?

Siehe Makepkg#Verbesserung der Kompilierzeiten.

Was ist der Unterschied zwischen foo und foo-git Paketen?

Viele AUR-Pakete gibt es in „stabilen“ Release- und „instabilen“ Entwicklungsversionen. Entwicklungspakete haben in der Regel ein Suffix, das ihr Versionskontrollsystem angibt und sind nicht für den regulären Gebrauch gedacht, können aber neue Funktionen oder Fehlerbehebungen enthalten. Da diese Pakete beim Ausführen von makepkg nur den neuesten verfügbaren Quellcode herunterladen, spiegelt ihr pkgver() im AUR keine Upstream-Änderungen wider. Ebenso können diese Pakete keine Authentizitätsprüfsumme über VCS-Quellen durchführen.

Siehe auch Systemwartung#Verwendung bewährter Softwarepakete.

Warum ist foo aus dem AUR verschwunden?

Es ist möglich, dass das Paket von einer TU übernommen wurde und sich nun im Community Repository befindet.

Pakete können gelöscht werden, wenn sie die Regeln für die Einreichung nicht erfüllt haben. Der Grund für die Löschung ist in den aur-requests-Archiven zu finden.

Hinweis: Das Git-Repository für ein gelöschtes Paket bleibt normalerweise verfügbar. Siehe AUR-Einreichungsrichtlinien#Requests für Details.

Wenn das Paket früher in AUR3 existierte, ist es möglicherweise nicht nach AUR4 migriert worden. Siehe die #Git Repositories für AUR3-Pakete, wo diese erhalten sind.

Wie finde ich heraus, ob eines meiner installierten Pakete aus dem AUR verschwunden ist?

Der einfachste Weg ist, den HTTP-Status der AUR-Seite des Pakets zu überprüfen:

$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)

Wie kann ich eine Liste aller AUR-Pakete erhalten?

  • Benutze aurpkglist von python3-aurAUR

Siehe auch

  • AUR Web Interface
  • AUR Mailing List
  • DeveloperWiki:AUR Cleanup Day

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.