Der Snap-befreite Firefox

  DxU   Lesezeit: 6 Minuten  🗪 27 Kommentare

Erfahrungsbericht eines Ubuntu-Users: wie man Firefox von Snap auf ein PPA umstellt.

der snap-befreite firefox

Seit einiger Zeit ist es bei vielen Distributionen und im Speziellen bei Ubuntu ein Reizthema: die alternativen Paketverwaltungssysteme wie Snap und Flatpak.

„Pakete im Griff“ lautet das Thema in der aktuellen Linuxuser. Ein Editorial und einige Artikel befassen sich mit den Vor- und Nachteilen von Snap, Flatpak & Co. 

Für mich persönlich überwiegen als, zumindest bei diesem Thema, leidgeplagter Ubuntu User mit dem dort vertretenen Snap eindeutig die Nachteile:

  • Pakete werden unnötig gross, weil sämtliche benötigte Bibliotheken erneut mitgeliefert werden.

Es gibt seit langer Zeit das Konzept der dynamischen Bibliotheken. Windowsuser kennen die .dll Dateien.

Sinn und Zweck ist hier, dass eben diese Bibliotheken zum einen erst geladen werden, wenn sie gebraucht werden und zum anderen einmal im System verfügbar sind und nicht für jede Applikation erneut mitgeliefert werden. Klassische Paketverwaltungssysteme prüfen bei einer Installation von Anwendungen diese Abhängigkeiten, also ob die benötigte Bibliothek in der richtigen Version, am erwarteten Platz verfügbar ist und installiert sie sonst, in der Regel aus der Paketverwaltung, für alle zentral nach.

Snap, Flatpak und Andere führen das nun ad absurdum und bringen all diese oft schon vorhandenen Bibliotheken erneut mit und blähen die Pakete somit unnötig auf.

  • Immerhin spart sich der Paketbetreuer damit einiges an Arbeit, weil er das snap einmal packt und nicht für jedes Paketverwaltungssystem erneut, so der fromme Wunsch.

Ob dieser denn auch in Erfüllung geht, ist mehr als fraglich, denn zumindest derzeit paketiert er wohl schon mindestens 2 Mal, statt .deb und .rpm jetzt snap und flatpak. Dazu dann noch als standalone Variante zum selbst installieren und als Appimage.

  • Der Anwender muss jetzt mehrere Paketverwaltungssysteme pflegen.

Zu einem

sudo apt update
sudo apt upgrade

kommt jetzt noch ein

sudo snap refresh

und ein

sudo flatpak update

hinzu.

Immerhin können Frontends wie Discover unter KDE das ganz gut abfangen.

Ich persönlich finde, zumindest mit snap (zu flatpak kann ich nicht viel sagen), wird das System damit nicht nur unnötig grösser, sondern auch unübersichtlicher und für Anwender weniger verstehbar.

Z.B. habe ich nicht schlecht gestaunt, als ich nach der Einführung von Snap irgendwann mal den mount Befehl benutzt habe und plötzlich solche Zeilen erhielt (Auszug):

~$ mount
/var/lib/snapd/snaps/onlyoffice-desktopeditors_121.snap on /snap/onlyoffice-desktopeditors/121 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)
/var/lib/snapd/snaps/onlyoffice-desktopeditors_133.snap on /snap/onlyoffice-desktopeditors/133 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)
/var/lib/snapd/snaps/snapd_17029.snap on /snap/snapd/17029 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)
/var/lib/snapd/snaps/snapd_17336.snap on /snap/snapd/17336 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)
/var/lib/snapd/snaps/telegram-desktop_4208.snap on /snap/telegram-desktop/4208 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)
/var/lib/snapd/snaps/telegram-desktop_4256.snap on /snap/telegram-desktop/4256 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)

Ich habe einmal nachgezählt, derzeit sind es hier 35 solcher Einträge. Nein, die Infos will ich nicht, wenn ich mount eingebe. Gut kann man filtern, aber schön ist anders.

Nicht falsch verstehen, wenn mir eine Anwendung alternativ als Snap, Flatpak, Appimage angeboten wird, z.B. in neueren oder unterschiedlichen Versionen zum Testen, ist das ok. Aber wenn, wie am Beispiel von Firefox, Ubuntu eben nur noch das snap anbietet, ist das einfach nur noch ärgerlich.

Linux wäre aber nicht Linux, wenn es nicht doch alternative Wege gäbe.

Im Chat wurde das thematisiert und schnell war eine Lösung zur Hand. Im Falle von Firefox gibts z.B. mindestens ein ppa.

Folgende Lösung hat bei mir prima geklappt:

Zuerst entfernen wir das Snap Paket:

sudo snap remove firefox

Dann fügen wir das Repository hinzu

sudo add-apt-repository ppa:mozillateam/ppa

Nun priorisieren wir die dort angebotene Version, sonst gibts danach wieder nur das snap oder die ESR Version (wobei die aktuell mit v102.x statt v106.x durchaus akzeptabel sein kann)

Wir erstellen die Datei /etc/apt/preferences.d/mozilla-firefox mit folgendem Inhalt:

Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001

Schliesslich noch wie gewohnt die Paketverwaltung aktualisieren und firefox (samt Sprachpaket) installieren.

sudo apt update
sudo apt install firefox firefox-locale-de

snap befreite Grüsse, DxU

Tags

Firefox, Snap, Pakete, PPA, Ubuntu

Stefan
Geschrieben von Stefan am 7. November 2022 um 16:53

Hi DxU, das habe ich schon vor einigen Monaten gemacht. Allerdings klappt irgendetwas nicht. Bei jedem Update des snap-Firefox wird er installiert und ich muß danach manuell "apt update && apt upgrade" machen um den deb-Firefox wieder zu bekommen. Hast Du eine Idee woran das liegen könnte. Ciao, Stefan

DxU
Geschrieben von DxU am 7. November 2022 um 21:02

Hi, wie machst du das update das dann zur Installation des snap führt?

Nutzt du das ppa wie im Text

" ppa:mozillateam/ppa "

Und NICHT das im Wiki von Ubuntuusers.de erwähnte

" ppa:ubuntu-mozilla-security/ppa " ?

Wenn doch nimm letzteres mal raus, deinstalliere FF und geh wie in der Anleitung hier beschrieben vor, dann sollte das gehen. Welche Ubuntu-Version hast du?

Ich kann jetzt nur spekulieren aber zeig doch mal die erwähnte

/etc/apt/preferences.d/mozilla-firefox

sieht die wie oben aus also auch wirklich 3 Zeilen?

Stefan
Geschrieben von Stefan am 9. November 2022 um 05:57

Folgende Konfiguration stefan@htpc:~$ cat /etc/apt/preferences.d/mozillateam
Package: *

Pin: release o=LP-PPA-mozillateam

Pin-Priority: -1

Package: firefox

Pin: release o=LP-PPA-mozillateam

Pin-Priority: 1001

Package: thunderbird

Pin: release o=LP-PPA-mozillateam

Pin-Priority: 1001

stefan@htpc:~$ cat /etc/apt/sources.list.d/mozillateam.list

deb https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy main

deb-src https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy main

IMHO sollte die Pin-Prio ausreichen :-) Ich glaube auch nicht, daß es daran liegt. Der Update des snap-FF passiert nämlich automatisch, ohne irgendwelche manuallen Eingriffe. Und das deutet für mich darauf hin, daß da irgendein Ubuntu-Automatismus am Werk ist, den ich abschalten sollte. Mein Problem: ich kenne keinen solchen Automatismus. Und ich bin mir nicht bewußt einen eingeschaltet zu haben. Aber ausschliessen kann ich das auch nicht. Wenn das vor Jahren (sic!) passiert ist, dann weiß ich es leider nicht mehr.

Pi
Geschrieben von Pi am 9. November 2022 um 11:13

Es fehlt wahrscheinlich um die Snap Installation zu verhindern folgendes.

nano /etc/apt/preferences.d/nosnap.pref

Package: snapd Pin: release a=* Pin-Priority: -10

Quelle dazu: https://axebase.net/blog/2020/06/16/ubuntu-snap-verhindern/ Bei LP-PPA-mozillateam könnte Pin-Priority 600 ausreichen.

Stefan
Geschrieben von Stefan am 9. November 2022 um 15:42

Ich denke ich habe den Grund gefunden: es war (jetzt nicht mehr!) unattended-upgrades installiert. Es ist natürlich blöd, dass es FF updated und dabei anscheinend nicht dasselbe macht wie apt.

Stefan
Geschrieben von Stefan am 10. November 2022 um 16:59

Es geht aber doch gar nicht darum snap komplett zu verhindern (das will ich auch gar nicht). Sondern darum das deb-FF-Paket mit einer höheren Prio zu installieren als das snap-FF-Paket. Und das ist bei mir auch so eingerichtet (nach obiger Methode). Aber irgendetwas ignoriert diese Methode. Und das ist bei mir vermutlich unattended-upgrades.

Wolfram
Geschrieben von Wolfram am 7. November 2022 um 17:12

Ich könnte noch einen anderen Weg für -in meinem Fall- firefox und thunderbird anbieten. Ich habe das erste mal auf den beiden Seiten mir die firefox und thunderbird als tar.bz- Archive heruntergeladen und unter /opt/firefox bzw. /opt/thunderbird die Archive extrahiert. Anschließen jeweils einen Link gelegt in /usr/bin ln -sf /opt/firefox /firefox und ln -sf /opt/thunderbird/thunderbird. Schon kann ich die Anwendungen wo überall aufrufen. Falls ein Upgrade gemacht werden soll, rufe ich firefox und thunderbird auf und lasse sie nach einem Upgrade suchen. Mir wird bei Fund das Upgrade angeboten. Dieses lasse ich dann ausführen. Anschließend habe ich wieder ein aktualisiertes Produkt. Diese Methode finde ich um Längen besser als snap oder flatpak.

DxU
Geschrieben von DxU am 7. November 2022 um 21:04

ja kann man mal so machen, Windows User machen das idR ja auch so. Das ist das Gegenteil von Paketverwaltungssystemen, jede Anwendung einzeln updaten ist noch schlimmer als mehrere Paketverwaltungssysteme zu managen

MaSchle
Geschrieben von MaSchle am 7. November 2022 um 19:47

Ich benutze debian.

snap flatpack appimage sind lösungen für ein problem das es nicht gibt. mir reichen apt für das system und der pip-installer für mein python jupyterlab vollkommen aus.

DxU
Geschrieben von DxU am 7. November 2022 um 21:06

ein überflüssiger Kommentar, sorry hilft wirkllich niemandem weiter sowas

Tobias
Geschrieben von Tobias am 8. November 2022 um 07:49

Einer der Hauptgründe für snap und flatpack ist, das die Anwendung in einer Sandbox laufen. Das denke ich ist gerade bei Browsern sinnvoll.

DxU
Geschrieben von DxU am 8. November 2022 um 14:00

Danke Tobias für den Hinweis, das ist tatsächlich ein Aspekt den ich schonmal auf dem Schirm hatte, aber hier im Artikel leider unterschlagen habe. Tatsächlich ein Argument für diese Alternativen. Wohl auch der Grund, warum ich neulich , allerdings wohl erst nach einem FF Update, Downloads nicht mehr ausserhalb $HOME speichern konnte. Kann man aber sicher irgendwo in der snap Konfiguration ändern. (ja jut oder unter $HOME downloaden und später ans Wusnchziel verschieben, wird nur problematisch bei großen Downloads und kleinem $HOME)

ubu
Geschrieben von ubu am 8. November 2022 um 09:42

Für die Updates empfehle ich topgrade https://github.com/topgrade-rs/topgrade. Damit werden sowohl die nativen (DEB /RPM) als auch flatpack, snap und auch pip, cargo Installationen upgedated.

DxU
Geschrieben von DxU am 8. November 2022 um 14:01

ja hatte ich auch noch auf meiner todo:

https://gnulinux.ch/alles-in-einem-rutsch-updaten-mit-topgrade

BuffaloBill
Geschrieben von BuffaloBill am 8. November 2022 um 10:42

Ich sehe die Vorteile dort, wo Anwendungen nicht in den Paketquellen zur Verfügung stehen. Synology beispielsweise stellt seine Pakete nur als DEB zur Verfügung. Ich bräuchte aber ein RPM.

Klar, ich könnte Alien benutzen, die Dateien manuell an den richtigen Ort schieben (und damit ebenfalls die Paketverwaltung aushebeln sic), oder irgendein Repository von jemanden aus der Community einbinden, der das schon gemacht hat (Risikofaktor unbekannt)

ODER ich nehm das Flatpak. Das wird zwar ebenfalls von der Community gepflegt, aber wenigst kriege ich da nur ein Paket, kein ganzes Repository, und dieses Paket läuft auch noch in einem Container. Die Version aus Flatpak wird ausserdem ziemlich gut gepflegt (Updates werden zeitnahe nachgereicht)

Klar ich könnte auch noch keine Synology kaufen, aber ich hab sie nun mal, und solange sie läuft wird sie nicht ersetzt (QNAP ist nicht besser btw)

kamome
Geschrieben von kamome am 8. November 2022 um 12:22

Dann wäre doch die „Enkelin“ Linux Mint eine Option – oder gleich die „Mutter“ Debian …

ubu
Geschrieben von ubu am 8. November 2022 um 17:59

/!\ Wichtig /!\ Deinstallieren vom Thunderbird Snap LÖSCHT das Profil, unbedingt vorher sichern.

DxU
Geschrieben von DxU am 11. November 2022 um 19:59

die Aussage ist nicht haltbar.

  1. legt Thunderbird dein Profil in $HOME/.thunderbird ab. Da sollte egal welches Paketformat eine Deinstallation nix anfassen
  2. Thunderbird wird zumindest unter Ubuntu soweit ich weiss immer noch als deb aus den normalen Repos installiert. Es gibt auch snap und flatpak Pakete, aber wozu? Zumal das im Moment die gleichen Verisonen sind (zumidnest 3 stellen hinter Punkt und Komma)

Bitte nicht solche Aussagen tätigen, wenn User dadurch unnötig verwirrt werden. Danke

Frank Tillmann
Geschrieben von Frank Tillmann am 17. Dezember 2022 um 03:06

Nein, der Snap-Thunderbird hat sein eigenes Verzeichnis, ebenso der Snap-Firefox.

Beide ignorieren auch bereits bestehende Verzeichnisse aus nativen Installationen.

Es ist also deine Aussage, die nicht haltbar ist.

DxU
Geschrieben von DxU am 2. Januar 2023 um 19:11

Hallo Frank und Ubu (als Auslöser des Kommentars)

danke für die Hinweise, tatsächlich haben wir da alle ein wenig Recht und ein wenig Unrecht.

ich bin mal in mich gegangen und habe das mal genauer geprüft. (aber letztlich auch nicht in allen denkbaren Szenarien und Facetten)

Mit folgendem Ergebnis.

Tatsächlich legt sowohl Thunderbird als auch Firefox, bei nicht vorhandenem entsprechendem alten Profilen seine default oder auch neue Profile unter $HOME/snap/"APP" an. und löscht wie von euch richtig bemerkt die auch gnadenlos weg bei Deinstallation der Anwendungen. Finde ich ehrlich gesagt total ungeil

Aber, zum einen ging es hier im Artikel eben nicht um Thunderbird und zum zweiten wird bei einer Standardinstallation in (k)ubuntu Thunderbird eben noch als deb Paket und nicht als snap installiert. Letzteres kann aber nachinstalliert werden, wenn man das denn ausprobieren will (z.B. um neuere Version zu bekommen)

Firefox prüft immerhin ob es ein $HOME/.mozilla/firefox gibt und verwendet das dann auch. Sollte also bei einem releaseupgrade aus einer noch nicht snap Version, also schon vorhandenem $HOME samt seinen Inhalten kein Problem darstellen.

Oder man kopiert eben die Arbeitsordner aus einer alten Installation ins $HOME der neuen Installation rein, bevor man FF und Thunderbird erstmals startet.

Ob das künftig so bleibt und ob man sich darauf weiter verlassen sollte, ist natürlich fraglich. Aber dank regelmäßiger Backups sollte das ja kein unlösbares Problem sein.

Beste Grüße DxU

jonius
Geschrieben von jonius am 13. November 2022 um 11:46

Mir fehlt im Artikel der Aspekt Confinement. Gegenüber mobilen Plattformen wie Ubuntu Touch, Android oder iOS, fehlt es dem klassischen Linux Desktop an einer Kapselung von Anwendungen. Ohne das bedroht eine Sicherheitslücke in einem Programm automatisch die kompletten Nutzerdaten aller Programme. Hier setzen snap/flat an.

Mixel
Geschrieben von Mixel am 17. Dezember 2022 um 21:49

Sehr schön, danke sehr. Hat ohne weiteres funktioniert. Vielleicht noch da Kommando zum Anlegen der Datei:

sudo nano /etc/apt/preferences.d/mozilla-firefox (manch einer mag vergessen, dass dazu root-Rechte benötigt werden)

Viele Grüße aus dem Wendland! Mixel

DxU
Geschrieben von DxU am 2. Januar 2023 um 17:38

Hallo Mixel, Danke für deine Nachricht

Ja da hast Du recht, hab ich nur nicht erwähnt, weil der User idR recht schnell merkt, dass er ausserhalb $HOME sowieso keine Schreibrechte hat. Mit welchem Editor er das macht ist letztlich auch Geschmackssache. Eine Variante wäre auch echo ' Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001 '   | sudo tee /etc/apt/preferences.d/mozilla-firefox erkältete Neujahrsgrüße zurück aus Berlin, DxU

DxU
Geschrieben von DxU am 16. Januar 2023 um 14:30

Habe eben interessantes Verhalten bei im Artikel beschriebenen Prozess und xubuntu 220.4 erlebt.

sudo snap remove firefox

sudo add-apt-repository ppa:mozillateam/ppa

echo ' Package: *

Pin: release o=LP-PPA-mozillateam

Pin-Priority: 1001 ' | sudo tee /etc/apt/preferences.d/mozilla-firefox

sudo apt update

bis hierher alles ok. Jetzt habe ich aber mal zusätzlich, weil das System sowieso upgrade brauchte ein

sudo apt full-upgrade

eingefügt. Und da bekomme ich eine eigenartige Fehlermeldung

Die folgenden Pakete werden durch eine ÄLTERE VERSION ERSETZT (Downgrade): firefox firefox-locale-de firefox-locale-en
.....

Holen:11 https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy/main amd64 firefox-locale-de amd64 109.0+build2-0ubuntu0.22.04.1~mt1 [625 kB]
Holen:12 https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy/main amd64 firefox amd64 109.0+build2-0ubuntu0.22.04.1~mt1 [65,2 MB]

Jetzt stellen sich die 2 Fragen.

  1. Warum installiert er jetzt (schon) Firefox?
  2. Warum redet er von einem downgrade? Die vorher installierte Snap verison war eine 108.x, die jetzt erwartete und dann auch erhaltene aus dem ppa ist 109.x
Andreas
Geschrieben von Andreas am 10. Juni 2023 um 09:23

einfach nur: Danke

Johannes
Geschrieben von Johannes am 23. Februar 2024 um 22:29

Hallo,

wie bleiben Lesezeichen, Einstellungen, ... erhalten?

Ich hab z.B. in den beiden Verzeichnissen ~/.mozilla/firefox/ und ~/snap/firefox/common/.mozilla/firefox/ die gleichen (bis auf's Datum) Inhalte (in der ersten Ebene, ein "diff -r" zeigt, dass es darunter sehr wohl Unterschiede gibt)

drwx------ 6 xyz xyz 4,0K Dez 21 2019 . drwx------ 6 xyz xyz 4,0K Jän 8 2023 .. drwx------ 2 xyz xyz 4,0K Dez 21 2019 1mfxggma.default drwx------ 21 xyz xyz 4,0K Jän 8 2023 59p0gsaz.default-release drwx------ 3 xyz xyz 4,0K Mai 15 2023 'Crash Reports' -rw-rw-r-- 1 xyz xyz 62 Dez 21 2019 installs.ini drwx------ 2 xyz xyz 4,0K Dez 21 2019 'Pending Pings' -rw-rw-r-- 1 xyz xyz 259 Dez 21 2019 profiles.ini

Reicht es, das alles von ~/snap/firefox/common/.mozilla/firefox/ auf ~/.mozilla/firefox/ zu kopieren, bevor das snap-firefox removed wird, und beim apt-update/install werden die (kopierten) Sachen in ~/.mozilla/firefox/ nicht überschrieben?

Johannes
Geschrieben von Johannes am 24. Februar 2024 um 19:12

(war vorhin schlecht formatiert)

drwx------ 2 xyz xyz 4,0K Dez 21 2019 1mfxggma.default

drwx------ 21 xyz xyz 4,0K Jän 8 2023 59p0gsaz.default-release

drwx------ 3 xyz xyz 4,0K Mai 15 2023 'Crash Reports'

-rw-rw-r-- 1 xyz xyz 62 Dez 21 2019 installs.ini

drwx------ 2 xyz xyz 4,0K Dez 21 2019 'Pending Pings'

-rw-rw-r-- 1 xyz xyz 259 Dez 21 2019 profiles.ini