>_ Sistemi operativi e Linux

Gestori di pacchetti Linux: apt, dnf e pacman a confronto

Come si installa software su Linux: pacchetti, repository e dipendenze, i comandi equivalenti di apt, dnf e pacman, Flatpak, Snap e le regole di sicurezza.

Su Windows si scarica un installatore da un sito; su Linux, nella maggior parte dei casi, si chiede il programma al gestore di pacchetti. È uno dei punti in cui Linux ha anticipato di anni ciò che oggi chiamiamo «app store»: un unico strumento installa, aggiorna e rimuove tutto il software del sistema, dal kernel al lettore musicale, verificandone la provenienza.

Pacchetti, repository e dipendenze

Un pacchetto è un archivio che contiene i file di un programma, le informazioni su dove copiarli e l'elenco delle dipendenze, cioè delle librerie e degli altri pacchetti necessari. Un repository è un archivio online di pacchetti curato dalla distribuzione, firmato digitalmente: il gestore verifica la firma prima di installare, così un pacchetto alterato lungo la strada viene rifiutato.

Quando installi un programma, il gestore calcola quali dipendenze mancano e le installa insieme. Quando aggiorni, aggiorna tutto il sistema in un colpo, librerie comprese. È il motivo per cui su Linux non esiste un programma che si aggiorna da solo in un angolo dello schermo mentre un altro resta vulnerabile.

Le famiglie principali

  • Debian, Ubuntu, Linux Mint usano pacchetti .deb e lo strumento apt.
  • Fedora, Red Hat Enterprise Linux, AlmaLinux, Rocky Linux usano pacchetti .rpm e lo strumento dnf.
  • Arch Linux e derivate come Manjaro usano pacman.
  • openSUSE usa pacchetti .rpm con lo strumento zypper.

I comandi equivalenti

Operazione apt dnf pacman
aggiornare l'elenco dei pacchetti apt update automatico pacman -Sy
aggiornare il sistema apt upgrade dnf upgrade pacman -Syu
cercare apt search nome dnf search nome pacman -Ss nome
installare apt install nome dnf install nome pacman -S nome
rimuovere apt remove nome dnf remove nome pacman -R nome
informazioni apt show nome dnf info nome pacman -Si nome
quale pacchetto ha questo file dpkg -S /percorso dnf provides /percorso pacman -Qo /percorso

Tutte le operazioni che modificano il sistema richiedono sudo. Con apt, update scarica solo l'elenco aggiornato dei pacchetti disponibili; è upgrade a installare effettivamente le nuove versioni. Dimenticare update porta a installare versioni vecchie o a errori di file non trovati.

Su Arch c'è una regola importante: non eseguire mai pacman -Sy nome per installare un singolo pacchetto senza aggiornare il resto. Il cosiddetto aggiornamento parziale può lasciare librerie incompatibili; la forma corretta è pacman -Syu nome.

Pulizia e pacchetti orfani

Rimuovendo un programma, le sue dipendenze possono restare installate senza più servire a nulla. apt autoremove, dnf autoremove e, su Arch, pacman -Rns $(pacman -Qdtq) le eliminano. Prima di confermare conviene leggere l'elenco: a volte figura un pacchetto che si usa direttamente ma che era stato installato come dipendenza. In quel caso basta marcarlo come installato manualmente, con apt-mark manual nome su Debian e Ubuntu.

Anche la cache dei pacchetti scaricati occupa spazio: apt clean la svuota, paccache su Arch mantiene solo le ultime versioni.

Repository aggiuntivi: con giudizio

A volte un programma non è nei repository ufficiali o vi compare in una versione datata. Le soluzioni sono repository aggiuntivi: i PPA su Ubuntu, COPR su Fedora, l'AUR su Arch, oppure repository gestiti direttamente dal produttore del software. Funzionano, ma ognuno è una fonte di fiducia in più: chi lo gestisce può installare qualsiasi cosa sul tuo sistema a ogni aggiornamento. Regole pratiche:

  1. Aggiungi solo repository di chi conosci, come il produttore del programma.
  2. Tienine pochi e rimuovi quelli che non usi più.
  3. Sull'AUR leggi il file PKGBUILD prima di compilare: è uno script e viene eseguito sulla tua macchina.
  4. Evita di installare file .deb o .rpm scaricati da siti sconosciuti.

Flatpak, Snap e AppImage

Accanto ai pacchetti tradizionali esistono formati che includono il programma e le sue librerie in un unico contenitore, indipendente dalla distribuzione.

  • Flatpak, con il catalogo Flathub, è molto diffuso per le applicazioni desktop e le esegue in un ambiente isolato con permessi configurabili.
  • Snap, sviluppato da Canonical, è integrato in Ubuntu e si usa anche per servizi e strumenti da riga di comando.
  • AppImage è un singolo file eseguibile da scaricare e avviare, senza installazione e senza aggiornamenti automatici.

Il vantaggio è avere versioni recenti su una distribuzione stabile; il prezzo è un maggiore uso di spazio e, a volte, un'integrazione meno curata con il resto del desktop. Una buona divisione dei compiti: sistema e strumenti dal gestore di pacchetti, applicazioni desktop recenti da Flatpak.

Non mescolare le fonti

L'errore che più spesso rompe un sistema Linux è installare lo stesso software da fonti diverse, per esempio una libreria dal repository e una versione più nuova compilata a mano sopra la stessa cartella. Il gestore di pacchetti non sa più cosa c'è sul disco, e il successivo aggiornamento sovrascrive o lascia file incoerenti. Se devi installare qualcosa a mano, usa /usr/local o /opt, che il gestore non tocca.

In sintesi

  • Il gestore di pacchetti installa, aggiorna e rimuove tutto il software verificandone la firma.
  • apt, dnf e pacman fanno le stesse cose con sintassi diverse; su Arch evita gli aggiornamenti parziali.
  • autoremove elimina le dipendenze orfane, ma leggi l'elenco prima di confermare.
  • Ogni repository aggiuntivo è una fonte di fiducia in più: aggiungine pochi e affidabili.
  • Flatpak è comodo per le applicazioni desktop; non mescolare pacchetti e installazioni manuali nelle stesse cartelle.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica e in psicologia, unisce l'analisi tecnica alla comprensione del fattore umano.

Leggi anche