Arch User Repository

Arch User Repository (AUR) er et fællesskabsdrevet repository for Arch-brugere. Det indeholder pakkebeskrivelser (PKGBUILDs), som giver dig mulighed for at kompilere en pakke fra kildekoden med makepkg og derefter installere den via pacman. AUR blev oprettet for at organisere og dele nye pakker fra fællesskabet og for at hjælpe med at fremskynde populære pakkers optagelse i fællesskabsdepotet. Dette dokument forklarer, hvordan brugere kan få adgang til og bruge AUR.

En god del af de nye pakker, som kommer ind i de officielle repositorier, starter i AUR. I AUR har brugerne mulighed for at bidrage med deres egne pakke builds (PKGBUILD og relaterede filer). AUR-fællesskabet har mulighed for at stemme på pakker i AUR. Hvis en pakke bliver populær nok – forudsat at den har en kompatibel licens og en god pakningsteknik – kan den komme ind i fællesskabsdepotet (direkte tilgængelig med pacman eller abs).

Advarsel: AUR-pakker er brugerproduceret indhold. Disse PKGBUILDs er helt uofficielle og er ikke blevet grundigt gennemgået. Enhver brug af de leverede filer er på egen risiko.

Kom i gang

Brugere kan søge og downloade PKGBUILDs fra AUR’s webgrænseflade. Disse PKGBUILDs kan bygges til installerbare pakker ved hjælp af makepkg og derefter installeres ved hjælp af pacman.

  • Sørg for at pakkegruppen base-devel er installeret fuldt ud (pacman -S --needed base-devel).
  • Se #FAQ for at få svar på de mest almindelige spørgsmål.
  • Du kan justere /etc/makepkg.conf for at optimere byggeprocessen til dit system, før du bygger pakker fra AUR. Der kan opnås en betydelig forbedring af pakkeopbygningstiden på systemer med processorer med flere kerner ved at justere variablen MAKEFLAGS, ved at bruge flere kerner til komprimering eller ved at bruge en anden komprimeringsalgoritme. Brugere kan også aktivere hardwarespecifikke compileroptimeringer via CFLAGS-variablen. Se makepkg#Tips og tricks for flere oplysninger.

Det er også muligt at interagere med AUR via SSH: skriv ssh [email protected] help for at få en liste over tilgængelige kommandoer.

Historie

I begyndelsen var der ftp://ftp.archlinux.org/incoming, og folk bidrog ved blot at uploade PKGBUILD, de nødvendige supplerende filer og selve den opbyggede pakke til serveren. Pakken og de tilhørende filer forblev der, indtil en Package Maintainer så programmet og overtog det.

Derpå blev Trusted User Repositories født. Visse personer i fællesskabet fik lov til at være værter for deres egne repositories, som alle kunne bruge. AUR blev udvidet på dette grundlag, med det formål at gøre det både mere fleksibelt og mere anvendeligt. Faktisk omtales AUR-vedligeholderne stadig som TU’er (Trusted Users).

Mellem 2015-06-08 og 2015-08-08 overgik AUR fra version 3.5.1 til 4.0.0.0, hvilket introducerede brugen af Git-repositorier til udgivelse af PKGBUILDs. Eksisterende pakker blev droppet, medmindre de manuelt blev migreret til den nye infrastruktur af deres vedligeholdere.

Git-repositorier for AUR3-pakker

AUR-arkivet på GitHub har et repositorium for hver pakke, der var i AUR 3 på tidspunktet for overgangen. alternativt er der aur3-mirror-repositoriet, som giver det samme.

Installation og opgradering af pakker

Installation af pakker fra AUR er en relativt simpel proces. I hovedtræk:

  1. Erhverv byggefilerne, herunder PKGBUILD og muligvis andre nødvendige filer, såsom systemd-enheder og patches (ofte ikke den egentlige kode).
  2. Kontroller, at PKGBUILD og de ledsagende filer ikke er ondsindede eller utroværdige.
  3. Kør makepkg -si i den mappe, hvor filerne er gemt. Dette vil hente koden, løse afhængighederne med pacman, kompilere den, pakke den og installere pakken.
Bemærk: AUR understøttes ikke, så alle pakker, du installerer, er dit ansvar for at opdatere, ikke pacmans. Hvis pakker i de officielle repositories opdateres, skal du genopbygge alle AUR-pakker, der er afhængige af disse biblioteker.

Forudsætninger

Sørg først for, at de nødvendige værktøjer er installeret ved at installere base-devel-gruppen fuldt ud, som indeholder make og andre værktøjer, der er nødvendige for at kompilere fra kildekode.

Tip: Brug --needed-flaget, når du installerer base-devel-gruppen, for at springe over pakker, du allerede har, i stedet for at geninstallere dem.
Bemærk: Pakker i AUR antager, at base-devel-gruppen er installeret, dvs. de angiver ikke gruppens medlemmer eksplicit som byggeafhængigheder.

Vælg derefter en passende byggemappe. En build-mappe er simpelthen en mappe, hvor pakken vil blive lavet eller “bygget”, og kan være en hvilken som helst mappe. Eksemplerne i de følgende afsnit vil bruge ~/builds som build-mappen.

Acquire build files

Lokaliser pakken i AUR. Dette gøres ved hjælp af søgefeltet øverst på AUR-hjemmesiden. Hvis du klikker på programmets navn i søgelisten, vises en informationsside om pakken. Læs beskrivelsen igennem for at bekræfte, at det er den ønskede pakke, noter hvornår pakken sidst blev opdateret, og læs eventuelle kommentarer.

Der er flere metoder til at få fat i buildfilerne for en pakke:

  • Klonér dens git-repositorium, mærket “Git Clone URL” i “Package Details” på dens AUR-side. Dette er den foretrukne metode, og en fordel ved den er, at du nemt kan få opdateringer til pakken via git pull.

$ git clone https://aur.archlinux.org/package_name.git
  • Hent et snapshot, enten ved at klikke på linket “Download snapshot” under “Package Actions” i højre side på dens AUR-side, eller i en terminal:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Bemærk: Snapshot-filen er komprimeret og skal udpakkes (helst i en mappe afsat til AUR-builds): tar -xvf package_name.tar.gz

Erhverv en offentlig PGP-nøgle, hvis det er nødvendigt

Kontroller, om en signaturfil i form af .sig eller .asc er en del af PKGBUILD-kildearrayet, hvis det er tilfældet, skal du erhverve en af de offentlige nøgler, der er opført i PKGBUILD-arrayet validpgpkeys. Se makepkg#Signaturkontrol for flere oplysninger.

Byg og installer pakken

Opfør mapper til den mappe, der indeholder pakkens PKGBUILD.

$ cd package_name
Advarsel: Kontroller omhyggeligt PKGBUILD, alle .install-filer og alle andre filer i pakkens git-repositorium for ondsindede eller farlige kommandoer. Hvis du er i tvivl, skal du ikke bygge pakken, og søge råd i forummet eller på postlisten. Der er tidligere blevet fundet skadelig kode i pakker.

Se indholdet af alle leverede filer. For at bruge personsøgeren less til at se PKGBUILD gør du for eksempel:

$ less PKGBUILD
Tip: Hvis du opdaterer en pakke, vil du måske se på ændringerne siden den sidste commit.

  • For at se ændringer siden den sidste git commit kan du bruge git show.
  • For at se ændringer siden den sidste commit ved hjælp af vimdiff gør du git difftool @~..@ vimdiff. Fordelen ved vimdiff er, at du kan se hele indholdet af hver fil sammen med indikatorer for, hvad der er ændret.

Makér pakken. Når du manuelt har bekræftet indholdet af filerne, skal du køre makepkg som en normal bruger:

$ makepkg -si
  • -s/--syncdeps løser og installerer automatisk eventuelle afhængigheder med pacman, før du bygger. Hvis pakken er afhængig af andre AUR-pakker, skal du installere dem manuelt først.
  • -i/--install installerer pakken, hvis den er bygget med succes. Alternativt kan den opbyggede pakke installeres med pacman -U package_name.pkg.tar.zst.

Andre nyttige flag er

  • -r/--rmdeps fjerner byggetidsafhængigheder efter opbygningen, da de ikke længere er nødvendige. Disse afhængigheder skal dog muligvis geninstalleres næste gang pakken opdateres.
  • -c/--clean rydder op i midlertidige build-filer efter build’et, da de ikke længere er nødvendige. Disse filer er normalt kun nødvendige, når der foretages fejlfinding i byggeprocessen.
Bemærk: Ovenstående eksempel er kun et kort resumé af byggeprocessen. Det anbefales kraftigt at læse artiklerne makepkg og ABS for at få flere detaljer.

Opgradering af pakker

I den mappe, der indeholder pakkens PKGBUILD, skal du først opdatere filerne og ændringerne ved at bruge kommandoen

$ git pull

og derefter køre

$ makepkg -si

for at opdatere pakken.

Feedback

Kommentarer til pakker

AUR’s webgrænseflade har en kommentarfunktion, der giver brugerne mulighed for at komme med forslag og feedback om forbedringer til PKGBUILD-bidragsyderen.

Tip: Undgå at indsætte patches eller PKGBUILDs i kommentarfeltet: de bliver hurtigt forældede og ender bare med at optage en masse plads unødigt. Send i stedet disse filer pr. e-mail til vedligeholderen, eller brug endda en pastebin.

Python-Markdown tilbyder grundlæggende Markdown-syntaks til at formatere kommentarer.

Bemærk:

  • Denne implementering har nogle lejlighedsvise forskelle i forhold til de officielle syntaksregler.
  • Commit hashes til pakkens Git-repositorium og henvisninger til Flyspray-billetter konverteres automatisk til links.
  • Lange kommentarer klappes sammen og kan udvides efter behov.

Voting for pakker

En af de letteste aktiviteter for alle Arch-brugere er at gennemse AUR og stemme på deres favoritpakker ved hjælp af online-grænsefladen. Alle pakker er berettigede til at blive vedtaget af en TU til optagelse i fællesskabsarkivet, og stemmeoptællingen er en af overvejelserne i denne proces; det er i alles interesse at stemme!

Ameld dig på AUR-webstedet for at få en “Vote for this package”-mulighed, mens du gennemser pakker. Efter tilmelding er det også muligt at stemme fra kommandolinjen med aurvoteAUR, aurvote-gitAUR eller aur-auto-vote-gitAUR.

Alternativt kan du, hvis du har opsat ssh-godkendelse, stemme direkte fra kommandolinjen ved hjælp af din ssh-nøgle. Det betyder at du ikke behøver at gemme eller indtaste din AUR-adgangskode.

$ ssh [email protected] vote package_name

Flagging packages out-of-date

Først bør du markere pakken som out-of-date og angive detaljer om hvorfor pakken er forældet, helst med links til udgivelsesbekendtgørelsen eller den nye udgivelses tarball.

Du bør også forsøge at kontakte den vedligeholder direkte via e-mail. Hvis der ikke er noget svar fra vedligeholderen efter to uger, kan du indsende en anmodning om en forældreløs anmodning. Se AUR submission guidelines#Requests for detaljer.

Bemærk: VCS-pakker betragtes ikke som forældede, når pkgver ændres, og skal ikke markeres i dette tilfælde.

Debugging the package build process

  1. Sørg for, at dit byggemiljø er opdateret ved at opgradere, før du bygger noget.
  2. Sørg for, at du har base-devel-gruppen installeret.
  3. Brug -s-indstillingen med makepkg for at kontrollere og installere alle nødvendige afhængigheder, før du starter byggeprocessen.
  4. Forsøg standardkonfigurationen af makepkg.
  5. Se Makepkg#Forsøgning af problemer for almindelige problemer.

Hvis du har problemer med at bygge en pakke, skal du først læse dens PKGBUILD og kommentarerne på dens AUR-side.

Det er muligt, at en PKGBUILD er defekt for alle. Hvis du ikke selv kan finde ud af det, skal du rapportere det til vedligeholderen (f.eks. ved at skrive de fejl, du får, i kommentarerne på AUR-siden). Du kan også søge hjælp i forummet AUR Issues, Discussion & PKGBUILD Requests.

Det kan være, at årsagen måske alligevel ikke er triviel. Brugerdefinerede CFLAGS, LDFLAGS og MAKEFLAGS kan forårsage fejl. For at undgå problemer forårsaget af din særlige systemkonfiguration skal du bygge pakker i en ren chroot. Hvis opbygningsprocessen stadig mislykkes i en ren chroot, er problemet sandsynligvis PKGBUILD.

Se Creating packages#Checking package sanity om brug af namcap. Hvis du ønsker at få en PKGBUILD gennemgået, kan du skrive den på postlisten aur-general for at få feedback fra TU’erne og andre AUR-medlemmer, eller i forummet Creating & Modifying Packages (Oprettelse & af pakker). Du kan også søge hjælp i IRC-kanalen #archlinux-aur på Freenode.

Indsendelse af pakker

Brugere kan dele PKGBUILDs ved hjælp af Arch User Repository. Se retningslinjerne for indsendelse til AUR for nærmere oplysninger.

Oversættelse af webgrænsefladen

Se i18n.txt i AUR-kildetræet for oplysninger om oprettelse og vedligeholdelse af oversættelse af AUR’s webgrænseflade.

FAQ

Hvilke slags pakker er tilladt på AUR?

Pakkerne på AUR er blot “build scripts”, dvs. opskrifter til at bygge binære filer til pacman. I de fleste tilfælde er alt tilladt, med forbehold af retningslinjerne for anvendelighed og omfang, så længe du overholder licensbetingelserne for indholdet. I andre tilfælde, hvor det er nævnt, at “du ikke må linke” til downloads, dvs. indhold, der ikke kan videredistribueres, må du kun bruge selve filnavnet som kilde. Dette betyder og kræver, at brugerne allerede har den begrænsede kildekode i build-mappen før opbygning af pakken. Når du er i tvivl, så spørg.

Hvordan kan jeg stemme om pakker i AUR?

Se #Voting for packages.

Hvad er en Trusted User / TU?

En Trusted User, forkortet TU, er en person, som er valgt til at føre tilsyn med AUR og community repository. Det er dem, der vedligeholder populære PKGBUILDs i community, og generelt holder AUR kørende.

Hvad er forskellen mellem Arch User Repository og community repository?

Det er i Arch User Repository, at alle PKGBUILDs, som brugere indsender, gemmes, og skal bygges manuelt med makepkg. Når PKGBUILDs får tilstrækkelig interesse fra fællesskabet og støtte fra en TU, flyttes de over i community repository (vedligeholdt af TU’erne), hvor de binære pakker kan installeres med pacman.

Foo i AUR er forældet; hvad skal jeg gøre?

Se #Flagging packages out-of-date.

I mellemtiden kan du selv prøve at opdatere pakken ved at redigere PKGBUILD lokalt. Nogle gange kræver opdateringer ikke ændringer i bygge- eller pakkeprocessen, og i så fald er det tilstrækkeligt blot at opdatere arrayet pkgver eller source.

Foo i AUR kompileres ikke, når jeg kører makepkg; hvad skal jeg gøre?

Du mangler sandsynligvis noget trivielt, se #Debugging the package build process.

ERROR: One or more PGP signatures could not be verified!; what should I do?

Du har højst sandsynligt ikke den/de nødvendige offentlige nøgle(r) i din personlige nøglering til at verificere hentede filer. Se Makepkg#Signaturkontrol for detaljer.

Hvordan opretter jeg en PKGBUILD?

Konsulenter retningslinjerne for indsendelse fra AUR#Regler for indsendelse, se derefter under Oprettelse af pakker.

Jeg har en PKGBUILD, som jeg gerne vil indsende; kan nogen kontrollere den for at se, om der er nogen fejl?

Der er flere kanaler til rådighed til at indsende din pakke til gennemgang; se #Debugging the package build process.

Hvordan får jeg en PKGBUILD ind i fællesskabsdepotet?

Sædvanligvis kræves der mindst 10 stemmer for at noget kan flyttes ind i community. Men hvis en TU ønsker at støtte en pakke, vil den ofte blive fundet i repositoriet.

Det er ikke det eneste krav at opnå det krævede minimum af stemmer, der skal også være en TU, der er villig til at vedligeholde pakken. TU’er er ikke forpligtet til at flytte en pakke til community repositoriet, selv om den har tusindvis af stemmer.

Når en meget populær pakke forbliver i AUR, er det som regel fordi:

  • Arch Linux allerede har en anden version af en pakke i repositorierne
  • Den har en licens, der forbyder videredistribution
  • Den hjælper med at hente PKGBUILD’er indsendt af brugere. AUR-hjælpere understøttes pr. definition ikke.

Se også Regler for pakker, der kommer ind i community-repo’en.

Hvordan kan jeg fremskynde gentagne byggeprocesser?

Se Makepkg#Forbedring af kompileringstider.

Hvad er forskellen mellem foo- og foo-git-pakker?

Mange AUR-pakker findes i “stabile” udgivelsesversioner og “ustabile” udviklingsversioner. Udviklingspakker har normalt et suffiks, der angiver deres versionskontrolsystem, og er ikke beregnet til almindelig brug, men kan tilbyde nye funktioner eller fejlrettelser. Da disse pakker kun henter den seneste tilgængelige kildekode, når du udfører makepkg, afspejler deres pkgver() i AUR ikke ændringer opstrøms. Ligeledes kan disse pakker ikke udføre en autenticitetskontrolsum på nogen VCS-kilde.

Se også Systemvedligeholdelse#Brug gennemprøvede softwarepakker.

Hvorfor er foo forsvundet fra AUR?

Det er muligt, at pakken er blevet vedtaget af et TU og nu er i fællesskabsdepotet.

Pakker kan blive slettet, hvis de ikke opfyldte reglerne for indsendelse. Se aur-requests-arkiverne for årsagen til sletning.

Bemærk: Git-repositoriet for en slettet pakke forbliver typisk tilgængeligt. Se AUR submission guidelines#Requests for detaljer.

Hvis pakken tidligere eksisterede i AUR3, er den måske ikke blevet migreret til AUR4. Se #Git-repositorierne for AUR3-pakker, hvor disse er bevaret.

Hvordan finder jeg ud af, om nogle af mine installerede pakker er forsvundet fra AUR?

Den enkleste måde er at kontrollere HTTP-status for pakkens AUR-side:

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

Hvordan kan jeg få en liste over alle AUR-pakker?

  • Brug aurpkglist fra python3-aurAUR

Se også

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.