Cos'è AUR in Arch Linux e dovresti usarlo?
Pubblicato: 2023-06-23AUR è uno dei gioielli nella corona di Arch Linux, fornendo migliaia di pacchetti software aggiuntivi. Ma questo repository guidato dall'utente è sicuro da usare o dovresti evitarlo?
Cos'è l'AUR?
I pericoli dell'utilizzo dell'AUR
Sicurezza AUR: controlla i dettagli del pacchetto e la reputazione
Controlla il contenuto del PKGBUILD e degli altri file
Puoi aiutare altri utenti AUR
Cos'è l'AUR?
AUR (Arch User Repository) è un repository di software guidato dalla comunità che fornisce oltre 85.000 pacchetti software agli utenti di Arch Linux. A differenza di altri repository Arch come i repository core, extra e multilib, AUR non ospita pacchetti pronti per l'installazione. In effetti, non ospita affatto file binari o software in pacchetti.
AUR ospita i file di build dei pacchetti, chiamati PKGBUILD. Questi sono script di shell che vengono eseguiti dallo strumento makepkg
di Arch. Quando makepkg
viene eseguito, cerca un file chiamato "PKGBUILD". Se ne trova uno, lo apre e segue le istruzioni al suo interno per creare un archivio di pacchetti software sul tuo computer. Se hai familiarità con la compilazione da riga di comando, un file PKGBUILD e makepkg
lavorano insieme in modo simile a MAKEFILE e all'utility make
.
Le istruzioni PKGBUILD scaricano i file del codice sorgente e altri file necessari per creare l'archivio del pacchetto. Lo strumento pacman
viene chiamato automaticamente per installare il software dall'archivio dei pacchetti.
A rischio di introdurre un po' di confusione, alcuni pacchetti AUR forniscono binari precompilati. Ma quei file binari non sono ospitati in AUR, sono archiviati altrove su Internet. La voce AUR per quei pacchetti contiene solo un file PKGBUILD che scarica il binario precompilato sul tuo computer.
L'AUR consente a chiunque di creare un PKGBUILD per un software che vorrebbe rendere disponibile per altri utenti Arch. Questi possono essere pacchetti open o closed source o anche software commerciale. I pacchetti AUR che ottengono voti sufficienti dagli utenti possono essere promossi a un normale repository Arch chiamato repository della comunità.
Il problema con l'AUR diventa evidente quando lo riduci alle basi. È una raccolta di script di utenti casuali su Internet. E vorrebbero che li eseguissi sul tuo computer.
Per mitigare i rischi, gli script caricati vengono esaminati da volontari qualificati e rispettati, noti come utenti fidati. Gli utenti fidati ispezionano e testano i PKGBUILDS e rimuovono eventuali errori pericolosi o intenzioni dannose.
CORRELATO: Come aggiornare Arch Linux
I pericoli dell'utilizzo dell'AUR
È un evento molto raro, ma a volte le cose sfuggono alla rete, nonostante la diligenza degli utenti fidati. Nel 2015, uno script Valve Software Steam ha cancellato la tua home directory se in precedenza avevi spostato la directory Steam in una nuova posizione.
Più sinistro è stato l'incidente del 2005, quando un pacchetto AUR orfano è stato rilevato da un nuovo manutentore che ha deliberatamente aggiunto codice dannoso al file PKGBUILD. Questi esempi sono vecchi e rari, ma le stesse cose potrebbero ripetersi.
Naturalmente, se sei sufficientemente esperto, puoi rivedere tu stesso il contenuto del file PKGBUILD. Questa trasparenza è uno dei punti di forza di AUR, ma richiede conoscenze di scripting sufficienti per trarne vantaggio. E questo copre solo il file PKGBUILD stesso. Se inserisce una massa di codice sorgente dell'applicazione, in teoria dovrebbe essere controllato anche quello.
Altri pericoli nell'uso di AUR sono basati sulla distribuzione. Non tutte le distribuzioni basate su Arch sono sufficientemente simili ad Arch perché AUR funzioni perfettamente. L'AUR presuppone che si stia installando su Arch Linux autentico e su una versione completamente aggiornata e aggiornata. Manjaro, ad esempio, non supporta ufficialmente AUR anche se è basato su Arch.
Ma, dato che la tua distribuzione supporta AUR, cosa puoi fare per assicurarti di usarlo nel modo più sicuro possibile, che tu capisca o meno il codice sorgente e gli script di shell?
Sicurezza AUR: controlla i dettagli del pacchetto e la reputazione
Anche senza revisioni del codice, ci sono passaggi che puoi eseguire per aiutarti a decidere se puoi fidarti di un pacchetto AUR.
Trova il tuo pacchetto su AUR
C'è una pagina nell'AUR per ogni pacchetto. La pagina web del pacchetto descrive il pacchetto, quali dipendenze ha, quali pacchetti dipendono da esso e altre informazioni utili. Inizia la tua indagine andando su AUR e cercando il tuo pacco.
Qual è la sua reputazione?
I pacchetti possono essere votati dagli utenti e c'è anche un punteggio di popolarità assegnato a ciascun pacchetto. Più voti e maggiore è la popolarità, meglio è. Significa che il pacchetto è ben noto e ampiamente utilizzato. In altre parole, è un pacchetto affidabile.
La reputazione del pacchetto è una buona indicazione della sua affidabilità. Più persone lo usano e lo votano, più ti senti a tuo agio nell'usarlo.
Controlla le date delle attività
Nella sezione "Dettagli pacchetto" vedrai i suoi voti, il punteggio di popolarità e due date. Uno è quando i pacchetti sono stati introdotti per la prima volta in AUR e il secondo è quando il pacchetto è stato aggiornato l'ultima volta.
La data di "Ultimo aggiornamento" ti dirà se il pacchetto viene mantenuto attivamente. I pacchetti che sono rimasti inattivi per lungo tempo devono essere trattati con cautela.
L'URL a monte è una posizione valida?
Controlla anche l'"URL upstream" e verifica che indirizzi a una pagina Web o a un repository di codice validi per il pacchetto o il progetto. In caso contrario, c'è qualcosa che non va.
Leggi i commenti degli utenti
Ci sono commenti degli utenti in fondo a ogni pagina AUR. Questi possono estendersi su molte pagine. Guarda cosa dicono gli altri utenti sul pacchetto e che tipo di domande fanno. Vedi anche quali soluzioni vengono offerte ai problemi che vengono sollevati. Ci sono commenti recenti? Questo pacchetto ha ancora una base utenti attiva?
Registrati e Partecipa
Se ti registri su AUR e crei un account gratuito potrai lasciare commenti e fare domande. Inoltre, utilizza altre risorse come forum e subreddit per chiedere informazioni sul pacchetto.
Anche se non capisci gli script di shell, ci sono ancora un paio di cose che puoi controllare.
Controlla il contenuto del PKGBUILD e degli altri file
Un modo comune per accedere ad AUR è con una riga di comando "AUR helper" come yay
, ma puoi anche utilizzare AUR in modo pratico e manuale.
I buoni aiutanti AUR ti danno la possibilità di ispezionare il file PKGBUILD, interrompendo l'installazione se non vuoi procedere. Nel processo manuale, cerchi il pacchetto su AUR e scarichi il file PKGBUILD e lo ispezioni prima di usarlo. Se sei felice di procedere dopo averlo esaminato, esegui makepkg
manualmente.
È una buona idea installare almeno un pacchetto manualmente, in modo da conoscere i meccanismi di ciò che l'helper AUR sta facendo in background. Useremo l'aiuto yay AUR come esempio.
Il pacchetto è stato presentato per la prima volta nel 2016 ed è stato aggiornato l'ultima volta a maggio 2023. Al momento in cui scriviamo, si tratta di un aggiornamento molto recente. Notevole è anche il mittente originale, l'attuale manutentore e l'ultima persona che ha impacchettato il software, sono tutti la stessa persona. Questa continuità è un buon segno.
Fare clic sul collegamento URL "Git Clone URL" nella sezione "Dettagli pacchetto" per copiarlo negli appunti.
In una finestra di terminale, digita "git clone", uno spazio, quindi premi Maiusc+Ctrl+V per incollare l'URL nella riga di comando. Premere "Invio" per avviare il download.
clone di git https://aur.archlinux.org/yay.git
Al termine del download, passare alla nuova directory "yay".
cd yay
Vediamo quali file abbiamo.
ls
C'è un singolo file, il file PKGBUILD. Spesso ci sono uno o due file helper aggiuntivi. Guarda anche quelli. Useremo less
per leggere il nostro singolo file.
meno PKGBUILD
Quali URL utilizza il file PKGBUILD?
Un file PKGBUILD ben formato che segue le convenzioni creerà variabili per contenere gli URL che utilizza. Questo ci fornisce un elenco ordinato nella parte superiore del file degli URL a cui PKGBUILD farà riferimento. In questo caso, ce n'è solo uno.
Possiamo vedere che punta a una pagina GitHub per il progetto yay
.
La pagina GitHub è di proprietà di un utente con lo stesso nome del manutentore elencato nella pagina AUR per questo pacchetto. Queste sono due buone indicazioni che si tratta di un pacchetto sicuro.
Ma andremo avanti e guarderemo un po' più a fondo.
Cerca i comandi di download
Usa la funzione less
search per cercare nel file gli usi di wget
o curl
. Entrambi questi strumenti possono essere utilizzati per recuperare file remoti. Un PKGBUILD ben educato non dovrebbe avere bisogno di tale attività.
Se trovi delle occorrenze, trattale come una bandiera rossa e non installare il pacchetto fino a quando non sei certo che sia benigno. Qual è l'URL a cui fanno riferimento i comandi wget
o curl
? Sembrano legittimi e correlati al pacchetto?
Se puoi ottenere conferma da una fonte attendibile che il PKGBUILD è affidabile, ed è solo scritto in un modo che non segue le convenzioni, puoi comunque scegliere di installarlo.
Cerca rm, mv e altri comandi pericolosi
Allo stesso modo, non c'è bisogno che un file PKGBUILD contenga i comandi rm
o mv
, né dovrebbero avere bisogno di fare riferimento a qualcosa nella directory “/dev”. Se PKGBUILD chiama direttamente pacman
o menziona systemctl
, systemd
o qualsiasi altro componente di sistema vitale come grub
, tratta il file PKGBUILD come pericoloso e non eseguirlo.
Puoi eseguire i passaggi che abbiamo usato finora anche se non puoi leggere gli script della shell. Se conosci alcuni script di shell, puoi rivedere il codice effettivo nel PKGBUILD.
Fai attenzione al codice offuscato
Le persone che scrivono codice dannoso spesso cercano di nasconderne le intenzioni offuscandolo. Usano una sintassi minimalista, concisa e impenetrabile, quindi è difficile decifrare ciò che stanno cercando di fare. Se vedi linee che usano il reindirizzamento o chiamano sed
o awk
, trattale come sospette.
Copiare quelle righe e rilasciarle in un parser online come describeshell.com le decomprimerà in modo da poter vedere cosa fanno effettivamente. Se ti trovi di fronte a un pasticcio fitto di parentesi, punti e virgola e e commerciale, vale la pena utilizzare un parser online per ricontrollare di aver interpretato correttamente ciò che la riga sta cercando di fare. Ma in generale, il codice difficile da leggere è un segnale di avvertimento.
La tua /casa dovrebbe essere il tuo castello
Le compilazioni e le build di PKGBUILD avvengono in un ambiente chroot
.
Si tratta di mini file system isolati che consentono agli sviluppatori di elaborare in modalità sandbox limitando il loro accesso al resto del file system del computer e riducendo il loro accesso ad altri comandi di sistema.
Se PKGBUILD sta manipolando direttamente la tua home directory, consideralo come un flag di avviso. Assicurati di comprendere appieno cosa sta facendo prima di decidere di eseguirlo.
Puoi aiutare altri utenti AUR
Con pacchetti estremamente popolari, è molto probabile che tu sia al sicuro. A causa dell'elevato numero di utenti, i problemi vengono individuati più rapidamente e segnalati più rapidamente. Puoi fare la tua parte segnalando eventuali problemi riscontrati e votando a favore di pacchetti validi per migliorare la loro reputazione.
Se scopri che c'è un problema con un pacchetto che ti fa desiderare di non installarlo, puoi trovarti in difficoltà perché avevi bisogno di quel pacchetto. Un modo per andare avanti è chiedere sui forum suggerimenti di altri pacchetti che possono soddisfare quella particolare esigenza.
Linux di solito ha molti modi per scuoiare un dato gatto.
CORRELATO: Come installare Arch Linux da una GUI