Vedi anche Reperire software su Linux: repository e compilazione .
Vedi anche Reperire software su Linux: Snap, Flatpak ed AppImage .
Vedi anche Reperire software su Linux: Distrobox e macchine virtuali .
Uno dei più radicati luoghi comuni nel mondo GNU/Linux è sicuramente quello che addita la celeberrima distribuzione Arch Linux come complessa e adatta solo per smanettoni; ma la realtà è a mio avviso differente.
Seppur maggiormente incentrata sull'uso del terminale (perlomeno in fase di installazione e configurazione iniziale), la distro di origine canadese integra diversi strumenti per facilitare la vita degli utenti. AUR è uno di questi.
Abbiamo già parlato di compilazione, l'atto di trasformare il codice sorgente in liguaggio binario, procedura non sempre immediata, ma essenziale per procurarsi software non pacchettizzato altrove.
Ricordo ancora i miei primi esperimenti su Debian per installare una versione customizzata di i3: si doveva compilare, e puntalmente qualcosa andava storto.
Perché vada a buon fine, questa procedura richiede infatti una serie di imprescindibili requisiti.
Sono indispensabili almeno: un compilatore, le dipendenze di compilazione e quelle per il funzionamento vero e proprio; poi bisogna incrociare le dita.
Durante il processo, già molto impegnativo per l'hardware, possono insorgere problemi vari, solitamente dovuti alla mancanza di specifiche librerie, ma non sempre di facile risoluzione.
La Arch User Repository (AUR) è uno strumento che rende la compilazione alla portata di chiunque, potenza di calcolo permettendo.
Si tratta di un archivio che racchiude una serie di script automatizzati per compilare ed installare software non presente nei repository ufficiali di Arch.
All'interno del repo sono presenti anche dei pacchetti precompilati, che riducono di molto i tempi di installazione, contraddistinti dal suffisso -bin.
Gli script, denominati PKGBUILD, non sono curati direttamente dal team di sviluppo di Arch, ma vengono gestiti interamente dalla community. Il risultato è un repository aggiuntivo molto corposo, ma anche potenzialmente pericoloso.
Nel corso degli anni non sono stati molti i casi noti di malware su AUR, ma le repository ufficiali restano tendenzialmente più sicure, in quanto possono beneficiare di controlli aggiutivi effettuati dal team della distribuzione.
Ogni PKGBUILD, comunque, è liberamente ispezionabile e andrebbe analizzato attentamente prima di procedere alla sua esecuzione.
L'unico vero prerequisito per l'utilizzo di AUR su Arch e derivate è la presenza nel sistema dei pacchetti base-devel e git: $ sudo pacman -S base-devel git È probabile che, persino senza rendervene conto, questi siano già stati installati precedentemente.
Ora poniamo di voler procurarci downgrade, un grande classico su Arch, ma assente sui canali ufficiali, utile pr ripristinare vecchie versioni di un pacchetto dopo un aggiornamento problematico.
La ricerca per nome può essere fatta dal sito ufficiale di AUR. Dopo aver selezionato la corrispondenza esatta filtrando i risultati della ricerca, ci ritroveremo nella pagina del pacchetto (in questo caso qui).
Il primo elemento della lista soprastante è utile per cercare di capire quello che avverrà nel nostro sistema una volta avviato lo script.
Dopo un'iniziale sezione dichiarativa, si passa ad una o più funzioni operative. Le funzioni in Bash (il tipo di "linguaggio" utilizzato per gli script di AUR), sono facilmente riconoscibili per loro tipica struttura:
nome_funzione() { contenuto }
Anche senza particolari competenze di programmazione, l'analisi preventiva dei PKGBUILD (specie i più semplici, che restano quelli più consigliati da eseguire) aiuta molto a farsi un'idea delle eventuali modifiche apportate al sistema.
Il Git clone URL è l'indirizzo dal quale clonare la repository del pacchetto AUR prescelto. Proseguendo con l'esempio di downgrade: $ git clone https://aur.archlinux.org/downgrade.git E poi entriamo nella cartella appena scaricata: $ cd downgrade Ora completiamo il tutto con: $ makepkg -si
Partirà il processo di compilazione del codice sorgente, seguito dalla richiesta di password amministrativa per proseguire con l'installazione.
I messaggi (sempre in qualche modo affascinanti) che compariranno a schermo durante questa fase non sono altro che l'output dei passi elencati nel PKGBUILD. A seconda della complessità del pacchetto richiesto e della potenza di calcolo a disposizione, la compilazione richiederà un lasso di tempo variabile per essere portata a termine. Una volta superato questo scoglio, tuttavia, le fasi successive saranno molto rapide.
La cartella del pacchetto può essere eliminata alla fine del processo, in quanto non ci tornerà più utile in futuro. Con questa modalità infatti, gli aggiornamenti vanno gestiti manualmente, compilando di volta in volta le nuove versioni dei singoli programmi.
La vera essenza di AUR si manifesta probabilmente con gli AUR helper.
Un helper è un gestore di pacchetti aggiuntivo, spesso simile e compatibile con quello ufficiale di Arch, pacman, ma che interagisce con AUR.
Dopo un lungo periodo di utilizzo di Paru, recentemente sono passato a yay. Entrambi sono helper molto conosciuti, ma quest'ultimo si contraddistingue forse per un miglior funzionamento pratico (opinione personale).
yay è esso stesso un pacchetto AUR, e in assenza di ulteriori helper nel sistema la sua installazione dovrà essere forzatamente manuale:
$ git clone https://aur.archlinux.org/yay-bin.git
$ cd yay-bin
$ makepkg -si
Al primo utilizzo è raccomandato eseguire almeno un paio di comandi:
$ yay -Y --gendb Sono configurazioni che riguardano principalmente i file di sviluppo, indicate sul sito ufficiale del progetto.
$ yay -Y --devel --save
Da parte mia consiglio anche:
$ yay -Y --answerupgrade=None --save I comandi soprastanti sono facoltativi, tuttavia possono essere utili per automatizzare alcune procedure.
$ yay -Y --cleanmenu=false --save
$ yay -Y --diffmenu=false --save
Tutte le modifiche sono documentate nel manuale di yay, ed equivalgono ad intervenire a mano sul file ~/.config/yay/config.json .
yay può agire come un sostituto di pacman, oppure in modo complementare. Personalmente preferisco relegarlo alla gestione degli AUR.
Di seguito alcuni dei comandi principali.
$ yay nome_pacchetto Ricerca ed installazione di un AUR. In caso di risultati multipli bisognerà selezionare il pacchetto corretto tra una lista numerata. Come per la procedura manuale, la password di root sarà necessaria solo a compilazione avvenuta.
A volte vi sarà chiesto se eliminare o meno le makedeps, utili solo in caso di ulteriori eventuali compilazioni.
$ yay -Sua Update di tutti i pacchetti AUR installati. yay provvederà ad aggiornare automaticamente anche sé stesso.
$ yay -Ps Visualizzazione di utili (e simpatiche) statistiche di sistema.
Hai notato qualche errore?
Pensi che sia stato poco chiaro, magari dando per scontato un termine o un concetto che non riesci a capire?
Vuoi proporre un approccio differente all'argomento?
Contattami per feedback e chiarimenti, l'open source è anche questo!