Die Paketverwaltung unter Linux besitzt prinzipielle Sicherheitsvorteile gegenüber dem Softwarewildwuchs > la Windows.
Auf der anderen Seite klagen Anwender über mangelnde Flexibilität und Aktualität, Entwickler über den enormen Aufwand, ihr Programm für jede Linux-Distribution und jede Distributionsversion pflegen zu müssen.
Als optionaler Ausweg etablieren sich zunehmend Containerformate, die alle Abhängigkeiten und Bibliotheken mitbringen und damit unabhängig von Linux-Distribution und Version funktionieren.
Das eindeutig unkomplizierteste Format ist Appimage, das zwar gleiche Motive wie Snap– und Flatpak-Container verfolgt, aber signifikante Vorzüge besitzt.
Siehe auch: Snap- und Flatpak – Das bringen die neuen Paket-Formate
Das Appimage-Format
IDG
Appimages gehen auf das 2004 geschaffene Format „klik“ von Simon Peter zurück, der bis heute Hauptentwickler dieses Paketformats ist. Über das Folgeprojekt „Portable Linux Apps“ erhielt die Weiterentwicklung 2013 die Bezeichnung „Appimage“.
Es gilt das Prinzip „1 app = 1 file“. Eine Appimage-Containerdatei enthält neben dem eigentlichen Programm alle notwendigen Komponenten und Bibliotheken. Daher sollte nach dem Download eines Appimages die enthaltene Software auf jeder Distribution funktionieren.
Eine Installation ist nicht erforderlich, und im Unterschied zu Snaps oder Flatpaks benötigen Appimages auch keine Basisumgebung. Appimages laufen praktisch voraussetzungslos (siehe nachfolgenden Punkt).
Weitere Vorteile gegenüber Snaps und Flatpaks sind deutlich kleinere Containergrößen und für Entwickler eine vergleichsweise einfache Paketierung über das „AppImageKit“.
Innenansicht eines gestarteten Appimages: Das im „tmp“-Ordner gemountete Image offenbart seine interne Verzeichnisstruktur und das „AppRun“-Start-Script.
IDG
Das Format Appimage hat allerdings im Gegensatz zu Snaps und Flatpaks kein Sandbox-Sicherheitskonzept. Eine Appimage-Software läuft daher mit den Rechten des Benutzers und hat dessen Zugriffsrechte auf das Dateisystem. Daher sollte man Appimages – vergleichbar mit Windows-Software – nur aus vertrauenswürdigen Quellen laden.
Da Appimages aber im Benutzerkontext ohne root-Recht und sudo funktionieren, bleibt die Gefährdung theoretisch.
Wer ganz sichergehen will, kann Appimages via Firejail nutzen (siehe Kasten). Appimages sind Laufwerksabbilder, wobei als Dateisystem das komprimierte Squashfs zum Einsatz kommt. Beim Start durch Doppelklick entpackt ein Wrapper-Script alle Komponenten in ein Mount-Verzeichnis unter „/tmp/.mount_[…]“ und lädt dort das eigentliche Programm.
Der Ladevorgang ist komplexer als bei einer nativ installierten Software, was sich aber auf modernen Rechnern nicht spürbar auswirkt. Beim Beenden einer Appimage-Software wird das Abbild automatisch wieder ausgehängt und das temporäre Verzeichnis wieder gelöscht.
Da grundsätzlich jedes Appimage seinen eigenen Einhängepunkt erhält, können verschiedene Versionen eines Programms konfliktfrei nebeneinander genutzt werden.
tatt Installation nur ein Klick: Die einzige erforderliche Maßnahme ist das Setzen des Execute- Bits („Ausführbar“).
IDG
Typischerweise haben Appimage-Container die Endung „.AppImage“. Obwohl technisch nicht zwingend erforderlich, weil Appimages auch ohne diese Extension funktionieren, ist es ratsam, diese Endung unverändert zu belassen. Insbesondere der nützliche Integrationsdienst „Appimaged“ (siehe unten) verlässt sich auf diese Endung.
Snap-Apps umgehen: So installieren Sie Firefox/Chromium normal
Technische Voraussetzungen
Die meisten Appimages werden ausschließlich in 64 Bit angeboten und benötigen daher auch ein 64-Bit-System. Auf einem 32-Bit-Linux verweigern die Pakete ohne jede Meldung den Dienst.
Nach dem Download muss die Containerdatei mit
chmod +x [Name].AppImage
im Terminal oder im Dateimanager über „Eigenschaften –› Berechtigungen –› Ausführbar“ (auch „Eigenschaften –› Zugriffsrechte“ oder sinngemäß) das Executable-Attribut erhalten.
Dafür genügen Benutzerrechte. Eine implizite Voraussetzung fällt oft unter den Tisch: Auf Dateisystemen, die keine erweiterten Rechte anbieten – also FAT, FAT32, exFAT – lässt sich dieses Executable-Bit nicht setzen. Appimages müssen daher auf ein Linux-Dateisystem oder auf NTFS geladen werden.
Wie an späterer Stelle erklärt, ist für häufige Nutzung von Appimages das Home (und dort das Verzeichnis „~/Applications“) der ideale Ort. Da sich Appimages aber auch als portable Softwaresammlung auf externen Datenträgern anbieten, ist die Unverträglichkeit mit allen FAT-Dateisystemen einen Hinweis wert.
Appimage setzen ferner ein funktionierendes Fuse 2.x (Filesystem in Userspace) voraus. Auf aktuellen Ubuntu-Versionen 22.04 und 23.10 ist aber Fuse 3 installiert. Falls der Start von Appimages kommentarlos scheitert, installieren Sie mit
sudo apt install libfuse2
das kleine Paket „libfuse2“ nach.
Sind alle Voraussetzungen erfüllt, sollte jedes Appimages nach Doppelklick starten.
Seriöse Quellen für Appimages
„AppImagePool“ ist ein Softwarecenter für Appimages. Auswahl und Kategorisierung sind nicht besser als bei Onlinequellen, aber das (hier nicht aktive) Register „Installed“ kann nützlich sein.
IDG
Den einen verbindlichen Store für Appimages gibt es nicht. Bei der Suche nach einer bestimmten Software wie etwa Libre Office, Blender oder VLC ist es am besten, nach einem Appimage zu googeln – also etwa nach „libreoffice appimage“ oder „vlc appimage“.
So bietet etwa die Document Foundation standardmäßig die aktuelle Version von Libre Office auch als Appimage. Nichtsdestotrotz gibt es auch zentrale Anlaufstellen mit einem großen Angebot an Appimages:
- Die auf https://appimage.github.io/ verlinkten Appimages sind durch Kompatibilitätstests des Appimage-Entwicklers Simon Peters gewissermaßen offiziell geadelt. Die Seite bietet eine grobe Kategorisierung, unter https://appimage.github.io/apps eine schlichte alphabetische Sortierung. Diese Liste ist eine gute Quelle, wenn Sie gezielt eine bestimmte Software suchen.
- Die übersichtlichste Sammlung, die sich auch zum Stöbern eignet, bietet www.appimagehub.com/browse mit inhaltlicher Kategorisierung und Unterkategorien sowie Sortierung nach Aktualität.
- Die Website https://www.linux-apps.com kann im Listenfeld rechts oben („Packagetype“) gezielt nach „AppImage“ filtern. Dieser Filter wirkt sich dann automatisch auf die inhaltlichen Kategorien im linken Navigationsbereich aus. Wenn Sie dann etwa auf die Kategorie „Internet“ klicken, erscheinen ausschließlich Appimage-Angebote. Die Liste beginnt chronologisch („Latest“) mit den aktuellsten Appimages, kann aber auch anders sortiert werden („Rating“).
- Ein kleines lokales Downloadcenter für Appimages ist das Tool „AppImagePool“ – seinerseits ein Appimage. Das Werkzeug bietet im „Browse“-Register ein Suchfeld und eine Kategorienübersicht. Unter „Installed“ sind die bereits vorhandenen Appimages anzutreffen, sofern sie unter „~/Applications“ versammelt wurden. Hier gibt es auch ein Löschsymbol, um Appimages wieder zu entfernen.
Bei der Durchsicht aller dieser Hauptquellen werden Sie feststellen, dass sehr viel Software im Appimage-Format vorliegt, zum Teil aber in alten Versionen. Das Motiv, eine möglichst aktuelle Version einer Software zu erhalten, können Appimages daher nur in Ausnahmefällen erfüllen.
Andererseits werden aber gerade frühe Betaversionen („Nightly“) prominenter Programme gerne als Appimages verpackt, um frühes Testen ohne Eingriff in das System zu ermöglichen. Beispiele für Software, die solchen Vorabservice per Appimage standardmäßig anbieten, sind etwa Firefox, Thunderbird oder auch Libreoffice.
Systemintegration mit Appimaged
Dienst Appimaged bei der Arbeit: Sobald ein Appimage in einem überwachten Ordner landet, erscheint eine Systemmeldung.
IDG
Appimaged („AppImage Daemon“) ist ein Systemintegrationstool, das von Simon Peter selbst stammt. Es ist nach unserer Erfahrung dem älteren Integrationswerkzeug „AppImageLauncher“ eindeutig überlegen. Strikt abzuraten ist jedenfalls von der parallelen Nutzung der beiden Tools, die zu schwer korrigierbaren Konflikten führt.
Appimaged kann von https://github.com/probonopd/go-appimage/releases unter „Assets“ heruntergeladen werden. Das kleine Tool umfasst nur etwa fünf MB und kostet auch im Betrieb kaum Ressourcen.
Der empfohlene Speicherort für Appimaged ist dort, wo auch die sonstigen Appimages liegen – vorzugsweise unter „~/Applications“. Einmal ausführbar gemacht und per Doppelklick gestartet, läuft es permanent als Hintergrunddienst. Die Systemmeldung „not running…“ beim allerersten Start, die sich auf Livesysteme bezieht, können Sie ignorieren. Wenn Sie den Dienst per Systemctl steuern wollen, müssen Sie explizit den Schalter „–user“ mitgeben (Beispiel):
systemctl --user stop appimaged
Die einfachste Methode zur Deinstallation des Dienstes ist wie bei allen Appimages schlichtes Löschen der Datei „appimaged- [Version].AppImage“.
Der Dienst Appimaged sorgt für Systemintegration: Die Appimages landen im Hauptmenü, sind bequem zu filtern und zeigen zusätzliche Kontextmenüs.
IDG
Der Dienst ist darauf angewiesen, dass die Softwarecontainer ihre ursprüngliche Extension „.AppImage“ beibehalten. Technisch wäre das für den Start der Software nicht notwendig, für den Integrationshelfer ist es aber zwingend.
Appimaged leistet ausgezeichnete Unterstützung, wenn man sich an die vorgesehenen und überwachten Ordner hält (u. a. „/opt“, „~/Applications“, „~/.local/bin“, „~/Downloads“). Wir empfehlen den Standardordner „~/Applications“ im Home-Verzeichnis. Alle dorthin kopieren Appimages werden automatisch in das Startmenü aufgenommen und inhaltlich in die passende Kategorie integriert.
Außerdem werden sie in die Programmliste aufgenommen und wie installierte Programme den passenden Dateitypen zugeordnet. Der Dienst kommentiert die Integration jedes neuen Containers mit einer Systemmeldung.
Im Hauptmenü (nicht auf Dateiebene im Dateimanager) zeigen die Appimages dann diverse zusätzliche Kontextmenüoptionen. So lässt sich mit „Create Portable Home“ ein Konfigurationsverzeichnis anlegen, falls ein Appimage nicht vom Systemdatenträger, sondern portabel auf USB laufen soll.
„Extract to AppDir“ ist ein Analysewerkzeug, welches das Dateisystem des Appimages als Unterordner „squashfs-root“ entpackt. Das Ergebnis ist dabei dasselbe, was beim normalen Start unter „/tmp/.mount“ entpackt wird – nur hier eben ohne Start der Software.
Der Dienst erkennt außerdem, wenn Firejail installiert ist, und zeigt dann die Option „Run in Firejail“ und weitere Firejail-Startvarianten. Die im Kasten „Firejail“ genannten Startmethoden werden daher beim Einsatz von Appimaged weitgehend überflüssig.
Tipp: Beachten Sie im Startmenü-Textfeld die Filteroption „appimage“. Wenn Sie dies eingeben, zeigt das Startmenü nur noch die Programme dieses Formats.
Einstellungen und Updates
Wenig Erfolg mit der Updatefunktion: Die meisten Appimages bieten die Option erst gar nicht, bei anderen erscheint diese Fehlermeldung.
IDG
Einstellungen und Anpassungen sind bei jeder anspruchsvolleren Software erwünscht. Das gilt für Libre Office genauso wie für ein elaboriertes Spiel. Solche Einstellungen sind für Appimages uneingeschränkt möglich, sie werden aber wie bei ordentlich installierter Software im Benutzerverzeichnis gespeichert (unter „~/.config/[ Programm]“).
Somit gelten sie nur auf dem Gerät, wo Sie die Einstellungen konkret vorgenommen haben. Wenn Sie das Appimage auf einen USB-Stick kopieren und an einem anderen Rechner starten, gelten dort wieder die Standardeinstellungen.
Wer portable Einstellungen auf USB-Medien verwenden möchte, kann die schon genannte Option „Create Portable Home“ von Appimaged nutzen. Dies ermöglicht dieselben Einstellungen auf verschiedenen Rechnern, bietet aber keine weitergehende Systemintegration.
Appimage-Updates?
Ja – Appimages sind im Prinzip updatefähig und ersetzen dabei nicht einfach die komplette Datei, sondern beschränken den Downloadumfang mit einer Differenzanalyse auf das Notwendige.
Wer das Tool Appimaged verwendet, wird bei den integrierten Programmen im Startmenü zum Teil auch die Option „Update“ vorfinden. Nur zum Teil deswegen, weil die Updatefunktion vom Entwickler eingebaut sein muss, und dies ist bei der Mehrzahl der Appimages bislang nicht der Fall.
Falls die Option enthalten ist und angezeigt wird, kann sie aber nur gestartet werden, wenn das zusätzliche Tool „AppImageUpdate“ vorliegt – seinerseits ein Appimage.
Und dann? Erhalten wir regelmäßig eine Fehlermeldung, dass das Appimage nicht signiert ist!
Status quo? Appimage-Updates, falls überhaupt eingebaut, bleiben Theorie, auf die man sich nicht verlassen kann. Wir empfehlen Software, die in diesem Punkt nicht sensibel ist. Browser, Mail und sonstige Internetprogramme sind keine idealen Appimage-Kandidaten, Office-Programme, Bildbearbeitung, Systemtools oder Spiele hingegen sehr wohl.
Fazit
Nach etlichen Gegenanzeigen und einer nicht selbstverständlichen Systemintegration von Appimage-Software sind am Ende noch einmal die eindeutigen Alleinstellungsmerkmale zu betonen:
Die erstaunlich schlanken Container benötigen keine Installation und laufen von beliebiger Stelle – auch portabel auf externen USB-Medien. Damit sind sie eine ideale und unschlagbar einfache Alternative für Software, die man ausprobieren will oder immer wieder benötigt, aber nicht standardmäßig installieren will. Der Nutzung auf verschiedenen Linux-Systemen steht via USB nichts im Weg.
Die autarken Appimages ändern nichts am System, und zur „Deinstallation“ genügt es, die Appimage-Datei auf Dateiebene zu löschen (gegebenenfalls auch noch den zugehörigen Konfigurationsordner unter „~/.config“).
Alle weiteren Ansprüche verwässern letztlich den autarken Auftritt. Weil aber wahrscheinlich viele Nutzer einen einfachen Programmstart auf Dateiebene nicht mehr gewöhnt sind, ist das Tool Appimaged eine uneingeschränkte Empfehlung (getestet auf Gnome, KDE, XFCE und LXQT).
Firejail: Appimages im Käfig
Aus unserer Sicht sind die Risiken von Appimages, die im Benutzerkontext laufen, relativ gering.
Ein destruktives Appimage aus finsterer Quelle (also jenseits der im Haupttext genannten) hätte nur Zugriff auf Home-Verzeichnisse und Benutzerdateien. Wer das theoretische Risiko ausschließen will, kann Appimages mit dem Sandbox-Tool Firejail aufrufen, das auf Debian/Ubuntu mit
sudo apt install firejail
zu installieren ist. Voraussetzung für solche Nutzung ist, dass die Appimages nicht selbst lauffähig sind, also in diesem Fall kein Execute-Bit erhalten. Der Start eines Programms erfolgt dann so:
firejail –appimage [Name].AppImage
Soll dies für alle Appimages gelten, kann man sich diesen manuellen Start sparen, indem man im Dateimanager über „Öffnen mit“ genau diesen Befehl als Standard für Appimages anlegt. In der Regel kann die aktuell angeklickte Datei mit einem Parameter wie „%f“ übergeben werden. Noch einfacher ist der Einsatz des Dienstes Appimaged (siehe Haupttext).