AUR

De la ArchWikiRo
Salt la: navigare, căutare
Rezumat
Arch User Repository este o colecție de PKGBUILD-uri adăugate de către utilizatori, menite să suplimenteze software-ul din depozitele oficiale. Acest articol descrie cum se pot construi pachete fără suport oficial din AUR.
Prezentare generală
Pachetele din Arch Linux sunt construite folosind makepkg și un script personalizat pentru fiecare pachet (cunoscut sub numele de PKGBUILD). Odată ce a fost construit, programul poate fi instalat și gestionat de către pacman. PKGBUILD-urile pentru software-ul din depozitele oficiale sunt disponibile în ierarhia ABS; alte mii de pachete sunt disponibile (fără suport oficial) în AUR.
Referințe wiki
AUR Helpers
AurJson
AUR Trusted User Guidelines
Resurse
AUR Web Interface
AUR Mailing List

Arch User Repository (AUR) este un depozit de software pe bază de contribuții din partea utilizatorilor Arch Linux. Conține descrieri ale pachetelor (PKGBUILD-uri) care pot fi construite cu makepkg folosind susa programului, apoi instalate cu pacman. AUR a fost creat pentru organizarea și distribuirea pachetelor de software noi și pentru a ajuta includerea mai rapidă a pachetelor populare în depozitul [community]. Acest document explică cum se poate accesa și utiliza AUR-ul.

Un număr mare de pachete noi care trec în depozite oficiale provin din AUR. În AUR, utilizatorii pot contribui cu propriile lor build-uri (acele PKGBUILD și fișierele aferente acestora). Comunitatea are posibilitatea de a vota pentru sau împotriva pachetelor din AUR. În cazul în care un pachet de software este suficient de popular -- cu condiția să aibă o licență compatibilă și să fie împachetat cum trebuie -- poate fi trecut în depozitul [community] (fiind direct accesibil de către pacman sau abs).

Cuprins

Pentru început

Utilizatorii pot căuta și descărca fișiere PKGBUILD de pe Interfața web pentru AUR. Aceste PKGBUILD-uri pot fi construite în pachete instalabile folosind makepkg, apoi instalate cu pacman.

  • Asigurați-vă că grupul de pachete base-devel este instalat (pacman -S base-devel).
  • Citiți restul acestui articol pentru mai multe informații și pentru un tutorial scurt despre cum să instalați pachete din AUR.
  • Vizitați Interfața web pentru AUR pentru a fi la curent cu actualizările și cu ce se mai întâmplă. Acolo veți găsi statistici și o listă a celor mai noi pachete din AUR.
  • Aruncați o privire peste #Întrebări frecvente pentru răspunsuri la întrebările cele mai frecvente.
  • Ar fi indicat să editați /etc/makepkg.conf pentru optimizări legate de procesorul pe care îl dețineți înainte de a construi pachete din AUR. Adjustând variabila MAKEFLAGS se poate obține o îmbunătățire considerabilă a timpului de construire pe sisteme cu mai multe nuclee. Utilizatorii pot activa optimizări specifice hardware-ului în GCC prin variabila CFLAGS. Vedeți makepkg.conf pentru mai multe informații.

Istorie

Următoarele criterii sunt listate din motive istorice. Acestea au fost înlocuite de către AUR și nu mai sunt disponibile.

La început, a existat ftp://ftp.archlinux.org/incoming, iar lumea contribuia prin urcarea pe server a fișierelor PKGBUILD, fișiere suplimentare, și pachetul deja construit. Pachetul și fișierele aferente rămâneau acolo până când cineva vedea programul și îl adopta.

Apoi a existat „Trusted User Repositories”. Anumite persoane din cadrul comunității aveau voie să hosteze depozitele lor pentru oricine dorea să le folosească. AUR-ul a fost construit pe baza acestei idei, în vederea atât a flexibilității cât și a utilității. Ca fapt divers, responsabilii pentru pachetele AUR încă mai sunt cunoscuți ca TU (Trusted Users).

Căutare

Intefața web pentru AUR se poate găsi aici, iar o interfață adecvată pentru accesarea AUR-ului dintr-un script (de exemplu) se poate găsi aici.

Query-uri de search cu nume și descrieri prin comparații MySQL LIKE. Vă permite folosirea citeriilor de căutare mai flexibile (ex: încercați să cautați „tool%like%grep” în loc de „tool like grep”). Dacă trebuie să căutați după o descriere care conține „%”, folosiți „\%”.

Instalarea pachetelor

Instalarea pachetelor din AUR este un proces relativ simplu. În principiu:

  1. Obțineți arhiva tarball care conține fișierul PKGBUILD și care conține, posibil, și alte fișiere.
  2. Extrageți conținutul acestuia (de preferat într-un folder separat, doar pentru build-uri din AUR).
  3. Executați makepkg în directorul unde fișierele au fost salvate (makepkg -s se va ocupa automat de dependențe prin pacman).
  4. Instalați pachetul obținut folosind pacman:
# pacman -U /adresa/către/pkg.tar.xz

Pentru acces mai ușor la AUR există câteva programe cunoscute sub numele de AUR Helpers. Aceștia variază în specificații dar pot fi utili în căutarea, obținerea, sau instalarea din PKGBUILD-urile prezente în AUR. Toate aceste scripturi se găsesc în AUR.

Notă: Nu există și nici nu va exista vreodată un mecanism oficial de a instala din AUR. Toți utilizatorii ar trebui să se familiarizeze cu procesul de construire.

Următorul este un exemplu mai detaliat de instalare a unui pachet numit „foo”.

Ce este necesar mai întâi

Mai întâi asigurați-vă că aveți instalate uneltele necesare. Grupul de pachete base-devel ar trebui să fie suficient; acesta include make și alte utilitare pentru compilarea surselor.

Atenție: Pachetele din AUR presupun că aveți grupul base-devel instalat. Ele nu vor lista dependențe din acest grup chiar dacă pachetul nu merge construit. Asigurați-vă că aveți acest grup instalat înainte să vă plângeți de pachete care nu merg construite.
# pacman -S base-devel

Apoi selectați un folder corespunzător. Cu alte cuvinte, un folder oarecare unde vor fi create sau „construite” pachetele. Exemple a unor foldere utilizate de obicei sunt:

~/builds

sau dacă folosiți ABS (Arch Build System):

/var/abs/local

Pentru mai multe informații despre ABS, citiți articolul Arch Build System. Acest exemplu va folosi folderul ~/builds.

Obțineți fișierele necesare

Căutați pachetul în AUR. Aceasta se poate face folosind funcția de search (caseta de text de deasupra Paginii AUR). Un click pe numele aplicației în lista de search afișează informații despre pachetul respectiv. Citiți descrierea pentru a confirma că acesta este pachetul dorit, rețineți când a fost updatat ultima oară, și citiți comentariile.

Descărcați fișierele necesare. De pe pagina cu informații, faceți click pe link-ul „Tarball”. Acest fișier ar trebui salvat în directorul de build-uri, sau copiat ulterior în acest folder după ce l-ați downloadat.

În acest exemplu, fișierul se numește „foo.tar.gz” (formatul standard este numepachet.tar.gz, dacă acesta a fost postat cum trebuie).

Construiți pachetul

Extrageți arhiva. Mergeți în directorul de build-uri dacă nu sunteți deja acolo și extrageți fișierele.

$ cd ~/builds
$ tar -xvzf foo.tar.gz

Ar trebui să creeze un folder nou numit „foo”.

Atenție: Verificați cu mare atenție toate fișierele. Faceți un cd către noul folder și verificați cu atenție PKGBUILD și orice alt .install pentru comenzi rău intenționate. Fișierele PKGBUILD sunt scripturi bash care conțin funcții ce vor urma să fie executate de către makepkg: aceste funcții pot conține orice comandă sau sintaxă Bash, așa că este foarte posibil ca un PKGBUILD să conțină comenzi periculoase prin rea intenție sau ignoranță din partea autorului. Din moment ce makepkg folosește fakeroot (și nici nu ar trebui vreodată rulat cu privilegii root), există un oarecare nivel de protecție însă nu ar trebui să vă bazați niciodată pe faptul acesta. Dacă aveți vreun dubiu, nu construiți pachetul și cereți sfaturi pe forum sau mailing list.
$ cd foo
$ nano PKGBUILD
$ nano foo.install

Construiți pachetul. După ce ați confirmat în mod personal integritatea fișierelor, executați makepkg fără privilegii de root.

$ makepkg -s

Parametrul -s va folosi sudo pentru a instala dependențe. Dacă nu doriți să folosiți sudo, instalați dependențele mai întâi și omiteți -s din comanda de mai sus.

Instalați pachetul

Instalați pachetul folosind pacman. O arhivă ar trebui să fie creată cu numele:

<nume>-<versiune>-<revizie>-<arhitectură>.pkg.tar.xz

Acest pachet poate fi instalat folosind comanda „upgrade” din pacman:

# pacman -U foo-0.1-1-i686.pkg.tar.xz   

Aceste pachete instalate manual se numesc pachete străine - pachete care nu provin dintr-un depozit cunoscut de către pacman. Pentru listarea tuturor pachetelor străine:

$ pacman -Qm 
Notă: Exemplul de mai sus este doar un rezumat al procesului de construire al unui pachet. O vizită către articolelele makepkg și ABS vor oferi mai multe detalii și este recomandată citirea acestora, în special utilizatorilor noi.

Feedback

Pagina AUR are o secție de comentarii unde utilizatorii pot oferi sugestii și feedback celui responsabil de PKGBUILD. Evitați să dați paste la patch-uri sau PKGBUILD-uri în această secțiune: se învechesc repede și ajung să ocupe spațiu degeaba. Mai bine le trimiteți prin email celui responsabil de pachet sau folosiți un client pastebin.

Una dintre activitățile cele mai timpurii pentru toți utilizatorii Arch este să caute în AUR și să voteze pachetele lor preferate. Toate pachetele au șansa să fie adoptate de către un TU prin includerea acestora în [community], iar numărul de voturi face parte din această decizie; este în interesul tuturor să voteze!

Distribuirea și întreținerea pachetelor

Utilizatorul joacă un rol esențial în dezvoltarea AUR-ului, care nu își poate atinge potențialul fără suportul, implicarea, și contribuția comunității. Durata de viață a unui pachet din AUR începe și se termină cu utilizatorul și e nevoie ca acesta să contribuie în mai multe felului.

Utilizatorii pot distribui PKGBUILD-uri folosind Arch User Repository. Acestea nu conțin pachete deja construite și permit utilizatorilor să urce PKGBUILD-uri care pot fi descărcate de către alte persoane. Aceste PKGBUILD-uri sunt complet neoficiale și nu au fost trecute printr-un proces de selecție, așa că vă asumați riscul folosindu-le.

Urcarea pachetelor

Odată logat pe pagina AUR, utilizatorul poate urca o arhivă tarball (.tar.gz) a unui folder în care se află fișierele unui pachet. Folderul din arhivă trebuie să conțină un PKGBUILD, orice fișier .install, patch-uri, etc. (sub nicio formă pachete deja construite). Ca exemple cum ar trebui să arate un astfel de folder există în /var/abs dacă Arch Build System a fost instalat.

Arhiva tarball poate fi creată cu următoarea comandă:

$ makepkg --source 

Vedeți că arhiva trebuie să fie un tarball arhivat cu gzip; presupunând că urcați un pachet numit libfoo, atunci când creați fișierul el ar trebui să arate cam așa:

$ tar tf libfoo-0.1-1.src.tar.gz
libfoo/
libfoo/PKGBUILD
libfoo/libfoo.install

Atunci când urcați un pachet, fiți atent la următoarele reguli:

  • Verificați în baza de date dacă există deja pachetul respectiv. Dacă există, să nu urcați pachetul. Dacă cel deja disponibil are probleme sau nu include o anumită caracteristică vă rugăm să postați un bug report.
  • Căutați și în AUR dacă există deja. Dacă este întreținut de cineva, modificări pot fi trimise printr-un comentariu pentru a atrage atenția celui responsabil de pachet. Dacă nu este întreținut, pachetul poate fi adoptat sau adus la zi dacă este necesar. Să nu creați mai multe exemplare ale aceluiași pachet.
  • Verificați cu atenție că ceea ce urcați este corect. Toți contributorii trebuie să citească și să urmeze Arch Packaging Standards atunci când creează PKGBUILD-uri. Aceasta este esențial pentru ca sistemul AUR să funcționeze fără probleme și să aibă succes. Țineți minte că nu veți câștiga niciun fel de puncte sau respect din partea nimănui cu un PKGBUILD de o calitate îndoielnică.
  • Pachetele care sunt deja construite (binaries) sau care au fost scrise prost pot fi șterse fără niciun fel de avertisment.
  • Dacă nu sunteți sigur despre pachet (sau despre procesul de construire/urcare) în orice caz, urcați PKGBUILD-ul pe AUR Mailing List sau pe forum.
  • Asigurați-vă că pachetul este folositor. Ar vrea și altcineva să-l folosească? Este specializat doar pe un anumit segment? Dacă mai mult de câteva persoane consideră că este util, atunci poate fi urcat fără probleme.
  • Depozitele AUR și cele oficiale sunt intenționate pentru pachete cu uz general, din care fac parte inclusiv următoarele: executabile; fișiere configurabile; documentație online și offline pentru programe specifice sau pentru întreaga distribuție Arch Linux; conținut media destinat utilizării directe de către software.
  • Prindeți puțină experiență înainte de a urca pachete. Construiți câteva mai mici pentru a învăța procesul și abia apoi urcați-le.
  • Dacă urcați un fișier package.tar.gz împreună cu unul numit 'package' veți primi o eroare: 'Could not change to directory /home/aur/unsupported/package/package'. Pentru a rezolva, redenumiți fișierul 'package', de exemplu, ca 'package.rc'. După ce este instalat în folderul pkg îl puteți redenumi înapoi în 'package'. Citiți și articolul Submitting packages to the AUR.

Întreținerea pachetelor

  • Dacă întrețineți un pachet și vreți să îi updatați PKGBUILD-ul, urcați-l din nou.
  • Verificați feedback-ul și comentariile din partea altor utilizatori și încercați să integrați orice îmbunătățiri sugerate de către aceștia; considerați această experiență un proces de învățare!
  • Vă rugăm să nu urcați un pachet și dup-aia să uitați de el! Este datoria fiecărui responsabil să întrețină pachetul prin verificarea și îmbunătățirea PKGBUILD-ului.
  • Dacă nu mai doriți să continuați întreținerea pachetului dintr-un motiv sau altul, îl puteți abandona folosind butonul Reneagă pachete și/sau să postați un mesaj pe AUR Mailing List.

Alte cereri

  • Cereri pentru abandonul și ștergerea pachetelor se pot face în categoria „aur-general” a Mailing List-ului, unde TU (Trusted Users) și alți utilizatori se pot hotărî dacă vor să-l adopte sau nu.
  • Includeți numele pachetului și link-ul către pagina AUR, de preferat cu o notă de subsol [1].
  • Cererile de abandon vor fi îndeplinite la două săptămâni după ce responsabilul a fost contactat prin email si nu a răspuns.
  • Combinarea pachetelor a fost implementată. Utilizatorii vor trebui să urce din nou pachetul sub alt nume și să facă o cerere pe Mailing List pentru combinarea secțiunii de comentarii și voturi cu cea nouă.
  • Cereri pentru ștergerea pachetelor necesită următoarele:
    • Numele pachetului și link-ul către pagina AUR.
    • Motivul pentru ștergere, măcar o notă scurtă.
      Observație: Comentariile unui pachet nu pot fi suficient de clare de ce un pachet urmează să fie șters. Din momentul în care un TU intervine, singurul loc unde mai poate fi citită această informație este în categoria „aur-general” a Mailing List-ului.
    • Includeți detalii suplimentare, spre exemplu atunci când un pachet este oferit de către altul, dacă sunteți chiar dumneavoastră responsabilul pentru pachet, dacă a fost redenumit și autorul a fost de acord, etc.

Cererile pentru ștergerea pachetelor pot fi și respinse, caz în care probabil că veți fi sfătuit să abandonați pachetul pentru a se putea ocupa altcineva de el.

[community]

Depozitul [community], întreținut de către Trusted Users, conține cele mai populare pachete din AUR. Este activat de la bun început în /etc/pacman.conf. Dacă depozitul [community] a fost dezactivat sau șters, se poate activa la loc prin decomentarea sau adăugarea următoarelor două linii:

/etc/pacman.conf
...
[community]
Include = /etc/pacman.d/mirrorlist
...

Depozitul acesta, spre deosebire de AUR, conține pachete deja construite care pot fi instalate direct cu pacman iar fișierele folosite la construirea acestora pot fi accesate prin ABS. Este posibil ca unele dintre aceste pachete să facă tranziția de la depozitul [core] sau [extra] dacă developerii consideră că sunt esențiale distribuției.

Utilizatorii pot de asemenea să acceseze fișierele folosite la construirea pachetelor din [community] prin editarea /etc/abs.conf și activarea depozitului [community] de pe linia REPOS.

Depozitul Git

Un depozit Git al AUR-ului este întreținut de către Thomas Dziedzic împreună cu istoricul pachetelor printre altele. Este updatat cel puțin o dată pe zi. Pentru a clona depozitul (câteva sute de MB):

$ git clone git://pkgbuild.com/aur-mirror.git

Interfața web, Readme, Topicul de pe forum

Întrebări frecvente

Î: Ce este AUR?

R: AUR (Arch User Repository) este un loc unde comunitatea Arch Linux poate urca PKGBUILD-uri pentru programe, biblioteci software, etc., și unde le pot împărții cu restul comunității. Utilizatorii pot vota pachetele favorite cu scopul mutării acestora în depozitul [community] unde pot fi folosite de către utilizatorii Arch Linux în format deja construit (binaries).

Î: Ce fel de pachete au voie în AUR?

R: Pachetele din AUR sunt doar niște „scripturi construibile”, un fel de rețete culinare pentru construirea acelor binaries pe care pacman le folosește. În general, orice este permis, cât timp îndeplinește noțiunea de scop și utilitate menționate mai sus, și cât timp sunt în concordanță cu termenii din licență. În alte cazuri, unde se menționează că „nu aveți voie să postați link-uri” pentru download, adică acel conținut nu trebuie redistribuit, aveți voie să folosiți doar numele pachetului ca sursă de proveniență. Asta înseamna că utilizatorii trebuie să aibă deja sursa în folderul de build-uri înainte de a construi pachetul. Dacă nu sunteți sigur, întrebați.

Î: Ce este acela un TU?

R: Un TU (Trusted User) este o persoană care a ales să supravegheze conținutul din AUR și din depozitul [community]. Ei sunt cei care întrețin PKGBUILD-uri populare în [community], și în mare parte țin AUR-ul în picioare.

Î: Care este diferența dintre Arch User Repository și [community]?

R: Arch User Repository e unde sunt stocate toate PKGBUILD-urile pe care utilizatorii le urcă, și care trebuiesc construite manual cu makepkg. Atunci când PKGBUILD-urile adună suficiente voturi, sunt mutate în depozitul [community], unde TU-rii le întrețin ca pachete gata construite (binaries) ce pot fi instalate cu pacman.

Î: Câte voturi sunt necesare pentru ca un PKGBUILD să ajungă în [community]?

R: De obicei, cel puțin 10 voturi sunt necesare pentru ca ceva să ajungă în [community]. Însă, dacă un TU vrea să aibă grijă de un pachet, de multe ori acesta va fi prezent în depozit.

Î: Cum creez un PKGBUILD?

R: Cea mai bună resursă este Creating Packages. Nu uitați să verificați mai întâi dacă pachetul există deja pentru ca munca depusă să nu fie în zadar.

Î: Încerc să folosesc „pacman -S foo”; nu merge dar știu că se află în [community]

R: Probabil nu ați activat [community] în /etc/pacman.conf. Pur și simplu decomentați liniile aferente. Dacă depozitul [community] este activat în /etc/pacman.conf încercați pacman -S -y mai întâi pentru a sincroniza pkgcache înainte de a încerca din nou.

Î: Programul foo din AUR este vechi; ce fac?

R: Pentru început, puteți marca pachetul ca fiind neactualizat. Dacă rămâne neactualizat pentru o perioadă îndelungată de timp, cel mai bine ar fi să-i trimiteți un email celui responsabil de pachet. Dacă nu primiți niciun răspuns după vreo două săptămâni, puteți trimite un mail categoriei „aur-general” din Mailing List pentru ca un TU să marcheze pachetul ca fiind orfan în cazul în care doriți să-l întrețineți dumneavoastră. Dacă e vorba despre un pachet marcat ca fiind neactualizat pe o perioadă mai lungă de 3 luni și care este în general neactualizat, vă rugăm să specificați asta atunci când faceți cererea.

Î: Am un PKGBUILD pe care aș vrea să-l public; poate cineva să-l verifice de erori?

R: Dacă doriți critici asupra PKGBUILD-ului, postați-l în „aur-general” din Mailing List pentru a primi feedback din partea TU-rilor și alți membri. Puteți, de asemenea, să cereți ajutor pe canalul IRC, #archlinux.ro pe irc.freenode.net. Puteți folosi și namcap pentru a verifica de erori PKGBUILD-ul și pachetul obținut.

Î: Foo din AUR nu merge construit atunci când folosesc makepkg; ce-ar trebui să fac?

R: Probabil că ați omis ceva banal.
  1. Executați pacman -Syyu înainte de a construi ceva cu makepkg deoarece problema poate fi din cauză că sistemul nu e la zi.
  2. Asigurați-vă că aveți ambele grupuri de pachete „base” și „base-devel” instalate.
  3. Încercați să folosiți opțiunea „-s” cu makepkg pentru a verifica și instala toate dependențele necesare înainte de a începe procesul de construire.

Citiți PKGBUILD-ul mai întâi și apoi comentariile de pe pagina AUR al pachetului respectiv.

Motivul s-ar putea să nu fie chiar atât de banal. Personalizarea CFLAGS, LDFLAGS și MAKEFLAGS pot provoca eşecurile. E posibil ca PKGBUILD-ul să fie defect pentru toată lumea. Dacă nu reușiți pe cont propriu, raportați-i celui responsabil de pachet, spre exemplu prin postarea erorilor în secțiunea de comentarii pe pagina AUR.

Î: Cum pot accelera procese repetate de construire?

R: În cazul în care construiți frecvent folosing gcc - să zicem, un pachet git sau SVN - v-ar putea fi de folos ccache, prescurtare de la „compiler cache”.

Î: Cum accesez pachetele fără suport oficial?

Î: Cum urc ceva pe AUR fără să folosesc interfața web?

R: Puteți folosi burp, aurploader sau aurup -- programele acestea funcționează din consolă.
Unelte personale