Arch User Repository (Italiano) - ArchWiki

Jump to content

# Arch User Repository (Italiano)

From ArchWiki
Stato della traduzioneQuesto articolo è la versione tradotta di Arch User Repository. Data dell'ultima traduzione: 2024-01-19. Se ci sono cambiamenti nella versione inglese, è possibile dare una mano a sincronizzarne la traduzione.

Articoli correlati

- AUR Cleanup Day
- AUR helpers
- AUR submission guidelines
- Aurweb RPC interface
- Creating packages
- Official repositories
- Package Maintainer guidelines
- Unofficial user repositories
- .SRCINFO

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.

Attenzione I pacchetti AUR sono prodotti dagli utenti. Questi `PKGBUILD` sono del tutto non ufficiali e non sono stati verificati in modo accurato. Qualsiasi utilizzo dei file forniti avviene a proprio rischio.
Nota Se si intende usare il repository AUR, è altamente raccomandato iscriversi alla mailing list di Arch aur-general, che in passato è stata usata per gli avvisi di sicurezza. [1] [2]

## 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.conf` per 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 variabile `MAKEFLAGS`, 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 variabile `CFLAGS`. 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 `PKGBUILD` e gli altri file se necessari, come unità systemd e patch (spesso non il codice reale).
- Verificare che il file `PKGBUILD` o gli altri file di accompagnamento non siano pericolosi o inaffidabili.
- Dare il comando `makepkg` nella 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_file` per 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.

Nota I pacchetti presenti nell'AUR presumono che base-devel sia installato nell'ambiente di compilazione.

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:

        $ 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

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 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

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` risolve 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`/`--install` installa il pacchetto nel caso venga 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. Potrebbe comunque essere necessario reinstallare queste dipendenze la prossima che volta che il pacchetto sarà aggiornato.

Suggerimento Usare `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

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. È altamente consigliato leggere gli articoli makepkg e Arch build system per ulteriori dettagli.

Suggerimento Si può usare `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.

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.

Note

- 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.

Note I pacchetti VCS non sono considerati obsoleti quando cambia il campo `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:

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 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.

Nota Il repository 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?

- https://aur.archlinux.org/packages.gz
- Utilizza `aurpkglist` del pacchetto python3-aurAUR

## Ulteriori risorse

- Interfaccia web dell'AUR
- AUR Mailing List

Categories:

- About Arch (Italiano)
- Package development (Italiano)
- Package management (Italiano)

Arch User Repository (Italiano)
Add topic