Arch User Repository

De Arch User Repository (AUR) is een door de gemeenschap aangestuurde opslagplaats voor Arch-gebruikers. Het bevat pakketbeschrijvingen (PKGBUILDs) waarmee je een pakket vanaf de broncode kunt compileren met makepkg en het vervolgens kunt installeren via pacman. De AUR is gemaakt om nieuwe pakketten uit de gemeenschap te organiseren en te delen en om populaire pakketten sneller in het gemeenschapsreservoir op te nemen. Dit document legt uit hoe gebruikers de AUR kunnen benaderen en gebruiken.

Een groot aantal nieuwe pakketten die de officiële repositories binnenkomen, beginnen in de AUR. In de AUR kunnen gebruikers hun eigen pakket builds (PKGBUILD en gerelateerde bestanden) bijdragen. De AUR gemeenschap heeft de mogelijkheid om te stemmen voor pakketten in de AUR. Als een pakket populair genoeg wordt – mits het een compatibele licentie en een goede verpakkingstechniek heeft – kan het in de gemeenschapsrepository worden geplaatst (direct toegankelijk met pacman of abs).

Waarschuwing: AUR-pakketten zijn door gebruikers geproduceerde inhoud. Deze PKGBUILDs zijn volledig onofficieel en zijn niet grondig doorgelicht. Elk gebruik van de geleverde bestanden is op eigen risico.

Aan de slag

Gebruikers kunnen PKGBUILDs zoeken en downloaden van de AUR Web Interface. Deze PKGBUILDs kunnen worden gebouwd in installeerbare pakketten met makepkg, dan geïnstalleerd met pacman.

  • Zorg ervoor dat de base-devel pakketgroep volledig is geïnstalleerd (pacman -S --needed base-devel).
  • Bekijk de #FAQ voor antwoorden op de meest gestelde vragen.
  • U wilt misschien /etc/makepkg.conf aanpassen om het bouwproces te optimaliseren voor uw systeem voordat u pakketten bouwt van de AUR. Een aanzienlijke verbetering in package-bouwtijden kan gerealiseerd worden op systemen met multi-core processoren door de MAKEFLAGS variabele aan te passen, door meerdere kernen te gebruiken voor compressie, of door een ander compressie-algoritme te gebruiken. Gebruikers kunnen ook hardware-specifieke compiler optimalisaties inschakelen via de CFLAGS variabele. Zie makepkg#Tips and tricks voor meer informatie.

Het is ook mogelijk om met de AUR te communiceren via SSH: type ssh [email protected] help voor een lijst van beschikbare commando’s.

Geschiedenis

In het begin was er ftp://ftp.archlinux.org/incoming, en mensen droegen bij door simpelweg de PKGBUILD, de benodigde aanvullende bestanden, en het gebouwde pakket zelf naar de server te uploaden. Het pakket en de bijbehorende bestanden bleven daar totdat een pakketbeheerder het programma zag en het adopteerde.

Toen werden de Trusted User Repositories geboren. Bepaalde individuen in de gemeenschap kregen toestemming om hun eigen repositories te hosten, zodat iedereen ze kon gebruiken. De AUR breidde zich uit op deze basis, met het doel om het zowel flexibeler als bruikbaarder te maken. In feite worden de AUR-onderhouders nog steeds aangeduid als TU’s (Trusted Users).

Tussen 2015-06-08 en 2015-08-08 ging de AUR over van versie 3.5.1 naar 4.0.0, waarbij het gebruik van Git-repositories voor het publiceren van de PKGBUILDs werd geïntroduceerd.Bestaande pakketten werden gedropt, tenzij handmatig gemigreerd naar de nieuwe infrastructuur door hun maintainers.

Git repositories voor AUR3 pakketten

Het AUR Archief op GitHub heeft een repository voor elk pakket dat in AUR 3 zat ten tijde van de migratie.Als alternatief is er de aur3-mirror repository die hetzelfde biedt.

Pakketten installeren en upgraden

Het installeren van pakketten van de AUR is een relatief eenvoudig proces. In essentie:

  1. Krijg de build bestanden, inclusief de PKGBUILD en mogelijk andere benodigde bestanden, zoals systemd units en patches (vaak niet de eigenlijke code).
  2. Verifieer dat de PKGBUILD en bijbehorende bestanden niet kwaadaardig of onbetrouwbaar zijn.
  3. Uitvoeren makepkg -si in de directory waar de bestanden zijn opgeslagen. Dit zal de code downloaden, de afhankelijkheden oplossen met pacman, compileren, verpakken, en het pakket installeren.
Opmerking: De AUR wordt niet ondersteund, dus alle pakketten die u installeert zijn uw verantwoordelijkheid om te updaten, niet die van pacman. Als pakketten in de officiële repositories worden bijgewerkt, moet u alle AUR-pakketten die van die bibliotheken afhankelijk zijn opnieuw bouwen.

Prerequisites

Zorg er eerst voor dat de benodigde gereedschappen zijn geïnstalleerd door de base-devel groep volledig te installeren, die make en andere gereedschappen bevat die nodig zijn voor het compileren vanaf broncode.

Tip: Gebruik de --needed vlag bij het installeren van de base-devel groep om pakketten die u al heeft over te slaan in plaats van ze opnieuw te installeren.
Opmerking: Pakketten in de AUR gaan ervan uit dat de base-devel groep is geïnstalleerd, dat wil zeggen dat ze de leden van de groep niet expliciet als build afhankelijkheden vermelden.

Volgende kies een geschikte build directory. Een build directory is eenvoudigweg een directory waar het pakket zal worden gemaakt of “gebouwd” en kan elke directory zijn. De voorbeelden in de volgende secties zullen ~/builds gebruiken als de build directory.

Acquire build files

Locate the package in de AUR. Dit wordt gedaan met het zoekveld bovenaan de AUR home page. Klikken op de naam van de toepassing in de zoeklijst brengt een informatie pagina over het pakket naar boven. Lees de beschrijving door om te bevestigen dat dit het gewenste pakket is, noteer wanneer het pakket voor het laatst is bijgewerkt, en lees eventuele opmerkingen.

Er zijn verschillende methodes om de bouwbestanden voor een pakket te verkrijgen:

  • Kloon zijn git repository, met als label “Git Clone URL” in de “Pakket Details” op zijn AUR-pagina. Dit is de voorkeursmethode, die als voordeel heeft dat u gemakkelijk updates voor het pakket kunt verkrijgen via git pull.
$ git clone https://aur.archlinux.org/package_name.git
  • Download een snapshot door te klikken op de link “Download snapshot” onder “Pakketacties” aan de rechterkant van de AUR-pagina, of in een terminal:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Opmerking: Het snapshotbestand is gecomprimeerd en moet worden uitgepakt (bij voorkeur in een map die apart is gezet voor AUR-builds): tar -xvf package_name.tar.gz

Verwerf een PGP publieke sleutel indien nodig

Controleer of een handtekeningbestand in de vorm van .sig of .asc deel uitmaakt van de PKGBUILD bron-array, als dat het geval is, verwerf dan een van de publieke sleutels die vermeld staan in de PKGBUILD validpgpkeys array. Zie makepkg#Signature checking voor meer informatie.

Build en installeer het pakket

Wijzig mappen naar de directory die de PKGBUILD van het pakket bevat.

$ cd package_name
Waarschuwing: Controleer zorgvuldig de PKGBUILD, eventuele .install bestanden, en alle andere bestanden in de git repository van het pakket op kwaadaardige of gevaarlijke commando’s. Als je twijfelt, bouw het pakket dan niet, en vraag advies op de forums of mailinglijst. Er is al eerder kwaadaardige code in pakketten gevonden.

Bekijk de inhoud van alle meegeleverde bestanden. Om bijvoorbeeld de pager less te gebruiken om PKGBUILD te bekijken, doe je:

$ less PKGBUILD
Tip: Als je een pakket aan het updaten bent, wil je misschien de veranderingen sinds de laatste commit bekijken.

  • Om veranderingen sinds de laatste git commit te bekijken, kun je git show gebruiken.
  • Om veranderingen sinds de laatste commit met vimdiff te bekijken, doe je git difftool @~..@ vimdiff. Het voordeel van vimdiff is dat je de volledige inhoud van elk bestand ziet, samen met indicatoren over wat er veranderd is.

Maak het pakket. Na het handmatig bevestigen van de inhoud van de bestanden, voert u makepkg uit als een normale gebruiker:

$ makepkg -si
  • -s/--syncdeps lost automatisch alle afhankelijkheden op en installeert deze met pacman alvorens te bouwen. Als het pakket afhangt van andere AUR pakketten, zult u deze eerst handmatig moeten installeren.
  • -i/--install installeert het pakket als het succesvol is gebouwd. Als alternatief kan het gebouwde pakket worden geïnstalleerd met pacman -U package_name.pkg.tar.zst.

Andere nuttige vlaggen zijn

  • -r/--rmdeps verwijdert afhankelijkheden na het bouwen, omdat ze niet langer nodig zijn. Het is echter mogelijk dat deze afhankelijkheden de volgende keer dat het pakket wordt bijgewerkt opnieuw moeten worden geïnstalleerd.
  • -c/--clean ruimt tijdelijke build-bestanden op na de build, omdat ze niet langer nodig zijn. Deze bestanden zijn meestal alleen nodig bij het debuggen van het bouwproces.
Opmerking: Het bovenstaande voorbeeld is slechts een korte samenvatting van het bouwproces. Het wordt ten zeerste aanbevolen om de artikelen makepkg en ABS te lezen voor meer details.

Pakketten bijwerken

In de directory met de PKGBUILD van het pakket moet u eerst de bestanden en wijzigingen bijwerken met het commando

$ git pull

en dan

$ makepkg -si

uitvoeren om het pakket bij te werken.

Feedback

Commentaar op pakketten

De AUR-webinterface heeft een commentaarfaciliteit waarmee gebruikers suggesties en feedback kunnen geven over verbeteringen aan de PKGBUILD-bijdrager.

Tip: Vermijd het plakken van patches of PKGBUILDs in de commentaarsectie: ze worden snel verouderd en nemen alleen maar nodeloos veel ruimte in beslag. E-mail die bestanden in plaats daarvan naar de beheerder, of gebruik zelfs een pastebin.

Python-Markdown biedt basis Markdown syntax om commentaar te formatteren.

Opmerking:

  • Deze implementatie heeft enkele incidentele verschillen met de officiële syntax regels.
  • Commit hashes naar de Git repository van het pakket en verwijzingen naar Flyspray tickets worden automatisch geconverteerd naar links.
  • Lange commentaren worden samengevouwen en kunnen op verzoek worden uitgebreid.

Votten voor pakketten

Een van de gemakkelijkste activiteiten voor alle Arch gebruikers is het doorbladeren van de AUR en stemmen op hun favoriete pakketten met behulp van de online interface. Alle pakketten komen in aanmerking voor adoptie door een TU voor opname in het gemeenschapsrepository, en het aantal stemmen is een van de overwegingen in dat proces; het is in ieders belang om te stemmen!

Teken in op de AUR website om een “Stem voor dit pakket” optie te krijgen tijdens het browsen van pakketten. Na aanmelding is het ook mogelijk om te stemmen vanaf de commandline met aurvoteAUR, aurvote-gitAUR of aur-auto-vote-gitAUR.

Als alternatief, als u ssh-authenticatie hebt ingesteld, kunt u direct stemmen vanaf de commandline met uw ssh-sleutel. Dit betekent dat u uw AUR-wachtwoord niet hoeft op te slaan of in te typen.

$ ssh [email protected] vote package_name

Flagging packages out-of-date

In de eerste plaats moet u het pakket out-of-date markeren met details over waarom het pakket verouderd is, bij voorkeur met links naar de aankondiging van de release of de tarball van de nieuwe release.

U moet ook proberen om de maintainer rechtstreeks per e-mail te bereiken. Als er na twee weken nog geen reactie is van de maintainer, kunt u een wees-aanvraag indienen. Zie AUR indieningsrichtlijnen#Verzoeken voor details.

Opmerking: VCS-pakketten worden niet als verouderd beschouwd wanneer de pkgver wijzigt en hoeven in dit geval niet te worden gemarkeerd.

Debugging van het pakket-bouwproces

  1. Zorg ervoor dat uw bouwomgeving up-to-date is door te upgraden voordat u iets bouwt.
  2. Zorg ervoor dat u de base-devel groep hebt geïnstalleerd.
  3. Gebruik de -s optie met makepkg om alle benodigde dependencies te controleren en te installeren alvorens het bouwproces te starten.
  4. Probeer de standaard makepkg configuratie.
  5. Zie Makepkg#Troubleshooting voor veel voorkomende problemen.

Als u problemen hebt met het bouwen van een pakket, lees dan eerst zijn PKGBUILD en de opmerkingen op zijn AUR pagina.

Het is mogelijk dat een PKGBUILD voor iedereen kapot is. Als u er zelf niet uitkomt, meld het dan aan de beheerder (bijv. door de fouten die u krijgt te posten in het commentaar op de AUR-pagina). U kunt ook hulp zoeken in het AUR Issues, Discussion & PKGBUILD Requests forum.

De reden zou wel eens niet triviaal kunnen zijn. Aangepaste CFLAGS, LDFLAGS en MAKEFLAGS kunnen storingen veroorzaken. Om problemen veroorzaakt door uw specifieke systeemconfiguratie te vermijden, bouw dan pakketten in een schone chroot. Als het bouwproces nog steeds mislukt in een schone chroot, ligt het probleem waarschijnlijk bij de PKGBUILD.

Zie Aanmaken van packages#Checking package sanity over het gebruik van namcap. Als u een PKGBUILD wil laten nakijken, post het dan op de aur-general mailing list om feedback te krijgen van de TU’s en mede AUR leden, of het Creating & Modifying Packages forum. U zou ook hulp kunnen zoeken in het IRC kanaal #archlinux-aur op Freenode.

Pakketten indienen

Gebruikers kunnen PKGBUILDs delen via de Arch User Repository. Zie de AUR indieningsrichtlijnen voor details.

Web interface vertaling

Zie i18n.txt in de AUR source tree voor informatie over het maken en onderhouden van vertalingen van de AUR Web Interface.

FAQ

Wat voor soort pakketten zijn toegestaan op de AUR?

De pakketten op de AUR zijn slechts “build scripts”, d.w.z. recepten om binaries te bouwen voor pacman. In de meeste gevallen is alles toegestaan, onder voorbehoud van de richtlijnen voor bruikbaarheid en reikwijdte, zolang u zich houdt aan de licentievoorwaarden van de inhoud. Voor andere gevallen, waar vermeld staat dat “u niet mag linken” naar downloads, d.w.z. inhoud die niet herdistribueerbaar is, mag u alleen de bestandsnaam zelf als bron gebruiken. Dit betekent en vereist dat gebruikers de beperkte broncode al in de build directory hebben voordat ze het pakket bouwen. Bij twijfel, vraag het.

Hoe kan ik stemmen voor pakketten in de AUR?

Zie #Votten voor pakketten.

Wat is een Vertrouwde Gebruiker / TU?

Een Trusted User, kort TU, is een persoon die gekozen is om toezicht te houden op de AUR en het community repository. Zij zijn degenen die populaire PKGBUILDs in de gemeenschap onderhouden, en in het algemeen de AUR draaiende houden.

Wat is het verschil tussen de Arch User Repository en de community repository?

De Arch User Repository is waar alle PKGBUILDs die gebruikers insturen worden opgeslagen, en handmatig met makepkg gebouwd moeten worden. Wanneer PKGBUILDs genoeg interesse krijgen van de gemeenschap en de steun van een TU, worden ze verplaatst naar de community repository (onderhouden door de TUs), waar de binaire pakketten kunnen worden geïnstalleerd met pacman.

Foo in de AUR is verouderd; wat moet ik doen?

Zie #Flagging packages out-of-date.

In de tussentijd kunt u proberen om het pakket zelf bij te werken door de PKGBUILD lokaal te bewerken. Soms vereisen updates geen veranderingen in het bouw- of pakketproces, in welk geval het eenvoudigweg bijwerken van de pkgver of source array voldoende is.

Foo in de AUR compileert niet als ik makepkg uitvoer; wat moet ik doen?

U mist waarschijnlijk iets triviaals, zie #Debugging the package build process.

ERROR: Een of meer PGP-handtekeningen konden niet worden geverifieerd; wat moet ik doen?

Het meest waarschijnlijk is dat u niet de vereiste publieke sleutel(s) in uw persoonlijke sleutelring heeft om gedownloade bestanden te verifiëren. Zie Makepkg#Signature checking voor details.

Hoe maak ik een PKGBUILD aan?

Raadpleeg de AUR indieningsrichtlijnen#Rules of submission, zie dan packages aanmaken.

Ik heb een PKGBUILD die ik zou willen indienen; kan iemand deze controleren om te zien of er fouten in zitten?

Er zijn verschillende kanalen beschikbaar om uw pakket ter beoordeling in te dienen; zie #Debugging the package build process.

Hoe krijg ik een PKGBUILD in de gemeenschaps repository?

Normaal gesproken zijn er minstens 10 stemmen nodig om iets in de community te krijgen. Echter, als een TU een pakket wil ondersteunen, zal het vaak in de repository te vinden zijn.

Het bereiken van het vereiste minimum aantal stemmen is niet de enige vereiste, er moet ook een TU zijn die bereid is het pakket te onderhouden. TU’s zijn niet verplicht om een pakket naar het gemeenschapsrepository te verplaatsen, ook al heeft het duizenden stemmen.

Wanneer een zeer populair pakket in de AUR blijft, is dat meestal omdat:

  • Arch Linux al een andere versie van een pakket in de repositories heeft
  • De licentie ervan verbiedt herdistributie
  • Het helpt bij het terugvinden van door gebruikers ingezonden PKGBUILDs. AUR helpers worden per definitie niet ondersteund.

Zie ook Regels voor Pakketten die in de community Repo komen.

Hoe kan ik herhaalde bouwprocessen versnellen?

Zie ook Makepkg#Versnellen van compileertijden.

Wat is het verschil tussen foo en foo-git pakketten?

Veel AUR pakketten komen in “stabiele” release en “onstabiele” ontwikkel versies. Ontwikkelingspakketten hebben meestal een achtervoegsel dat hun versiebeheersysteem aanduidt en zijn niet bedoeld voor regelmatig gebruik, maar kunnen nieuwe functies of bugfixes bieden. Omdat deze packages enkel de laatst beschikbare broncode downloaden wanneer u makepkg uitvoert, geeft hun pkgver() in de AUR geen upstream veranderingen weer. Evenzo kunnen deze pakketten geen authenticiteitscontroles uitvoeren op een VCS bron.

Zie ook Systeemonderhoud#Gebruik bewezen software pakketten.

Waarom is foo verdwenen uit de AUR?

Het is mogelijk dat het pakket is overgenomen door een TU en nu in de community repository staat.

Pakketten kunnen worden verwijderd als ze niet voldeden aan de regels voor indiening. Zie de aur-requests archieven voor de reden van verwijdering.

Opmerking: De git repository voor een verwijderd pakket blijft meestal beschikbaar. Zie AUR indieningsrichtlijnen#Requests voor details.

Als het pakket vroeger in AUR3 bestond, is het misschien niet gemigreerd naar AUR4. Zie de #Git repositories voor AUR3 pakketten waar deze bewaard zijn gebleven.

Hoe kom ik erachter of een van mijn geïnstalleerde pakketten uit AUR is verdwenen?

De eenvoudigste manier is om de HTTP-status van de AUR-pagina van het pakket te controleren:

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

Hoe kan ik een lijst van alle AUR-pakketten krijgen?

  • Gebruik aurpkglist van python3-aurAUR

Zie ook

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

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.