In Ubuntu distro’s zit in toenemende mate snap ingebouwd als pakketbeheerder. Dat is naast, maar potentieel ook in plaats van, het vertrouwde beheer via APT en DEB-pakketten. Daar is nogal wat discussie over, omdat snap niet helemaal open-source is. Canonical pakt op die manier controle over gebruikersgegevens. Speciaal bij Firefox kan dat als onplezierig ervaren worden.
Wat doet snap?

De snapd daemon verbindt de gebruiker onontkoombaar en exclusief met de servers van Canonical waar de Snap Store is gehuisvest. En die is niet open-source. Canonical geeft ook geen inzicht in wat er precies gebeurt met jouw gebruikersdata. Linux Mint laat daarom standaard snapd weg bij installatie. Wie snapd op die distro toch wil gebruiken, moet dat handmatig toevoegen.
Snap heeft uiteraard voordelen. Een DEB-pakket controleert bij installatie en bijwerken of noodzakelijke andere pakketten en afhankelijkheden al geïnstalleerd en up-to-date zijn, vult aan wat ontbreekt, of meldt netjes wat er blijft ontbreken, waarna de installatie dus mislukt. Per distro zijn er verschillen tussen bibliotheken of pakketten. Voor ontwikkelaars is het altijd een klus om voor elke distro-versie specifiek de scripts in het DEB-pakket bij te werken waarmee die taken worden uitgevoerd.
Snap installeert elke toepassing in een eigen ‘container’, met alle noodzakelijke andere onderdelen en afhankelijkheden ineen. Voor ontwikkelaars is dat eenvoudiger werken, want ze kunnen gewoon al het benodigde in één pakket uploaden. Bovendien wordt de veiligheid gediend met dit ‘sandboxen‘ van toepassingen. Voor gebruikers is het installeren van snap-toepassingen op zich supersimpel.
Firefox zonder snap

Vanaf 2022 installeert Ubuntu Firefox standaard als snap. Aanvankelijk zorgde dat voor problemen, zoals bv. de KeePassXC-plugin die niet meer werkte of themakleuren die niet werden toegepast. Dat is inmiddels wel opgelost. Maar goed, je wilt toch graag helemaal open-source. Oemoemenoe?
Er zijn twee oplossingen voor wie niet met de snap-versie van Firefox wil werken.
1. Installeer handmatig het Mozilla-build pakket van Firefox
Eigenlijk heel simpel: pakket downloaden en uitpakken naar de directory /opt, een symlink maken en draaien maar. Mozilla legt het precies uit. Zorg wel eerst dat je de snap-versie van Firefox helemaal verwijderd hebt! Dat doe je in een terminal met twee simpele opdrachten.
snap list ## toont alle geïnstalleerde snap-pakketten sudo snap remove firefox ## verwijdert de Firefox-snap
En verwijder zo nodig ook de Firefox temp-map:
rm -rf ~/Downloads.firefox.tmp
Installeer daarna het gedownloade pakket. Na deze manier van installeren zorgt Firefox zelf automatisch voor updates, als je dat hebt aangezet bij de instellingen.
2. Schakel over naar de eigen Firefox-repository van Mozilla
Dat is iets meer werk, maar hiermee is Firefox netjes geïntegreerd in het normale APT/DEB-pakketbeheersysteem. Mozilla legt ook dat accuraat uit. Deze installatie doe je in de terminal met de volgende stappen.
1. Maak een map voor de APT-pakketbronsleutel:
sudo install -d -m 0755 /etc/apt/keyrings
2. Importeer de APT-pakketbronsleutel:
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
3. Voeg de Mozilla-pakketbron toe aan de pakketbronlijst:
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
4. Configureer nu APT zodat pakketten van de Mozilla-pakketbron voorrang krijgen. Let op! Type de volgende opdrachten regel voor regel over, want anders mis je de ‘>’ prompt aan het begin van de regels 2-4 en dan werkt de opdracht niet. Let ook op hoofdletters en kleine letters!
echo ' Package: * Pin: origin packages.mozilla.org Pin-Priority: 1000 ' | sudo tee /etc/apt/preferences.d/mozilla
Als je het goed gedaan hebt geeft de terminal deze output:
Package: * Pin: origin packages.mozilla.org Pin-Priority: 1000
5. Werk de pakketbronlijst bij:
sudo apt update
6. Installeer Firefox vanuit de Mozilla-pakketbron:
sudo apt install firefox
…met desgewenst extra taalpakketten:
sudo apt install firefox-l10n-en-gb firefox-l10n-nl
Dat is het. Voortaan wordt Firefox gewoon meegenomen in de normale update-routines van APT.
Helemaal zonder snapd
Alle Ubuntu distro’s, waaronder mijn eigen Kubuntu, installeren standaard snapd. Dus worden ook Firefox en Thunderbird automatisch als snaps geïnstalleerd. Voor email. adresboek, agenda, taken e.d. gebruik ik liever een echte PIM-applicatie, zoals Evolution. Wil je helemaal zonder snapd verder, dan moet je dat zelf regelen. Maar het verwijderen is niet moeilijk.
In een terminal verwijder je eerst eventueel geïnstalleerde apps en toebehoren, bv. Thunderbird, daarna de kernbestanden bare en core22 en als laatste snapd. Daarna kun je via APT de snap daemon zelf verwijderen, plus afhankelijke pakketten. Dat wordt dan bv. de volgende reeks opdrachten.
snap list sudo snap remove thunderbird cups gnome-42-2204 gtk-common-themes sudo snap remove bare core22 sudo snap remove snapd sudo apt update sudo apt purge snapd sudo apt autoremove /y
Controleer tenslotte of er in mappen als ~/, ~/.config of ~/.local/share, nog bestanden of mappen van snapd zijn achtergebleven en verwijder die zo nodig.