Come ho rimosso Snap da Ubuntu 24.04 (e perché dovresti farlo anche tu)

Una guida completa per liberare il tuo sistema dal demone snapd, reinstallare Firefox e Thunderbird come pacchetti nativi, sistemare AppArmor — e risolvere i problemi che inevitabilmente salteranno fuori.


Premessa: perché ho fatto questa scelta

Uso Linux da circa dieci anni, ma solo di recente l’ho reso il mio sistema operativo principale. Ubuntu 24.04 Noble Numbat è un’ottima distribuzione, ma c’è una cosa che proprio non mi va giù: Snap.

Non fraintendetemi, l’idea alla base di Snap non è stupida — applicazioni containerizzate, aggiornamenti automatici, isolamento. Sulla carta funziona. Nella pratica? Firefox che ci mette 15 secondi ad aprirsi e che non riesce a comunicare con KeePassXC (cosa per altro ben in chiaro sul sito di keepassxc) per l’autocompletamento delle password. Applicazioni che vivono in bolle isolate e non possono parlare tra loro.

Il problema fondamentale è filosofico: Linux è sempre stato tessuto connettivo, software che collabora, che si parla, che si integra. Snap trasforma tutto in isole separate. E io preferisco un arcipelago collegato da ponti a un oceano di monadi isolate.

Quindi ho deciso: via Snap, dentro i pacchetti .deb nativi. E già che c’ero, ho fatto pulizia completa — incluso AppArmor, che dopo anni di installazioni e disinstallazioni di pacchetti snap aveva accumulato profili orfani e configurazioni obsolete.

Spoiler: reinstallare AppArmor mi ha rotto Bottles (e tutte le app Flatpak). Ma l’ho risolto, e vi racconto anche quello.
AppArmor è un capolavoro di sicurezza e, a mio avviso, va reinstallato assolutamente.


Fase 1: Rimozione di Snap

1.1 Verifica cosa c’è installato

Prima di demolire, vediamo cosa abbiamo:

snap list

Su un’installazione tipica di Ubuntu 24.04 troverai almeno:

  • bare (runtime base)
  • core22 (librerie di sistema)
  • firefox
  • firmware-updater (o fwupd)
  • gnome-* (vari componenti GNOME)
  • snap-store
  • snapd-desktop-integration
  • thunderbird (se installato)

1.2 Rimuovi i pacchetti snap in ordine

L’ordine conta! Devi rimuovere prima le applicazioni, poi i runtime, poi i core:

# Prima le applicazioni
sudo snap remove --purge firefox
sudo snap remove --purge thunderbird
sudo snap remove --purge snap-store
sudo snap remove --purge firmware-updater

# Poi i componenti GNOME (se presenti)
sudo snap remove --purge gnome-42-2204
sudo snap remove --purge gtk-common-themes
sudo snap remove --purge snapd-desktop-integration

# Poi i runtime base
sudo snap remove --purge bare
sudo snap remove --purge core22

# Infine il demone stesso
sudo apt purge snapd

1.3 Pulizia delle directory residue

Snap lascia sempre qualcosa dietro. Puliamo:

# Directory di sistema
sudo rm -rf /snap
sudo rm -rf /var/snap
sudo rm -rf /var/lib/snapd
sudo rm -rf /var/cache/snapd

# Directory utente
rm -rf ~/snap

1.4 Blocca la reinstallazione automatica di Snap

Ubuntu è furbo e proverà a reinstallare snapd appena installi certi pacchetti. Blocchiamolo in due modi:

# Metodo 1: hold sul pacchetto
sudo apt-mark hold snapd

# Metodo 2: priorità APT negativa (cintura e bretelle)
echo -e "Package: snapd\nPin: release *\nPin-Priority: -10" | sudo tee /etc/apt/preferences.d/no-snap

Fase 2: Rimozione e reinstallazione di AppArmor

Qui viene il bello. Dopo anni di installazioni snap, AppArmor aveva accumulato profili orfani e configurazioni che potevano creare conflitti. La soluzione più pulita è fare tabula rasa.

2.1 Rimuovi AppArmor

sudo apt purge apparmor apparmor-utils

2.2 Reinstalla AppArmor pulito

sudo apt install apparmor apparmor-utils

2.3 Verifica lo stato

sudo aa-status

Dovresti vedere i profili di sistema caricati correttamente. Con la reinstallazione, AppArmor creerà i profili corretti per i binari nativi di Firefox e Thunderbird (non quelli per le versioni snap).


Fase 3: Installazione di Firefox e Thunderbird nativi

Per Ubuntu 24.04 Noble, la soluzione più affidabile è usare il PPA Mozillateam, che fornisce sia Firefox che Thunderbird come pacchetti .deb nativi.

3.1 Aggiungi il PPA Mozillateam

sudo add-apt-repository ppa:mozillateam/ppa
sudo apt update

3.2 Configura le priorità APT

Questo è fondamentale. Ubuntu ha dei pacchetti “transizionali” che fingono di essere Firefox/Thunderbird ma in realtà installano lo snap. Dobbiamo bloccarli e dare priorità al PPA:

# Blocca Firefox da Ubuntu, preferisci Mozillateam
echo -e "Package: firefox*\nPin: release o=Ubuntu*\nPin-Priority: -1" | sudo tee /etc/apt/preferences.d/firefox-no-snap

echo -e "Package: firefox*\nPin: release o=LP-PPA-mozillateam\nPin-Priority: 1001" | sudo tee /etc/apt/preferences.d/mozilla-firefox

# Blocca Thunderbird da Ubuntu, preferisci Mozillateam  
echo -e "Package: thunderbird*\nPin: release o=Ubuntu*\nPin-Priority: -1" | sudo tee /etc/apt/preferences.d/mozilla

Cosa fanno questi file:

  • Priorità negativa (-1) ai pacchetti Firefox/Thunderbird dai repository Ubuntu (che sono i transitional verso snap)
  • Priorità massima (1001) ai pacchetti dal PPA Mozillateam

3.3 Installa Firefox e Thunderbird

sudo apt update
sudo apt install firefox thunderbird

3.4 Verifica l’installazione

which firefox
# Deve restituire: /usr/bin/firefox

which thunderbird
# Deve restituire: /usr/bin/thunderbird

# Verifica che siano binari nativi, non symlink a snap
file $(which firefox)
file $(which thunderbird)
# Devono mostrare: ELF 64-bit LSB pie executable

Fase 4: Il giorno dopo — “Perché Bottles non si apre più?!”

Ecco la parte che le guide online non vi raccontano mai: le conseguenze inaspettate.

Il giorno dopo aver completato tutta la procedura, apro Bottles per lanciare Splashtop (che uso per lavoro). Niente. Non si apre. Riprovo. Niente.

Apro il terminale e provo a lanciarlo manualmente:

flatpak run com.usebottles.bottles

E mi becco questo errore:

bwrap: Creating new namespace failed: Permission denied
error: ldconfig failed, exit status 256

Cosa diavolo è successo?

occhio che qui si scende sul tecnico, ma giuro che, se avete i miei problemi, è entusiasmante.

Il colpevole è proprio la reinstallazione di AppArmor. Quando lo reinstalli, Ubuntu 24.04 ripristina le policy di default — che sono molto più restrittive di quelle delle versioni precedenti.

In particolare, Ubuntu 24.04 blocca di default i unprivileged user namespaces. Tradotto in italiano: non permette alle applicazioni normali (non root) di creare ambienti isolati.

E indovinate cosa usa Flatpak per isolare le applicazioni? Esatto: bubblewrap, che ha bisogno proprio di quei namespace.

Quindi: reinstalli AppArmor → tornano le policy restrittive → bubblewrap non può creare namespace → Flatpak non funziona → Bottles non si apre → tu bestemmi.

La soluzione

Il fix è “semplice”, una volta che sai cosa sta succedendo:

# Crea il file di configurazione sysctl
sudo tee /etc/sysctl.d/99-userns.conf > /dev/null << 'EOF'
kernel.unprivileged_userns_clone=1
kernel.apparmor_restrict_unprivileged_userns=0
EOF

# Applica le modifiche
sudo sysctl --system

Questi due parametri kernel dicono al sistema:

  • kernel.unprivileged_userns_clone=1 — permetti agli utenti normali di creare user namespaces
  • kernel.apparmor_restrict_unprivileged_userns=0 — disabilita la restrizione specifica di AppArmor su questa funzionalità

Dopo aver applicato queste modifiche, Bottles (e qualsiasi altra app Flatpak) torna a funzionare immediatamente. Nessun riavvio richiesto.

Nota importante

Questo fix è globale e persistente — vale per tutte le applicazioni Flatpak e sopravvive ai riavvii. L’unico caso in cui dovrai ripeterlo è se:

  • Reinstalli AppArmor
  • Fai un reset delle impostazioni di sistema
  • Qualche aggiornamento sovrascrive il file

Quindi salvatevi queste due righe da qualche parte. Vi serviranno.


Fase 5: Verifica finale

Facciamo un check completo per assicurarci che tutto sia a posto:

# Verifica che snapd sia bloccato
apt-mark showhold | grep snapd
# Deve restituire: snapd

# Verifica che non ci siano directory snap residue
ls -la /snap 2>/dev/null || echo "OK: /snap non esiste"
ls -la ~/snap 2>/dev/null || echo "OK: ~/snap non esiste"

# Verifica Firefox e Thunderbird
file $(which firefox)
file $(which thunderbird)
# Devono mostrare: ELF 64-bit LSB pie executable (non symlink a snap)

# Verifica AppArmor
sudo aa-status | head -10

# Verifica che i parametri kernel siano attivi
cat /etc/sysctl.d/99-userns.conf
sysctl kernel.unprivileged_userns_clone
sysctl kernel.apparmor_restrict_unprivileged_userns
# Devono restituire rispettivamente 1 e 0

# Verifica che Flatpak funzioni
flatpak run com.usebottles.bottles --help 2>/dev/null && echo "OK: Bottles funziona"

Conclusioni

Dopo questa procedura avrai:

  • Zero componenti Snap sul sistema (e bloccato per sempre)
  • Firefox e Thunderbird nativi dal PPA Mozillateam, che si aprono istantaneamente
  • AppArmor pulito e funzionante
  • Flatpak funzionante grazie ai parametri kernel corretti
  • Piena integrazione tra le applicazioni (KeePassXC funziona con Firefox, i file picker funzionano, tutto comunica)

Il sistema è più veloce, più pulito, e soprattutto funziona come Linux dovrebbe funzionare: software che collabora invece di vivere in bolle isolate.

È più lavoro rispetto ad accettare passivamente le scelte di Canonical? Sì. Ma Linux è sempre stato così: libertà di scegliere, a patto di essere disposti a sporcarsi le mani. E francamente, preferisco sporcarmi le mani una volta che aspettare 15 secondi ogni volta che apro il browser.

E se qualcosa si rompe lungo la strada — come Bottles che smette di funzionare dopo aver toccato AppArmor — almeno ora sapete come sistemarlo.


Articolo scritto su Ubuntu 24.04 Noble Numbat, con Firefox nativo che si apre in 3 secondi, e Bottles che finalmente funziona di nuovo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna in alto