Arch User Repository (Italiano)

From ArchWiki
Translation Status: This article is a localized version of Arch User Repository. Last translation date: 2024-01-19. You can help to synchronize the translation, if there were changes in the English version.

L'Arch User Repository (AUR) (it. repositore utenti Arch) è un repositore gestito dagli utenti Arch. Consiste di una serie di PKGBUILD, ovvero file che danno precise istruzioni su come usare makepkg per compilare un pacchetto partendo dal codice sorgente ed installarlo tramite il gestore di pacchetti pacman. L'AUR fu istituito per organizzare e distribuire nuovi pacchetti costituiti dagli utenti e per accelerare l'inclusione di pacchetti popolari nel repositore ufficiale extra. Questo articolo spiega come accedere a e utilizzare l'AUR.

Molti pacchetti che vengono incorporati nei repositori ufficiali sono stati inseriti prima nell'AUR. Qui è possibile aggiungere i propri file PKGBUILD (insieme ad altri file rilevanti). La comunità può votare per pacchetti nell'AUR e i pacchetti che raggiungono un grado di prestigio o popolarità sufficientemente elevato possono essere incorporati nel repositore ufficiale extra, divenendo così accessibili direttamente attraverso pacman, con la condizione che la licenza sia compatibile e il pacchetto disponga di una qualità sufficiente.

Attenzione: I pacchetti AUR sono stati creati dagli utenti. Dunque i file PKGBUILD sono completamente inofficiali e non sono stati verificati da nessuno. Utilizzare qualunque file reso accessibile nell'AUR a proprio rischio.

Come iniziare

È possibile cercare e scaricare PKGBUILDs sul portale web dell'AUR. I PKGBUILD scaricati possono essere compilati in un pacchetto installabile usando il comando makepkg, dopodiché si possono installare usando pacman. Prima di iniziare ci si dovrebbe rendere conto delle seguenti indicazioni:

  • Accertarsi che base-devel sia installato.
  • Dare un'occhiata alle risposte a domande comuni
  • Valutare se aggiustare le impostazioni nel file /etc/makepkg.conf per rendere più veloce la compilazione sul sistema utilizzato prima di iniziare a compilare pacchetti dall'AUR. Processori multicore possono essere decisamente più veloci se si aggiusta la variabile MAKEFLAGS in modo tale da usare diversi nuclei (core) per la compressione dei pacchetti, o semplicemente per scegliere un algoritmo di compressione più vantaggioso. Gli utenti possono anche impiegare ottimizzazioni della compilazione specifiche del tipo di hardware in utilizzo, da specificare nella variabile CFLAGS. Informazioni aggiuntive sono reperibili nella sezione makepkg#Tips and tricks.
  • È inoltre possibile interagire con l'AUR attraverso SSH se si attiva l'autenticazione SSH.

Installazione e aggiornamento di pacchetti

Installare pacchetti dall'AUR è un processo relativamente semplice. Fondamentalmente:

  • Si scaricano i file necessari alla compilazione, incluso il PKGBUILD e gli altri file necessari, ad esempio unità systemd e modifiche al software di base.
  • Ci si accerta che il file PKGBUILD o gli altri file di accompagnamento non siano pericolosi, maligni o inaffidabili.
  • Dare il comando makepkg nella directory in cui sono situati i file scaricati. Questo comando scarica il codice sorgente del pacchetto desiderato, lo compila e lo imballa in un pacchetto vero e proprio.
  • Dare il comando pacman -U package_file per installare il pacchetto sul proprio sistema.

Prerequisiti

Innanzitutto si deve verificare che i programmi necessari siano installati sul proprio sistema. Molti strumenti necessari possono essere reperiti installando il metapacchetto base-devel.

Nota: I pacchetti nell'AUR fanno affidamento sul fatto che base-devel sia installato nel sistema sul quale vengono compilati.

Dopodiché si scelga una directory nella quale compilare i pacchetti. Gli esempi nelle prossime sezioni useranno ~/builds come directory di compilazione.

Ottenere i file dall'AUR

Una volta identificato il pacchetto nell'AUR, per esempio attraverso il campo di ricerca in alto alla home page dell'AUR e cliccando il 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 repositore 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 (ing. 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 repositore alternativo archlinux/aur su GitHub, nel quale ogni pacchetto si trova nel proprio branch. Si consiglia di clonare singoli branch perché il repositore intero è troppo grande e scaricare ogni pacchetto durerebbe troppo tempo. Dunque si può clonare le parti rilevanti nei seguenti modi:
$ 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 (ing. signature) in formato .sig oppure .asc fa parte dei file scaricabili insieme al PKGBUILD. Se dovesse essere il caso, si potrebbe ottenere una delle chiavi pubbliche elencate nella lista. 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
Attenzione: Controllare bene il file 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! Si può chiedere aiuto nella mailing list o nel forum. Ci sono stati casi di codice maligno in pacchetti AUR. [1]

Leggere i contenuti dei file scaricati. Per esempio, l'impaginatore less può essere usato per leggere il PKGBUILD, dando:

$ less PKGBUILD
Suggerimento: Quando si aggiorna un pacchetto, può essere utile vedere che cosa è cambiato.
  • 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/--syncdeps rileva e installa automaticamente tramite pacman tutti i pacchetti dai quali dipende il PKGBUILD prima di compilare quest'ultimo. Se il pacchetto dovesse dipendere da altri pacchetto AUR, questi andrebbero installati a mano in anticipo.
  • -i/--install installa il pacchetto package nel caso possa essere compilato correttamente. Questo completa automaticamente anche il prossimo passo, che altrimenti andrebbe fatto a mano.
  • -r/--rmdeps rimuove 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/--clean ripulisce (ovvero rimuove) i file temporanei prodotti dalla compilazione, che non sono più necessari al termine dell'operazione.
Suggerimento: Usare git clean -dfx per rimuovere tutti i file che non sono parte dell'indice 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-version-architettura.pkg.tar.zst
Nota:
  • Se si modifica la variabile PKGEXT in makepkg.conf, il nome del pacchetto prodotto potrebbe essere leggermente diverso.
  • Queste indicazioni sono solo un breve riassunto del processo di compilazione ed imballaggio. È consigliabile leggere gli articoli makepkg e Arch build system per ottenere altri dettagli.

Installazione di aggiornamenti

Nella stessa directory in cui è situato il PKGBUILD del pacchetto in questione, si può aggiornare i file scaricati in precedenza dando

$ git pull

e seguendo le stesse istruzioni di prima.

Attenzione: L'AUR non è sostenuta ufficialmente, dunque ogni pacchetto installato proveniente da essa è di vostra responsabilità, e non viene gestito da pacman. Nel caso in cui pacchetti nei repositori ufficiali dovessere essere aggiornati, è necessario ricompilare i pacchetti AUR che dipendono da essi.

Account

Questa sezione tratta degli account sul sito dell'AUR.

Sospensione

Quando si modifica un utente come mantenitore di pacchetti, si può selezionare il campo suspended (it. sospeso), che sospende l'utente in questione. Quando un utente viene sospeso, non può:

Inattività

Quando si modifica il proprio account oppure l'account di un altro utente in qualità di mantenitore di pacchetti, il campo inactive (it. inattivo) può essere selezionato. Utenti inattivi hanno la funzione di

  • Mostrare la data nella quale quancuno fu marchiato come inattivo
  • Calcolare il numero di mantenitori attivi

Feedback

Commentare i pacchetti

Il portale web dell'AUR offre agli utenti la possibilità di dare consigli e suggerimenti su come migliorare il PKGBUILD.

Suggerimento: Evitare di caricare modifiche del codice sorgente o del 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.

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. Si può votare per tutti i pacchetti affinché essi vengano incorporati nel repositore ufficiale extra. Il numero di voti è uno dei criteri di selezione, dunque è nell'interesse di ognuno di votare.

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 in un terminale con aur-auto-vote-gitAUR.

Alternativamente, se si ha impostato 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

Marchiare i pacchetti 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ò marchiare 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 mantenitore 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 qui.

Note: I pacchetti VCS non sono considerati obsoleti quando cambia il campo pkgver; non marchiarli perché il mantenitore vi ignorerà dato che non è tenuto ad aggiornare il PKGBUILD solo per inserire il nuovo pkgver.

Debugging il processo di compilazione

Nel caso di problemi, si controllino bene le seguenti cose:

  1. Accertarsi che il proprio sistema sia stato aggiornato prima di compilare qualcosa.
  2. Verificare di avere installato il pacchetto base-devel.
  3. Usare makepkg con l'opzione -s per rilevare e installare tutti i pacchetti da cui dipende il pacchetto che si desidera compilare prima di iniziare il processo.
  4. Provare ad usare la configurazione standard di makepkg.
  5. 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 mantenitore (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 mantenitori 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 mantenitore di pacchetti) li vide e incorporò nel repositore.

Poi si istituì il "repositore 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 mantenitori dell'AUR furono chiamati utenti "fidati" (ing. Trusted User) prima di diventare mantenitori 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.

Repositori Git per l'AUR3

L'archivio AUR su GitHub ha un repositore 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 sono i mantenitori di pacchetti?

Vedi See Arch terminology#Package maintainer (ing. Package Mantainer).

Qual'è la differenza tra l'AUR e il repositore extra?

Il repositore 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 mantenitore, viene incorporato nel repositore extra, dal quale può essere installato con pacman.

Foo nell'AUR è obsoleto; cosa faccio?

Vedi #Marchiare i pacchetti obsoleti.

Nel frattempo, puoi provare da solo ad aggiornare il pacchetto modificando il PKGBUILD sul tuo sistema. A volte non è necessario modificare il processo di compilazione ed imballaggio in modo tale che aggiornare le variabili pkgver o source è sufficiente.

Foo nell'AUR non compila quando eseguo makepkg; cosa faccio?

Probabilmente si tratta di un errore banale, vedi #Debugging il 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 create 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 #Debugging il processo di compilazione.

Come faccio ad inserire un PKGBUILD nel repositore extra?

In genere servono almeno 10 voti per fare incorporare qualcosa nel repositore extra. Tuttavia, spesso basta convincere un mantenitore ad appoggiare il pacchetto.

Raggiungere il numero minimo di voti non è l'unico criterio; ci deve essere un mantenitore di pacchetti disposto a sostenere il pacchetto in questione. I mantenitori non sono obbligati ad incorporare un pacchetto nel repositore 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 dovere compilare tutto a mano nella maniera descritta in questo articolo. Tuttavia questi programmi non sono appoggiati ufficialmente.

Altre informazioni sono reperibili tra le regole per incorporare pacchetti nel repositore 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 mantenitore e sia quindi stato incorporato nel repositore 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.

Nota: Il repositore git di un pacchetto che è stato rimosso in genere rimane accessibile. Vedi AUR submission guidelines#Requests per dettagli.

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?

Vedi anche