Arch User Repository

L’Arch User Repository (AUR) è un repository guidato dalla comunità per gli utenti Arch. Contiene le descrizioni dei pacchetti (PKGBUILD) che permettono di compilare un pacchetto dai sorgenti con makepkg e poi installarlo tramite pacman. AUR è stato creato per organizzare e condividere nuovi pacchetti dalla comunità e per aiutare ad accelerare l’inclusione di pacchetti popolari nel repository comunitario. Questo documento spiega come gli utenti possono accedere e utilizzare AUR.

Un buon numero di nuovi pacchetti che entrano nei repository ufficiali inizia in AUR. In AUR, gli utenti sono in grado di contribuire alla costruzione dei propri pacchetti (PKGBUILDe dei relativi file). La comunità di AUR ha la possibilità di votare per i pacchetti in AUR. Se un pacchetto diventa abbastanza popolare – purché abbia una licenza compatibile e una buona tecnica di impacchettamento – può essere inserito nel repository della comunità (direttamente accessibile da pacman o abs).

Attenzione: I pacchetti AUR sono contenuti prodotti dagli utenti. Questi PKGBUILDsono completamente non ufficiali e non sono stati accuratamente controllati. Qualsiasi uso dei file forniti è a proprio rischio.

Iniziare

Gli utenti possono cercare e scaricare i PKGBUILD dall’interfaccia web di AUR. Questi PKGBUILDpossono essere costruiti in pacchetti installabili usando makepkg, quindi installati usando pacman.

  • Assicurarsi che il gruppo di pacchetti base-devel sia installato per intero (pacman -S --needed base-devel).
  • Sfogliare le #FAQ per le risposte alle domande più comuni.
  • Si potrebbe voler regolare /etc/makepkg.confper ottimizzare il processo di costruzione del proprio sistema prima di costruire pacchetti da AUR. Un miglioramento significativo nei tempi di compilazione dei pacchetti può essere realizzato su sistemi con processori multi-core regolando la variabile MAKEFLAGS, utilizzando più core per la compressione, o utilizzando un diverso algoritmo di compressione. Gli utenti possono anche abilitare le ottimizzazioni del compilatore specifiche per l’hardware tramite la variabile CFLAGS. Vedere makepkg#Tips and tricks per maggiori informazioni.

È anche possibile interagire con AUR attraverso SSH: digitare ssh [email protected] help per una lista di comandi disponibili.

Storia

All’inizio, c’era ftp://ftp.archlinux.org/incoming, e le persone contribuivano semplicemente caricando sul server il PKGBUILD, i file supplementari necessari, e il pacchetto costruito stesso. Il pacchetto e i file associati rimanevano lì fino a quando un Package Maintainer vedeva il programma e lo adottava.

Poi sono nati i Trusted User Repositories. Ad alcuni individui della comunità fu permesso di ospitare i propri repository per l’uso da parte di chiunque. AUR si espanse su questa base, con l’obiettivo di renderlo sia più flessibile che più utilizzabile. Infatti, i manutentori di AUR sono ancora indicati come TU (Trusted Users).

Tra il 2015-06-08 e il 2015-08-08 AUR è passato dalla versione 3.5.1 alla 4.0.0, introducendo l’uso di repository Git per la pubblicazione dei PKGBUILDpacchetti esistenti sono stati abbandonati a meno che non siano stati migrati manualmente alla nuova infrastruttura dai loro manutentori.

Repository Git per i pacchetti di AUR3

L’AUR Archive su GitHub ha un repository per ogni pacchetto che era in AUR 3 al momento della migrazione.In alternativa, c’è il repository aur3-mirror che fornisce lo stesso.

Installazione e aggiornamento dei pacchetti

L’installazione dei pacchetti da AUR è un processo relativamente semplice. Essenzialmente:

  1. Acquisire i file di build, compreso il PKGBUILD e possibilmente altri file necessari, come le unità systemd e le patch (spesso non il codice vero e proprio).
  2. Verificare che il PKGBUILD e i file di accompagnamento non siano dannosi o inaffidabili.
  3. Eseguire makepkg -si nella directory dove sono salvati i file. Questo scaricherà il codice, risolverà le dipendenze con pacman, lo compilerà, lo impacchetterà e installerà il pacchetto.
Nota: AUR non è supportato, quindi qualsiasi pacchetto installato è vostra responsabilità di aggiornarlo, non di pacman. Se i pacchetti nei repository ufficiali vengono aggiornati, sarà necessario ricostruire tutti i pacchetti AUR che dipendono da quelle librerie.

Prequisiti

Prima assicurarsi che gli strumenti necessari siano installati installando il gruppo base-devel per intero, che include make e altri strumenti necessari per la compilazione da sorgente.

Suggerimento: Usare il flag --needed quando si installa il gruppo base-devel per saltare i pacchetti che si hanno già invece di reinstallarli.
Nota: I pacchetti in AUR assumono che il gruppo base-devel sia installato, cioè non elencano esplicitamente i membri del gruppo come dipendenze di compilazione.

Poi scegliere una directory di compilazione appropriata. Una directory di compilazione è semplicemente una directory in cui il pacchetto verrà creato o “costruito” e può essere qualsiasi directory. Gli esempi nelle sezioni seguenti useranno ~/builds come directory di compilazione.

Acquisire i file di compilazione

Localizzare il pacchetto in AUR. Questo viene fatto usando il campo di ricerca in cima alla home page di AUR. Cliccando sul nome dell’applicazione nella lista di ricerca, appare una pagina di informazioni sul pacchetto. Leggere la descrizione per confermare che si tratta del pacchetto desiderato, annotare quando il pacchetto è stato aggiornato l’ultima volta e leggere qualsiasi commento.

Ci sono diversi metodi per acquisire i file di build di un pacchetto:

  • Clonare il suo repository git, etichettato “Git Clone URL” in “Package Details” nella sua pagina AUR. Questo è il metodo preferito, un vantaggio è che si possono facilmente ottenere gli aggiornamenti del pacchetto tramite git pull.
$ git clone https://aur.archlinux.org/package_name.git
  • Scaricare uno snapshot, sia cliccando sul link “Download snapshot” sotto “Package Actions” sul lato destro della sua pagina AUR, o in un terminale:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Nota: Il file snapshot è compresso, e deve essere estratto (preferibilmente in una directory riservata alle build di AUR): tar -xvf package_name.tar.gz

Acquisire una chiave pubblica PGP, se necessario

Controllare se un file di firma sotto forma di .sig o .asc fa parte dell’array di sorgenti PKGBUILD, se questo è il caso, allora acquisire una delle chiavi pubbliche elencate nell’array PKGBUILD validpgpkeys. Fai riferimento a makepkg#Controllo della firma per maggiori informazioni.

Costruisci e installa il pacchetto

Cambia le directory nella directory contenente il PKGBUILD del pacchetto.

$ cd package_name
Attenzione: Controllare attentamente il PKGBUILD, qualsiasi file .install e qualsiasi altro file nel repository git del pacchetto per comandi dannosi o pericolosi. In caso di dubbio, non compilare il pacchetto e chiedere consiglio sui forum o sulla mailing list. Il codice dannoso è stato trovato nei pacchetti in passato.

Vedi il contenuto di tutti i file forniti. Per esempio, per usare il pager less per visualizzare PKGBUILD fai:

$ less PKGBUILD
Suggerimento: se stai aggiornando un pacchetto, potresti voler guardare i cambiamenti dall’ultimo commit.

  • Per visualizzare i cambiamenti dall’ultimo commit di git puoi usare git show.
  • Per visualizzare i cambiamenti dall’ultimo commit usando vimdiff, fai git difftool @~..@ vimdiff. Il vantaggio di vimdiff è che si visualizza l’intero contenuto di ogni file insieme a indicatori su ciò che è cambiato.

Fai il pacchetto. Dopo aver confermato manualmente il contenuto dei file, eseguire makepkg come utente normale:

$ makepkg -si
  • -s/--syncdeps risolve e installa automaticamente qualsiasi dipendenza con pacman prima di costruire. Se il pacchetto dipende da altri pacchetti AUR, sarà necessario installarli prima manualmente.
  • -i/--install installa il pacchetto se viene costruito con successo. In alternativa il pacchetto costruito può essere installato con pacman -U package_name.pkg.tar.zst.

Altri flag utili sono

  • -r/--rmdeps rimuove le dipendenze dopo la compilazione, poiché non sono più necessarie. Tuttavia queste dipendenze potrebbero dover essere reinstallate la prossima volta che il pacchetto viene aggiornato.
  • -c/--clean pulisce i file temporanei di compilazione dopo la compilazione, poiché non sono più necessari. Questi file sono solitamente necessari solo quando si fa il debug del processo di compilazione.
Nota: l’esempio precedente è solo un breve riassunto del processo di compilazione. Si raccomanda vivamente di leggere gli articoli makepkg e ABS per maggiori dettagli.

Aggiornamento dei pacchetti

Nella directory contenente il PKGBUILD del pacchetto è necessario prima aggiornare i file e le modifiche utilizzando il comando

$ git pull

poi eseguire

$ makepkg -si

per aggiornare il pacchetto.

Feedback

Commentare i pacchetti

L’AUR Web Interface ha una struttura per i commenti che permette agli utenti di fornire suggerimenti e feedback sui miglioramenti al collaboratore PKGBUILD.

Consiglio: Evitare di incollare patch o PKGBUILDnella sezione dei commenti: diventano rapidamente obsoleti e finiscono per occupare inutilmente molto spazio. Invece invia quei file per email al manutentore, o usa un pastebin.

Python-Markdown fornisce una sintassi Markdown di base per formattare i commenti.

Nota:

  • Questa implementazione ha alcune differenze occasionali con le regole di sintassi ufficiali.
  • Commetti gli hash al repository Git del pacchetto e i riferimenti ai ticket Flyspray sono convertiti automaticamente in link.
  • I commenti lunghi sono compressi e possono essere espansi su richiesta.

Votando i pacchetti

Una delle attività più semplici per tutti gli utenti Arch è quella di navigare in AUR e votare i propri pacchetti preferiti utilizzando l’interfaccia online. Tutti i pacchetti possono essere adottati da un TU per essere inclusi nel repository della comunità, e il conteggio dei voti è una delle considerazioni in questo processo; è nell’interesse di tutti votare!

Scriversi sul sito di AUR per avere un’opzione “Vota per questo pacchetto” durante la navigazione dei pacchetti. Dopo l’iscrizione è anche possibile votare dalla linea di comando con aurvoteAUR, aurvote-gitAUR o aur-auto-vote-gitAUR.

In alternativa, se si è impostata l’autenticazione ssh, è possibile votare direttamente dalla linea di comando utilizzando la propria chiave ssh. Questo significa che non sarà necessario salvare o digitare la password di AUR.

$ ssh [email protected] vote package_name

Segnalare i pacchetti obsoleti

Prima di tutto, si dovrebbe segnalare il pacchetto obsoleto indicando i dettagli sul perché il pacchetto è obsoleto, preferibilmente includendo i link all’annuncio di rilascio o al tarball del nuovo rilascio.

Si dovrebbe anche provare a contattare il manutentore direttamente via email. Se non c’è risposta da parte del manutentore dopo due settimane, è possibile presentare una richiesta di orfano. Vedere le linee guida per la presentazione di AUR#Richieste per i dettagli.

Nota: I pacchetti VCS non sono considerati obsoleti quando il pkgver cambia e non devono essere segnalati in questo caso.

Debugare il processo di compilazione dei pacchetti

  1. Assicurarsi che il proprio ambiente di compilazione sia aggiornato aggiornandolo prima di costruire qualsiasi cosa.
  2. Assicurarsi di avere installato il gruppo base-devel.
  3. Utilizza l’opzione -s con makepkg per controllare e installare tutte le dipendenze necessarie prima di iniziare il processo di compilazione.
  4. Prova la configurazione predefinita di makepkg.
  5. Vedi Makepkg#Troubleshooting per problemi comuni.

Se si hanno problemi a costruire un pacchetto, leggere prima il suo PKGBUILD e i commenti sulla sua pagina AUR.

È possibile che un PKGBUILD sia rotto per tutti. Se non si riesce a capirlo da soli, segnalarlo al manutentore (ad esempio postando gli errori che si ottengono nei commenti della pagina AUR). Si può anche cercare aiuto nel forum AUR Issues, Discussion & PKGBUILD Requests.

La ragione potrebbe non essere banale dopo tutto. I sistemi personalizzati CFLAGS, LDFLAGS e MAKEFLAGS possono causare fallimenti. Per evitare problemi causati dalla vostra particolare configurazione di sistema, compilate i pacchetti in una chroot pulita. Se il processo di compilazione fallisce ancora in una chroot pulita, il problema è probabilmente con il PKGBUILD.

Si veda Creare pacchetti#Checking package sanity about using namcap. Se si desidera avere un PKGBUILD revisionato, postarlo sulla mailing list aur-general per avere un feedback dai TU e dai colleghi membri di AUR, o sul forum Creazione & Modifica dei pacchetti. Si può anche cercare aiuto nel canale IRC #archlinux-aur su Freenode.

Subire i pacchetti

Gli utenti possono condividere i PKGBUILD usando l’Arch User Repository. Vedere le linee guida per l’invio di AUR per i dettagli.

Traduzione dell’interfaccia web

Vedere i18n.txt nell’albero dei sorgenti di AUR per informazioni sulla creazione e il mantenimento della traduzione dell’interfaccia web di AUR.

FAQ

Che tipo di pacchetti sono ammessi su AUR?

I pacchetti su AUR sono semplicemente “build scripts”, cioè ricette per costruire binari per pacman. Per la maggior parte dei casi, tutto è permesso, soggetto alle linee guida sull’utilità e lo scopo, finché si è in conformità con i termini di licenza del contenuto. Per altri casi, dove è menzionato che “non si può linkare” ai download, cioè a contenuti che non sono ridistribuibili, si può solo usare il nome del file stesso come fonte. Questo significa e richiede che gli utenti abbiano già il sorgente limitato nella directory di compilazione prima di costruire il pacchetto. In caso di dubbio, chiedere.

Come posso votare per i pacchetti su AUR?

Vedi #Votando i pacchetti.

Cos’è un Trusted User / TU?

Un Trusted User, in breve TU, è una persona che viene scelta per supervisionare AUR e il repository della comunità. Sono coloro che mantengono i PKGBUILD popolari nella comunità, e in generale mantengono l’AUR in funzione.

Qual è la differenza tra l’Arch User Repository e il repository della comunità?

L’Arch User Repository è dove tutti i PKGBUILD che gli utenti inviano sono memorizzati, e devono essere costruiti manualmente con makepkg. Quando i PKGBUILDsono abbastanza interessati dalla comunità e ricevono il supporto di un TU, vengono spostati nel repository comunitario (mantenuto dai TU), dove i pacchetti binari possono essere installati con pacman.

Foo nell’AUR è obsoleto; cosa devo fare?

Vedi #Flagging packages out-of-date.

Nel frattempo, puoi provare ad aggiornare il pacchetto da solo modificando il PKGBUILD localmente. A volte, gli aggiornamenti non richiedono modifiche al processo di compilazione o al pacchetto, nel qual caso è sufficiente aggiornare semplicemente l’array pkgver o source.

Foo in AUR non si compila quando si esegue makepkg; cosa devo fare?

Probabilmente ti manca qualcosa di banale, vedi #Debuging del processo di compilazione del pacchetto.

ERRORE: Una o più firme PGP non possono essere verificate; cosa devo fare?

Molto probabilmente non hai la o le chiavi pubbliche richieste nel tuo portachiavi personale per verificare i file scaricati. Vedi Makepkg#Signature checking per i dettagli.

Come faccio a creare un PKGBUILD?

Consultare le linee guida per l’invio di AUR#Regole di invio, poi vedere creare pacchetti.

Ho un PKGBUILD che vorrei inviare; qualcuno può controllarlo per vedere se ci sono errori?

Ci sono diversi canali disponibili per inviare il proprio pacchetto per la revisione; vedere #Debugare il processo di creazione dei pacchetti.

Come ottenere un PKGBUILD nel repository comunitario?

Di solito, sono necessari almeno 10 voti perché qualcosa si sposti nella comunità. Tuttavia, se un TU vuole supportare un pacchetto, spesso lo troverà nel repository.

Raggiungere il minimo richiesto di voti non è l’unico requisito, ci deve essere un TU disposto a mantenere il pacchetto. I TU non sono obbligati a spostare un pacchetto nel repository comunitario anche se ha migliaia di voti.

Di solito quando un pacchetto molto popolare rimane nell’AUR è perché:

  • Arch Linux ha già un’altra versione di un pacchetto nei repository
  • La sua licenza vieta la ridistribuzione
  • Aiuta a recuperare i PKGBUILD inviati dagli utenti. Gli helper AUR non sono supportati per definizione.

Vedi anche le regole per i pacchetti che entrano nella community Repo.

Come posso accelerare i processi di compilazione ripetuti?

Vedi Makepkg#Migliorare i tempi di compilazione.

Qual è la differenza tra i pacchetti foo e foo-git?

Molti pacchetti AUR sono disponibili in versioni di rilascio “stabili” e versioni di sviluppo “instabili”. I pacchetti di sviluppo di solito hanno un suffisso che denota il loro sistema di controllo di versione e non sono destinati ad un uso regolare, ma possono offrire nuove funzionalità o correzioni di bug. Poiché questi pacchetti scaricano solo l’ultimo sorgente disponibile quando si esegue makepkg, il loro pkgver() in AUR non riflette i cambiamenti a monte. Allo stesso modo, questi pacchetti non possono eseguire un checksum di autenticità su qualsiasi sorgente VCS.

Vedi anche System maintenance#Use proven software packages.

Perché pippo è scomparso da AUR?

È possibile che il pacchetto sia stato adottato da un TU e sia ora nel repository della comunità.

I pacchetti possono essere cancellati se non soddisfano le regole di presentazione. Vedere gli archivi aur-requests per il motivo della cancellazione.

Nota: Il repository git di un pacchetto cancellato rimane tipicamente disponibile. Vedere le linee guida di AUR#Requests per i dettagli.

Se il pacchetto esisteva in AUR3, potrebbe non essere stato migrato in AUR4. Vedere i repository #Git per i pacchetti AUR3 dove questi sono conservati.

Come posso scoprire se qualcuno dei miei pacchetti installati è scomparso da AUR?

Il modo più semplice è quello di controllare lo stato HTTP della pagina AUR del pacchetto:

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

Come posso ottenere una lista di tutti i pacchetti AUR?

  • Usa aurpkglist da python3-aurAUR

Vedi anche

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.