Klassisch
Die klassische Softwareinstallation wird – bei Debian basierenden Linuxsystemen – über das integrierte dpkg durchgeführt. Dabei werden die nötigen Softwarepakete in das Standardverzeichnis von Linux verteilt. Alle Programme können gemeinsame Bibliotheken nutzen. Die Software wird als .deb Datei – zumeist im Repository der Distribution – bereitgestellt und durch Installationsprogramme wie apt-get ausgeführt. Neuere Versionen einer Software bekommt man zumeist nur über das Update des Repositories oder durch Upgrade der Linuxversion.
Möchte der User eine neuere Version einer Software installieren, als das Repository seiner Distribution bereitstellt, kann es zu Fehlfunktionen oder Ausfällen der Software kommen. Im schlimmsten Fall kann er seine Betriebssysteminstallation zerstören. Ein Rücksprung auf die ältere, funktionierende Version ist oft nicht möglich.
Ein weiterer Nachteil für den Entwickler ist, dass er seine Software für verschiedene Distributionen passen paketieren muss. Das ist gerade bei kleinen Entwickler Teams ein großer Aufwand.
Auch eine LTS (Long Term Support) Version einer Distribution stellt den Software Update nur für eine kürzere Zeit zur Verfügung, danach gibt es nur noch Sicherheitsupdates. Das heißt, die Software wird nicht mehr auf neuere Versionen aktualisiert, sie veraltet mit der Zeit.
Aus oben genannten Nachteilen (Schnelligkeit, Universalität, Stabilität, Unabhängigkeit, Sicherheit, Aktualität) hat man für Linux mehrere neue Paketformate entwickelt.
Snap
Ein Vorreiter war wieder einmal die Firma Canonical mit seinem Ubuntu. Diese hat das Paketformat snap entwickelt. Die Softwarepakete werden von Canonical auf dem eigens dafür entstandenen Downloadportal snapcraft bereitgestellt. Dadurch behält Canonical eine gewisse Kontrolle über die bereitgestellten snap Pakete.
Bei snap Paketen bringt die Installation alle benötigten Bestandteile wie z.B. Bibliotheken mit. Es werden keine Bibliotheken aus dem Grundsystem benutzt oder gar überschieben oder aktualisiert. Damit kann man auch die neueste Software benutzen, ohne gleich das ganze System upgraden zu müssen.
Da die Software alle Bestandteile in einem eigenen Verzeichnis installiert, benötigt sie keine Zugriffe und somit auch keine Rechte im Grundsystem. Sie läuft vielmehr in einer Sandbox. Die Lese- Schreibzugriffe der Software kann man einstellen. Das macht snap gerade für Software interessant, welche viel Internetzugriff benötigt z.B. Browser, Download Manager, Chat Programme, etc.
Da Canonical die Kontrolle über die bereitgestellten Pakete hat, macht die Firma einen gewissen Qualitätscheck. Alle snap Pakete sind mit der Einstellung strict stark gegen das Grundsystem abgeschottet.
Flatpak
Flatpak ähnelt snap weitgehend, ist jedoch nicht von einer Firma, sondern einer freien Entwicklergemeinde entwickelt. Flatpak Pakete können überall zum Download angeboten werden. Auch hier gibt es mit FLATHUB eine zentrale Downloadseite, welche jedoch nicht so stark reglementiert wird, wie snapcraft.
Während bei snap Paketen die Einstellung strict per default vorgegeben ist, kann ein Entwickler bei flatpak frei seine Sicherheitseinstellungen wählen.
Appimage
Der Desktop Client von Nextcloud wird z.B. als AppImage bereitgestellt. Bei appimages sind ebenfalls alle nötigen Bestandteile und Bibliotheken einer Software zusammen. Diese sind in einer einzelnen Datei mit der Endung .Appimage gekappselt. Appimages besitzen die gleichen Rechte, wie der User, der sie ausführt. Sie laufen nicht in einer Sandbox.
Die Handhabung ist denkbar einfach. Der User läd das Appimage herunter, legt es im Homeverzeichnis ab und macht es ausführbar. Dann kann er es starten und die Software läuft. Man kann auch hier mehrere Versionen der selben Software nebeneinander nutzen. Bei nichtgefallen löscht man die .appimage Datei und die Software ist entfernt.
Vorteile von snap, flatpak und appimage
Da die Software in einer Sandbox läuft, kann der Zugriff auf das Gesamtsystem auf nötige Zugriffe beschränkt werden. Der User kann mehrere Versionen der selben Software parallel auf dem System installiert haben und jederzeit auf die ältere Version zurückspringen.
Mit den neuen Paketformaten kann man sein Grundsystem schlank halten und bis zum Supportende nutzen, ohne auf aktuelle Software verzichten zu müssen.
Snap, flatpak und appimage steht in allen Distributionen zur Verfügung. Somit kann das selbe Paket ebenso unter Debian, Ubuntu, SuSe, Red Hat, Fedora, etc. installiert werden. Das ist ein Vorteil für die Entwickler, aber auch für die Anwender.
Nachteile von snap, flatpak und appimage
Da diese Paketformate alle Abhängigkeiten mitbringen, ist der Festplattenverbrauch größer als bei einer klassischen Installation. Das kann aber bei den heute vorhandenen Festplattengrößen vernachlässigt werden.
Meine Strategie bei der Softwareinstallation
Ich nutze nur LTS Distributionen, da ich nicht alle 1-2 Jahre neu installieren möchte. Doch spätestens nach 2-3 Jahren gibt es nur noch Sicherheitsupdates, die enthaltene Software bleibt dann für weitere 2-3 Jahre auf dem alten Versionsstand.
Oft schon habe ich mich geärgert, dass ich meinen gesamten Rechner neu installieren musste, nur weil ich das neuere Office oder ein neueres Gimp haben wollte.
Erste Wahl – Snap Pakete
Nicht nur meine Browser und das Mailprogramm installiere ich als snap Paket, sondern auch das Office und die Mal- und Zeichenprogramme. Also alle Programme, die Internetzugang benötigen oder in der Entwicklung schnelle Zyklen haben.
Das restriktive Verhalten von Canonical gegenüber den Entwicklern sehe ich an dieser Stelle durchaus positiv. Ähnlich wie bei Smartphone Apps für Android und iOS ist eine gewisse Kontrolle durchaus ein Sicherheitszugewinn.
Zweite Wahl – Flatpak Pakete
Die Flatpak Pakete installiere ich nur von FLATHUB oder der Entwicklerseite und nicht von irgendwelchen Download Kanälen, denen ich nicht vertraue. Bei einer sehr großzügigen Einstellung der Sicherheit der Sandbox durch den Entwickler, haben diese Programme mehr Freiheiten als snap Pakete jedoch nicht mehr, als klassisch installierte Software. Es beibt immer noch der Vorteil einer schnellen Aktualisierung der Software.
Dritte Wahl – appimage
Ohne klassische Installation kann der User ein appimage in sein Homeverzeichnis legen und von dort aus starten. Die Software hat jedoch die gleichen Zugriffsrechte wie der User, wird nicht in einer Sandbox ausgeführt.
Fazit
Wie schon zwischen Windows, Mac und Linux Anhängern gibt es auch zwischen snap und flathub Anhängern verschiedene Grabenkämpfe. Aus diesen halte ich mich jedoch weitestgehend heraus. Ich sehe die Vorteile die ich als User habe. Aus diesem Grunde nutze ich auch snap und flatpak parallel auf einem System.
Während ich in der Vergangeheit in die source.list alle möglichen Quellen einbinden musste, um Software von verschiedensten Quellen installieren zu können, kann ich heute mein System schlank halten und trotzdem die neueste Software nutzen.
Schon mehrfach hatte ich mir in der Vergangenheit mein ganzen System auf diese Art zerschossen. Das passiert mit den neuen Paketformaten nicht mehr.