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).
PKGBUILD
s 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 PKGBUILD
s 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 deMAKEFLAGS
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 deCFLAGS
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 PKGBUILD
s 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:
- Krijg de build bestanden, inclusief de PKGBUILD en mogelijk andere benodigde bestanden, zoals systemd units en patches (vaak niet de eigenlijke code).
- Verifieer dat de
PKGBUILD
en bijbehorende bestanden niet kwaadaardig of onbetrouwbaar zijn. - 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.
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.
--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.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
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
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
- 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 metpacman -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.
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.
PKGBUILD
s 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.
- 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.
pkgver
wijzigt en hoeven in dit geval niet te worden gemarkeerd.Debugging van het pakket-bouwproces
- Zorg ervoor dat uw bouwomgeving up-to-date is door te upgraden voordat u iets bouwt.
- Zorg ervoor dat u de base-devel groep hebt geïnstalleerd.
- Gebruik de
-s
optie metmakepkg
om alle benodigde dependencies te controleren en te installeren alvorens het bouwproces te starten. - Probeer de standaard makepkg configuratie.
- 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 PKGBUILD
s 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.
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