The Arch User Repository (AUR) este un depozit condus de comunitate pentru utilizatorii Arch. Acesta conține descrieri de pachete (PKGBUILDs) care vă permit să compilați un pachet din sursă cu makepkg și apoi să îl instalați prin pacman. AUR a fost creat pentru a organiza și partaja noi pachete din partea comunității și pentru a ajuta la accelerarea includerii pachetelor populare în depozitul comunității. Acest document explică modul în care utilizatorii pot accesa și utiliza AUR.
Un număr bun de pachete noi care intră în depozitele oficiale încep în AUR. În AUR, utilizatorii au posibilitatea de a contribui cu propriile compilații de pachete (PKGBUILD
și fișierele aferente). Comunitatea AUR are posibilitatea de a vota pentru pachetele din AUR. Dacă un pachet devine suficient de popular – cu condiția să aibă o licență compatibilă și o bună tehnică de împachetare – acesta poate fi introdus în depozitul comunității (accesibil direct prin pacman sau abs).
PKGBUILD
sunt complet neoficiale și nu au fost verificate temeinic. Orice utilizare a fișierelor furnizate se face pe propriul risc.Începem
Utilizatorii pot căuta și descărca PKGBUILD-uri din interfața web AUR. Aceste PKGBUILD
s pot fi construite în pachete instalabile folosind makepkg, apoi instalate folosind pacman.
- Asigurați-vă că grupul de pachete base-devel este instalat în întregime (
pacman -S --needed base-devel
). - Peste #FAQ pentru răspunsuri la cele mai frecvente întrebări.
- Poate doriți să ajustați
/etc/makepkg.conf
pentru a optimiza procesul de construire pentru sistemul dumneavoastră înainte de a construi pachete din AUR. O îmbunătățire semnificativă a timpilor de compilare a pachetelor poate fi realizată pe sistemele cu procesoare multi-core prin ajustarea variabileiMAKEFLAGS
, prin utilizarea mai multor nuclee pentru compresie sau prin utilizarea unui algoritm de compresie diferit. Utilizatorii pot, de asemenea, să activeze optimizările specifice hardware ale compilatorului prin intermediul variabileiCFLAGS
. Consultați makepkg#Tips and tricks pentru mai multe informații.
Este, de asemenea, posibil să interacționați cu AUR prin SSH: tastați ssh [email protected] help
pentru o listă de comenzi disponibile.
Historie
La început, a existat ftp://ftp.archlinux.org/incoming
, iar oamenii contribuiau prin simpla încărcare pe server a PKGBUILD, a fișierelor suplimentare necesare și a pachetului construit în sine. Pachetul și fișierele asociate au rămas acolo până când un Manager de pachete a văzut programul și l-a adoptat.
Apoi s-au născut Depozitele de încredere pentru utilizatori (Trusted User Repositories). Anumite persoane din comunitate au fost autorizate să-și găzduiască propriile depozite pentru ca oricine să le folosească. AUR s-a extins pe această bază, cu scopul de a-l face atât mai flexibil, cât și mai ușor de utilizat. De fapt, întreținătorii AUR sunt încă numiți TU (Trusted Users).
Între 2015-06-08 și 2015-08-08-08 AUR a făcut tranziția de la versiunea 3.5.1 la 4.0.0, introducând utilizarea depozitelor Git pentru publicarea PKGBUILD
-urilor.Pachetele existente au fost abandonate dacă nu au fost migrate manual către noua infrastructură de către întreținătorii lor.
Repozitorii Git pentru pachetele AUR3
Arhiva AUR de pe GitHub are un depozit pentru fiecare pachet care se afla în AUR 3 la momentul migrării. alternativ, există depozitul aur3-mirror care oferă același lucru.
Instalarea și actualizarea pachetelor
Instalarea pachetelor din AUR este un proces relativ simplu. În esență:
- Achiziționați fișierele de compilare, inclusiv PKGBUILD și, eventual, alte fișiere necesare, cum ar fi unitățile systemd și patch-urile (adesea nu și codul propriu-zis).
- Verificați că
PKGBUILD
și fișierele care le însoțesc nu sunt malițioase sau nedemne de încredere. - Executați
makepkg -si
în directorul în care sunt salvate fișierele. Aceasta va descărca codul, va rezolva dependențele cu pacman, îl va compila, îl va împacheta și va instala pachetul.
Precondiții prealabile
În primul rând asigurați-vă că sunt instalate instrumentele necesare prin instalarea completă a grupului base-devel, care include make și alte instrumente necesare pentru compilarea de la sursă.
--needed
atunci când instalați grupul base-devel pentru a sări peste pachetele pe care le aveți deja în loc să le reinstalați.În continuare, alegeți un director de compilare adecvat. Un director de construire este pur și simplu un director în care pachetul va fi realizat sau „construit” și poate fi orice director. Exemplele din secțiunile următoare vor folosi ~/builds
ca director de construire.
Acquire build files
Localizați pachetul în AUR. Acest lucru se face utilizând câmpul de căutare din partea de sus a paginii de pornire a AUR. Dacă faceți clic pe numele aplicației din lista de căutare, se afișează o pagină de informații despre pachet. Citiți descrierea pentru a confirma că acesta este pachetul dorit, notați când a fost actualizat ultima dată pachetul și citiți orice comentarii.
Există mai multe metode de achiziționare a fișierelor de compilare pentru un pachet:
- Clonați depozitul său git, etichetat „Git Clone URL” în „Package Details” de pe pagina sa AUR. Aceasta este metoda preferată, un avantaj al acesteia fiind că puteți obține cu ușurință actualizări ale pachetului prin
git pull
.
$ git clone https://aur.archlinux.org/package_name.git
- Descărcați un instantaneu, fie făcând clic pe linkul „Download snapshot” (Descărcare instantaneu) de sub „Package Actions” (Acțiuni privind pachetul) din partea dreaptă a paginii sale AUR, fie într-un terminal:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Achiziționați o cheie publică PGP, dacă este necesar
Verificați dacă un fișier de semnătură sub forma .sig sau .asc face parte din matricea sursă PKGBUILD, dacă este cazul, atunci achiziționați una dintre cheile publice listate în matricea PKGBUILD validpgpkeys. Consultați makepkg#Signature checking pentru mai multe informații.
Constituie și instalează pachetul
Schimbă directoarele în directorul care conține PKGBUILD al pachetului.
$ cd package_name
PKGBUILD
, orice fișiere .install și orice alte fișiere din depozitul git al pachetului pentru comenzi malițioase sau periculoase. Dacă aveți îndoieli, nu construiți pachetul și cereți sfaturi pe forumuri sau pe lista de discuții. Codul malițios a mai fost găsit în pachete și înainte. Veziți conținutul tuturor fișierelor furnizate. De exemplu, pentru a utiliza pager less pentru a vizualiza PKGBUILD
faceți:
$ less PKGBUILD
- Pentru a vizualiza modificările de la ultima confirmare git puteți utiliza
git show
. - Pentru a vizualiza modificările de la ultima confirmare utilizând vimdiff, faceți
git difftool @~..@ vimdiff
. Avantajul vimdiff este că puteți vizualiza întregul conținut al fiecărui fișier, împreună cu indicatori privind ceea ce s-a schimbat.
Faceți pachetul. După confirmarea manuală a conținutului fișierelor, rulați makepkg ca utilizator normal:
$ makepkg -si
-
-s
/--syncdeps
rezolvă și instalează automat orice dependențe cu pacman înainte de compilare. Dacă pachetul depinde de alte pachete AUR, va trebui să le instalați manual mai întâi. -
-i
/--install
instalează pachetul dacă acesta este construit cu succes. Alternativ, pachetul construit poate fi instalat cupacman -U package_name.pkg.tar.zst
.
Alte stegulețe utile sunt
-
-r
/--rmdeps
elimină dependențele din timpul construirii după compilare, deoarece acestea nu mai sunt necesare. Cu toate acestea, este posibil ca aceste dependențe să trebuiască să fie reinstalate la următoarea actualizare a pachetului. -
-c
/--clean
curăță fișierele temporare de construire după compilare, deoarece nu mai sunt necesare. Aceste fișiere sunt de obicei necesare doar atunci când se depanează procesul de construire.
Actualizarea pachetelor
În directorul care conține PKGBUILD al pachetului trebuie mai întâi să actualizați fișierele și modificările folosind comanda
$ git pull
și apoi să executați
$ makepkg -si
pentru a actualiza pachetul.
Feedback
Comentarea pachetelor
Interfața web AUR dispune de o facilitate de comentarii care permite utilizatorilor să ofere sugestii și feedback cu privire la îmbunătățirile aduse colaboratorului PKGBUILD.
PKGBUILD
s în secțiunea de comentarii: acestea devin rapid învechite și sfârșesc doar prin a ocupa inutil mult spațiu. În schimb, trimiteți aceste fișiere prin e-mail către responsabilul cu întreținerea, sau chiar folosiți un pastebin. Python-Markdown oferă o sintaxă Markdown de bază pentru a formata comentariile.
- Această implementare are unele diferențe ocazionale față de regulile oficiale de sintaxă.
- Commiteți hașuri în depozitul Git al pachetului și referințele la biletele Flyspray sunt convertite automat în link-uri.
- Comentariile lungi sunt colapsate și pot fi extinse la cerere.
Votul pentru pachete
Una dintre cele mai ușoare activități pentru toți utilizatorii Arch este să navigheze în AUR și să voteze pachetele preferate folosind interfața online. Toate pachetele sunt eligibile pentru a fi adoptate de către o UT pentru a fi incluse în depozitul comunității, iar numărul de voturi este unul dintre considerentele acestui proces; este în interesul tuturor să voteze!
Înregistrează-te pe site-ul AUR pentru a obține opțiunea „Votează pentru acest pachet” în timp ce navighezi prin pachete. După ce v-ați înscris, este de asemenea posibil să votați din linia de comandă cu aurvoteAUR, aurvote-gitAUR sau aur-auto-vote-gitAUR.
Alternativ, dacă ați configurat autentificarea ssh, puteți vota direct din linia de comandă folosind cheia dvs. ssh. Acest lucru înseamnă că nu va trebui să vă salvați sau să introduceți parola AUR.
$ ssh [email protected] vote package_name
Semnalizarea pachetelor depășite
În primul rând, ar trebui să semnalizați pachetul depășit indicând detalii despre motivul pentru care pachetul este depășit, de preferință incluzând link-uri către anunțul de lansare sau către tarball-ul noii versiuni.
De asemenea, ar trebui să încercați să contactați direct mentorul prin e-mail. Dacă nu există niciun răspuns din partea responsabilului după două săptămâni, puteți depune o cerere orfană. Consultați AUR submission guidelines#Requests pentru detalii.
pkgver
și nu trebuie marcate în acest caz.Depanarea procesului de construire a pachetelor
- Asigurați-vă că mediul de construire este actualizat prin actualizare înainte de a construi ceva.
- Asigurați-vă că aveți instalat grupul base-devel.
- Utilizați opțiunea
-s
cumakepkg
pentru a verifica și instala toate dependențele necesare înainte de a începe procesul de compilare. - Încercați configurația makepkg implicită.
- Vezi Makepkg#Troubleshooting pentru probleme comune.
Dacă aveți probleme la construirea unui pachet, citiți mai întâi PKGBUILD-ul său și comentariile de pe pagina sa AUR.
Este posibil ca un PKGBUILD
să fie stricat pentru toată lumea. Dacă nu reușiți să vă dați seama de unul singur, raportați acest lucru administratorului (de exemplu, prin postarea erorilor pe care le obțineți în comentariile de pe pagina AUR). De asemenea, puteți căuta ajutor în forumul AUR Issues, Discussion & PKGBUILD Requests.
Este posibil ca motivul să nu fie banal până la urmă. Personalizate CFLAGS
, LDFLAGS
și MAKEFLAGS
pot cauza eșecuri. Pentru a evita problemele cauzate de configurația particulară a sistemului dumneavoastră, construiți pachetele într-un chroot curat. Dacă procesul de compilare eșuează în continuare într-un chroot curat, probabil că problema este legată de PKGBUILD
.
Vezi Crearea pachetelor#Verificarea corectitudinii pachetelor despre utilizarea namcap
. Dacă doriți ca un PKGBUILD
să fie revizuit, postați-l pe lista de discuții aur-general pentru a obține feedback din partea TU-urilor și a colegilor din AUR, sau pe forumul Crearea de pachete & Modificarea pachetelor. De asemenea, puteți căuta ajutor pe canalul IRC #archlinux-aur pe Freenode.
Submiterea de pachete
Utilizatorii pot partaja PKGBUILD-uri folosind Arch User Repository. Pentru detalii, consultați ghidurile de trimitere AUR.
Traducerea interfeței web
Vezi i18n.txt în arborele sursă AUR pentru informații despre crearea și menținerea traducerii interfeței web AUR.
FAQ
Ce fel de pachete sunt permise pe AUR?
Pachetele de pe AUR sunt pur și simplu „scripturi de construire”, adică rețete pentru a construi binare pentru pacman. Pentru majoritatea cazurilor, totul este permis, sub rezerva orientărilor privind utilitatea și domeniul de aplicare, atâta timp cât respectați termenii de licențiere a conținutului. Pentru alte cazuri, în care se menționează că „nu aveți voie să creați linkuri” către descărcări, adică conținuturi care nu pot fi redistribuite, puteți utiliza doar numele fișierului în sine ca sursă. Acest lucru înseamnă și necesită ca utilizatorii să aibă deja sursa restricționată în directorul de compilare înainte de a construi pachetul. Când aveți dubii, întrebați.
Cum pot vota pentru pachete în AUR?
Vezi #Votul pentru pachete.
Ce este un utilizator de încredere / TU?
Un utilizator de încredere, pe scurt TU, este o persoană care este aleasă să supravegheze AUR și depozitul comunității. Ei sunt cei care mențin PKGBUILD-urile populare în comunitate și, în general, mențin AUR-ul în funcțiune.
Care este diferența dintre Arch User Repository și depozitul comunității?
Repozitoriul Arch User Repository este locul unde sunt stocate toate PKGBUILD-urile pe care utilizatorii le trimit și trebuie construite manual cu makepkg. Atunci când PKGBUILD
s primesc suficient interes din partea comunității și sprijinul unei TU, acestea sunt mutate în depozitul comunității (întreținut de TU), unde pachetele binare pot fi instalate cu pacman.
Foo din AUR este depășit; ce ar trebui să fac?
Vezi #Flagging packages out-of-date.
Între timp, puteți încerca să actualizați singur pachetul prin editarea locală a PKGBUILD. Uneori, actualizările nu necesită modificări ale procesului de construire sau de creare a pachetelor, caz în care este suficientă simpla actualizare a matricei pkgver
sau source
.
Foo din AUR nu se compilează atunci când execut makepkg; ce ar trebui să fac?
Probabil că vă lipsește ceva trivial, vedeți #Debugging the package build process.
ERROR: Una sau mai multe semnături PGP nu au putut fi verificate!!!; ce ar trebui să fac?
Cel mai probabil nu aveți cheia (cheile) publică (publice) necesară (necesare) în brelocul personal pentru a verifica fișierele descărcate. Consultați Makepkg#Signature checking pentru detalii.
Cum creez un PKGBUILD?
Consultați AUR submission guidelines#Rules of submission, apoi vedeți crearea de pachete.
Am un PKGBUILD pe care aș dori să-l trimit; poate cineva să-l verifice pentru a vedea dacă există erori?
Există mai multe canale disponibile pentru a vă trimite pachetul pentru a fi revizuit; consultați #Debugging the package build process.
Cum să introducem un PKGBUILD în depozitul comunității?
De obicei, sunt necesare cel puțin 10 voturi pentru ca ceva să se mute în comunitate. Cu toate acestea, dacă o UT dorește să susțină un pachet, acesta se va găsi adesea în depozit.
Atingerea minimului necesar de voturi nu este singura cerință, trebuie să existe o UT dispusă să mențină pachetul. TU-urile nu sunt obligate să mute un pachet în depozitul comunității chiar dacă are mii de voturi.
De obicei, când un pachet foarte popular rămâne în AUR este pentru că:
- Arch Linux are deja o altă versiune a unui pachet în depozite
- Licența sa interzice redistribuirea
- Ajută la recuperarea PKGBUILD-urilor trimise de utilizatori. Ajutoarele AUR nu sunt acceptate prin definiție.
Vezi și Reguli pentru pachetele care intră în Repo-ul comunității.
Cum pot accelera procesele de construire repetate?
Vezi Makepkg#Îmbunătățirea timpilor de compilare.
Care este diferența dintre pachetele foo și foo-git?
Multe pachete AUR vin în versiuni de lansare „stabile” și versiuni de dezvoltare „instabile”. Pachetele de dezvoltare au de obicei un sufix care denotă sistemul lor de control al versiunilor și nu sunt destinate utilizării obișnuite, dar pot oferi caracteristici noi sau corecturi de erori. Deoarece aceste pachete descarcă doar cea mai recentă sursă disponibilă atunci când executați makepkg
, pkgver()
a acestora în AUR nu reflectă modificările din amonte. De asemenea, aceste pachete nu pot efectua o sumă de verificare a autenticității pe nicio sursă VCS.
Vezi și Întreținerea sistemului#Utilizarea pachetelor software dovedite.
De ce a dispărut foo din AUR?
Este posibil ca pachetul să fi fost adoptat de o UT și să se afle acum în depozitul comunității.
Pachetele pot fi șterse dacă nu au respectat regulile de prezentare. Consultați arhivele aur-requests pentru motivul ștergerii.
Dacă pachetul exista în AUR3, este posibil să nu fi fost migrat în AUR4. Consultați depozitele #Git pentru pachetele AUR3 unde acestea sunt păstrate.
Cum aflu dacă vreunul dintre pachetele mele instalate a dispărut din AUR?
Cel mai simplu mod este să verificați starea HTTP a paginii AUR a pachetului:
$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)
Cum pot obține o listă a tuturor pachetelor AUR?
- Utilizați
aurpkglist
din python3-aurAUR
Vezi și
- Interfața web AUR
- Lista de corespondență AUR
- DeveloperWiki:AUR Cleanup Day
.