Arch User Repository (Italiano)
L'Arch User Repository (AUR) è un deposito di contributi della comunità per gli utenti di Arch Linux. Contiene descrizioni dei pacchetti (PKGBUILD) che permettono di compilare un pacchetto dal sorgente usando makepkg e poi installarlo tramite pacman. L’AUR è stato creato per organizzare e condividere nuovi pacchetti dalla comunità e per facilitare l'inclusione dei pacchetti più popolari nel repository extra. Questa pagina spiega come gli utenti possano accedere e utilizzare l'AUR.
Un buon numero di nuovi pacchetti che entrano nei repository ufficiali inizia dall'AUR. Qui gli utenti possono contribuire con i propri pacchetti (PKGBUILD e file correlati). La comunità dell'AUR ha la possibilità di votare per i pacchetti lì presenti. Se un pacchetto diventa abbastanza popolare — a condizione che abbia una licenza compatibile e una buona tecnica di pacchettizzazione — può essere inserito nel repository extra, divenendo quindi direttamente accessibile tramite pacman o dall'Arch build system.
PKGBUILD sono del tutto non ufficiali e non sono stati verificati in modo accurato. Qualsiasi utilizzo dei file forniti avviene a proprio rischio.Come iniziare
È possibile cercare e scaricare i PKGBUILD dall'interfaccia web dell'AUR. Questi PKGBUILD possono essere compilati in pacchetti installabili usando makepkg, e quindi installati usando pacman.
- Accertarsi che base-devel sia installato.
- Dare un'occhiata alle risposte a domande comuni.
- Valutare se sia necessario personalizzare le impostazioni nel file
/etc/makepkg.confper ottimizzare la compilazione sul proprio sistema prima di iniziare a compilare pacchetti dall'AUR. Un significativo miglioramento nei tempi di pacchettizzazione può essere ottenuto su sistemi con processori multi-core adeguando la variabileMAKEFLAGS, usando più core per la compressione o semplicemente scegliando un diverso algoritmo di compressione. Si possono anche abilitare ottimizzazioni del compilatore specifiche per l'hardware in uso attraverso la variabileCFLAGS. Informazioni aggiuntive sono reperibili nella sezione makepkg#Optimization.
È inoltre possibile interagire con l'AUR attraverso SSH se si attiva l'autenticazione SSH: digitare ssh aur@aur.archlinux.org help per ottenere l'elenco dei comandi disponibili.
Installazione e aggiornamento di pacchetti
Installare pacchetti dall'AUR è un processo relativamente semplice. Fondamentalmente:
- Scaricare i file necessari alla compilazione, incluso il
PKGBUILDe gli altri file se necessari, come unità systemd e patch (spesso non il codice reale). - Verificare che il file
PKGBUILDo gli altri file di accompagnamento non siano pericolosi o inaffidabili. - Dare il comando
makepkgnella directory in cui sono salvati i file. Questo comando scaricherà il codice, lo compilerà e lo inscatolerà in un pacchetto. - Dare il comando
pacman -U package_fileper installare il pacchetto nel proprio sistema.
Prerequisiti
Innanzitutto si deve verificare che gli strumenti necessari siano disponibili installando base-devel: questo meta pacchetto contiene make e altri strumenti necessari per la compilazione da sorgente, elencati come dipendenze.
Quindi si scelga una directory nella quale compilare i pacchetti. Una directory di compilazione è semplicemente una directory dove il pacchetto sarà costruito o "compilato" da sorgente. Gli esempi nelle prossime sezioni useranno ~/builds come directory di compilazione.
Ottenere i file di compilazione
Una volta identificato il pacchetto nell'AUR, per esempio attraverso il campo di ricerca in alto alla home page dell'AUR e cliccando sul suo nome nella lista dei risultati, leggere con attenzione la descrizione del pacchetto per accertarsi che si tratti veramente di ciò che si cerca. Si presti attenzione alla data di aggiornamento e si leggano tutti i commenti situati in fondo alla pagina.
Esistono diversi modi di acquisire i file per la compilazione del pacchetto:
- Clonare il repository git, situato sotto Package Details come Git Clone URL nella pagina AUR del pacchetto. Questo è il metodo consigliato, dato che è facile ottenere aggiornamenti del pacchetto, dando semplicemente il comando
git pull.
$ git clone https://aur.archlinux.org/nome_pacchetto.git
- Scaricare un'istantanea (in inglese: snapshot), cliccando sul link Download snapshot nella sezione Package Actions sulla destra della pagina, oppure dando il seguente comando in un terminale:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/nome_pacchetto.tar.gz
- Nota Il file snapshot è compresso e va estratto, preferibilmente in una directory apposita per questo lavoro, dando:
tar -xvf nome_pacchetto.tar.gz
- Usare il repository alternativo archlinux/aur su GitHub, nel quale ogni pacchetto si trova nel proprio branch. Si consiglia di clonare singoli branch perché il repository intero è troppo grande e scaricare ogni pacchetto durerebbe troppo tempo. Dunque si possono clonare le parti rilevanti nei seguenti modi:
- Dare
git clone --single-branch:$ git clone --branch nome_pacchetto --single-branch https://github.com/archlinux/aur.git
- Eseguire un clone parziale del repository (dando
git clone --depth=1) e reperire i branch di interesse selettivamente:
- Dare
$ git clone --depth=1 https://github.com/archlinux/aur.git; cd aur
$ git remote set-branches --add origin nome_pacchetto
$ git fetch
$ git checkout nome_pacchetto
Ottenere una chiave pubblica PGP se necessario
Si controlli se il file di firma (in inglese: signature) in formato .sig oppure .asc fa parte dei file scaricati insieme al PKGBUILD. Se dovesse essere il caso, scaricare una delle chiavi pubbliche elencate nella lista validpgpkeys del PKGBUILD. Altre informazioni si possono trovare nella sezione makepkg#Signature checking.
Compilazione del pacchetto
Entrare nella directory in cui si trova il file PKGBUILD relativo al pacchetto in questione.
$ cd package_name
PKGBUILD, tutti i file .install e qualunque altro file parte del pacchetto e accertarsi che non vi siano comandi pericolosi o nocivi. Se in dubbio, non compilare il pacchetto e chiedere aiuto nella mailing list o nel forum. Ci sono stati casi di codice maligno in pacchetti AUR. [3] [4]
Leggere i contenuti dei file scaricati. Per esempio, l'impaginatore less può essere usato per leggere il PKGBUILD, dando:
$ less PKGBUILD
- Per vedere ciò che è cambiato dall'ultimo commit git, si dia
git show. - Per veder vere ciò che è cambiato dall'ultimo commit in formato vimdiff, si dia
git difftool @~..@ --tool=vimdiff. Il vantaggio di vimdiff è che si può vedere il contenuto di ogni file insieme a indicatori su che cosa è cambiato.
Una volta confermato il contenuto dei file, eseguire il programma makepkg come utente normale (non-privilegiato o admin). Le seguenti opzioni possono essere utili:
-
-s/--syncdepsrisolve e installa automaticamente tramite pacman tutte le dipendenze necessarie per il PKGBUILD prima della compilazione. Se il pacchetto dovesse dipendere da altri pacchetti AUR, questi andrebbero installati a mano in anticipo. -
-i/--installinstalla il pacchetto nel caso venga compilato correttamente. Questo completa automaticamente anche il prossimo passo, che altrimenti andrebbe fatto a mano. -
-r/--rmdepsrimuove pacchetti installati e richiesti per la compilazione, che non sono più necessari una volta che questa è terminata. Tuttavia verranno riscaricati e installati quando si aggiorna il pacchetto. -
-c/--cleanripulisce (ovvero rimuove) i file temporanei prodotti dalla compilazione, che non sono più necessari al termine dell'operazione. Potrebbe comunque essere necessario reinstallare queste dipendenze la prossima che volta che il pacchetto sarà aggiornato.
git clean -dfx per rimuovere tutti i file che non sono tracciati da git. Questo rimuove sia i file temporanei menzionati sopra, che i risultati di compilazioni precedenti.Installazione del pacchetto
A questo punto il pacchetto può essere installato con pacman:
# pacman -U nome_pacchetto-versione-architettura.pkg.tar.zst
- Se si modifica la variabile
PKGEXTinmakepkg.conf, il nome del pacchetto prodotto potrebbe essere leggermente diverso. - Queste indicazioni sono solo un breve riassunto del processo di compilazione. È altamente consigliato leggere gli articoli makepkg e Arch build system per ulteriori dettagli.
makepkg --packagelist per ottenere la lista dei nomi dei pacchetti generati dopo la compilazione.Aggiornare i pacchetti
Nella directory contenente il PKGBUILD del pacchetto è necessario anzitutto aggiornare i file e ottenere i cambiamenti dando
$ git pull
e seguendo le stesse istruzioni di prima su compilazione e installazione.
Tenere aggiornati i pacchetti
L'AUR non è sostenuta ufficialmente, per cui è compito dell'utente tenere aggiornati i pacchetti provenienti da lì. Se vengono aggiornati i pacchetti dei repository ufficiali, è l'utente che dovrà ricompilare tutti pacchetti AUR che dipendono da quelle librerie aggiornate. Lo strumento checkrebuild e l'aggancio (hook) rebuild-detector del pacchetto rebuild-detector possono dare una mano a identificare i pacchetti che necessitano di ricompilazione.
Stato dell'ccount
Sospensione
Quando si modifica un utente come Manutentore di pacchetti, si può attivare il campo Suspended (in italiano: sospeso), che sospende l'utente in questione. Quando un utente viene sospeso, non può:
- Effettuare il login su https://aur.archlinux.org;
- Ricevere notifiche;
- Interagire con l'interfaccia git.
Inattività
Quando si modifica il proprio account oppure l'account di un altro utente in qualità di Manutentore di pacchetti, si può attivare il campo Inactive (in italiano: inattivo). Gli account inattivi sono usati per due ragioni:
- Mostrare la data nella quale qualcuno è stato marcato come inattivo nella sua pagina dell'account;
- generare un conteggio aggiornato dei Manutentori di pacchetti attivi in base al loro stato di inattività alle nuove proposte.
Feedback
Commentare i pacchetti
Il portale web dell'AUR offre agli utenti la possibilità di dare consigli e suggerimenti su come migliorare il PKGBUILD.
PKGBUILD nella sezione commenti, dato che queste diventano velocemente obsolete e richiedono spazio inutilmente. Si possono offrire cambiamenti e correzioni per email alla persona incaricata di mantenere il pacchetto, o caricare i cambiamenti su pastebin.Python-Markdown è uno strumento che descrive la sintassi Markdown con la quale si può formattare i commenti.
- Questa implementazione ha alcune sporadiche differenze con le regole ufficiali di sintassi.
- Gli hash dei commit al repository Git del pacchetto e i riferimenti ai ticket Flyspray vengono convertiti in collegamenti in modo automatico.
- I commenti lunghi vengono compressi e possono essere espansi su richiesta.
Votare per i pacchetti
Una delle attività più semplici per tutti gli utenti Arch è di consultare l'AUR e votare per i propri pacchetti preferiti utilizzando l'interfaccia web. Tutti i pacchetti possono essere adottati da un Package Maintainer per l'inclusione nel repository extra e il conteggio dei voti è uno degli aspetti considerati in quel processo di inclusione: votare è nell'interesse di tutti!
Ci si può registrare sul sito AUR per ottenere l'opzione "Vote for this package" (it. "Vota per questo pacchetto"). Una volta effettuata la registrazione è possibile votare anche da un terminale con aur-auto-vote-gitAUR.
Alternativamente, se si è impostata l'autenticazione SSH per l'AUR, si può votare direttamente usando la propria chiave SSH, evitando di dover salvare o digitare la password AUR.
$ ssh aur@aur.archlinux.org vote nome_pacchetto
Marcare i pacchetti come obsoleti
Nel caso in un pacchetto sia obsoleto, ovvero ci dovesse essere una versione più recente, ma questa non sia ancora stata messa a disposizione nell'AUR, si può marcare il pacchetto come out-of-date, dando un riassunto del motivo, preferibilmente inserendo dei link all'annuncio dell'aggiornamento, oppure del file tarball della nuova versione.
Si dovrebbe anche provare a informare il manutentore direttamente per email. Nel caso non si ottenga risposta dopo due settimane, si può richiedere che il pacchetto venga riconosciuto come orfano. Più informazioni sono disponibili in AUR submission guidelines#Requests.
pkgver; non marcateli perché il manutentore vi ignorerà dato che non è tenuto ad aggiornare il PKGBUILD solo per inserire il nuovo pkgver.Debug del processo di compilazione
Nel caso di problemi, si controllino bene le seguenti cose:
- Accertarsi che il proprio sistema sia stato aggiornato prima di compilare qualcosa.
- Verificare di avere installato il pacchetto base-devel.
- Usare
makepkgcon l'opzione-sper rilevare e installare tutti i pacchetti da cui dipende il pacchetto che si desidera compilare prima di iniziare il processo. - Provare ad usare la configurazione standard di
makepkg. - Consultare Makepkg#Troubleshooting per problemi comuni.
In caso di problemi quando si compila un pacchetto, leggere prima i contenuti del file PKGBUILD ed i commenti sulla sua pagina AUR.
È possibile che un PKGBUILD non funzioni per nessuno. Se non si dovesse essere in grado di capire cosa causi il problema oppure come risolverlo, si contatti il manutentore (ad esempio scrivendo un commento nel quale si descrive il problema. Si può anche chiedere aiuto nel forum AUR Issues, Discussion & PKGBUILD Requests.
Il motivo può non essere banale. Impostazioni personalizzate nelle CFLAGS, LDFLAGS e MAKEFLAGS possono provocare errori. Per evitare problemi causati da impostazioni personalizzate, si provi a compilare pacchetti in un ambiente chroot pulito. Se il processo dovesse ancora fallire in un chroot pulito, si tratta probabilmente di un problema all'interno del PKGBUILD.
Creating packages#Checking package sanity contiene informazioni sull'utilizzo del comando namcap. Per ottenere un controllo dei contenuti di un PKGBUILD, si carichi il file nella mailing list aur-general, così altri manutentori di pacchetti e utenti AUR possono passare in revisione i contenuti. Lo stesso si può ottenere caricando il file sul forum, o chiedendo aiuto nella chat IRC #archlinux-aur sul network Libera Chat.
Inserire pacchetti
Gli utenti possono distribuire i propri PKGBUILD nell'AUR. Per istruzioni si consulti le linee guida per la distribuzione di pacchetti nell'AUR.
Traduzione dell'interfaccia web
È possibile creare e mantenere traduzioni del portale web AUR. Si consulti il documento i18n.md per istruzioni.
Storia
All'inizio vi fu ftp://ftp.archlinux.org/incoming, e gli utenti contribuirono semplicemente caricando i PKGBUILD ed i file ausiliari necessari insieme al pacchetto compilato ed imballato direttamente sul server. Il pacchetto e tutti i file associati ad esso rimanevano lì finché un utente "fidato" (oggi conosciuto manutentore di pacchetti) li vide e incorporò nel repository.
Poi si istituì il "repository per utenti fidati" (ing. Trusted User Repository), nel quale certi membri della comunità ottennero il permesso di caricare i propri programmi affinché essi venissero distribuiti fra la comunità. L'AUR espanse questo sistema con lo scopo di renderlo più flessibile e accessibile. Infatti, i manutentori dell'AUR furono chiamati utenti "fidati" (ing. Trusted User) prima di diventare manutentori di pacchetti.
Tra il 2015-06-08 ed il 2015-08-08, l'AUR venne aggiornata dalla versione 3.5.1 alla versione 4.0.0, nella quale fu introdotto l'utilizzo dei repositori Git per il fine di pubblicazione dei PKGBUILD. I pacchetti esistenti vennero migrati nella nuova infrastruttura o rimossi.
Repository Git per pacchetti AUR3
L'archivio AUR su GitHub ha un repository per ogni pacchetto che si trovava sull'AUR versione 3 all'epoca della migrazione. Esiste anche l'archivio alternativo aur3-mirror che offre la stessa cosa.
Domande frequenti
Che tipologia di pacchetti sono permessi nell'AUR?
I pacchetti nell'AUR sono semplicemente degli script che contengono istruzione su come generare pacchetti imballati che possono essere installati da parte di pacman. Nella maggior parte dei casi, qualunque tipo di pacchetto è permesso, anche se sottoposto alle linee di guida dei pacchetti AUR, purché la distribuzione del pacchetto sia permessa dalla licenza del contenuto. In altri casi, ad esempio quando non è permesso pubblicare un link di download, ovvero è vietato ridistribuire il contenuto, si può solo pubblicare il nome senza link nel PKGBUILD, in modo tale che solo utenti che siano già in possesso del codice sorgente siano in grado di compilare ed installare il pacchetto. In caso di dubbi, chiedete.
Come faccio a votare per pacchetti nell'AUR?
Vedi #Votare per i pacchetti.
Chi è un manutentore di pacchetti?
Si veda Arch terminology#Package maintainer.
Qual'è la differenza tra l'AUR e il repository extra?
Il repository utenti Arch è dove tutti i PKGBUILD vengono caricati da utenti e membri della comunità. Questi non sono ufficiali e vanno compilati a mano con makepkg. Quando un PKGBUILD diventa molto popolare e ottiene l'appoggio di un manutentore, viene incorporato nel repository extra, dal quale può essere installato con pacman.
Foo nell'AUR è obsoleto; cosa faccio?
Vedi #Marcare i pacchetti come obsoleti.
Nel frattempo, si può provare da soli ad aggiornare il pacchetto modificando il PKGBUILD sul proprio sistema. A volte non è necessario modificare il processo di compilazione o di pacchettizzazione, nel qual caso è sufficiente semplicemente aggiornare pkgver o l'array source.
Foo nell'AUR non compila quando eseguo makepkg; cosa faccio?
Probabilmente si tratta di un errore banale, vedi #Debug del processo di compilazione.
ERROR: One or more PGP signatures could not be verified!; cosa faccio?
Probabilmente non hai incorporato le chiavi pubbliche nel tuo portachiavi digitale personale. Vedi Makepkg#Signature checking per dettagli.
Come faccio a creare un PKGBUILD?
Consulta l'articolo AUR submission guidelines#Rules of submission, poi vedi le istruzioni in creating packages.
Ho un PKGBUILD che vorrei pubblicare; c'è qualcuno che può verificare che non abbia commesso errori?
Ci sono diversi luoghi dove chiedere, vedi #Debug del processo di compilazione.
Come faccio ad inserire un PKGBUILD nel repository extra?
In genere servono almeno 10 voti per spostare qualcosa nel repository extra. Tuttavia, spesso basta convincere un manutentore ad appoggiare il pacchetto.
Raggiungere il numero minimo di voti non è l'unico criterio; ci deve essere un manutentore di pacchetti disposto a sostenere il pacchetto in questione. I manutentori non sono obbligati ad incorporare un pacchetto nel repository extra soltanto perché ha raggiunto molti voti.
Spesso, se un pacchetto molto popolare rimane nell'AUR, è per uno di questi motivi:
- Arch Linux possiede già un'altra versione del pacchetto in uno dei repositori ufficiali.
- La licenza proibisce la ridistribuzione.
- Si tratta di un AUR helper, ovvero di un programma che scarica ed installa pacchetti AUR, evitando di dover compilare tutto a mano nella maniera descritta in questo articolo. Tuttavia questi programmi non sono supportati per definizione.
Altre informazioni sono reperibili Regole per incorporare pacchetti nel repository extra.
Come faccio ad accelerare processi di compilazione?
Vedi Makepkg#Improving build times.
Qual'è la differenza tra i pacchetti foo e foo-git?
Molti pacchetti AUR provengono da versioni complete dette "stabili", oppure da versioni in sviluppo "instabili". Quest'ultime in genere hanno un suffisso che descrive il sistema di controllo versione in utilizzo e non sono pensate per essere usate normalmente, tuttavia possono contenere nuove funzioni o correzioni di bug. Questi pacchetti scaricano soltanto il nuovo codice sorgente ed il loro pkgver() non riflette aggiornamenti. È per lo stesso motivo che questi pacchetti non possono verificare la propria autenticità tramite il confronto di checksum.
Vedi anche System maintenance#Use proven software packages.
Perché foo è scomparso dall'AUR?
È possibile che il pacchetto sia stato adottato da un manutentore e sia quindi stato incorporato nel repository extra.
È anche possibile che il pacchetto sia stato rimosso perché violava le regole di distribuzione nell'AUR. Controlla gli archivi aur-requests per sapere il motivo della rimozione.
Come faccio a sapere se uno dei pacchetti che ho installato è scomparso dall'AUR?
Il modo più semplice di controllare è di verificare il codice HTTP della pagina AUR dei pacchetti in questione:
$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)
Come faccio a vedere una lista di tutti i pacchetti AUR?
- https://aur.archlinux.org/packages.gz
- Utilizza
aurpkglistdel pacchetto python3-aurAUR