Schlagwort: Snap

  • AppImage – das unbekannte Wesen

    Bild: AppImage-Logo | Lizenz: Public Domain

    AppImage wird häufig in einem Atemzug mit den neuen Paketsystemen Flatpak und Snap genannt. Dabei ist AppImage keineswegs neu, sondern existiert bereits seit über fünfzehn Jahren. Zudem will es nicht mit den Mitbewerbern konkurrieren, sondern hat seine eigene Motivation.

    Richtig ist allerdings, das AppImage bis zum Auftauchen von Flatpak und Snap eher ein Schattendasein führte. Das hat sich in den letzten Jahren grundlegend geändert und auf AppImageHub stehen heute rund 1.000 Anwendungen zur Auswahl.

    Wo kommt AppImage her?

    Die Geschichte von AppImage beziehungsweise seiner Vorläufer begann bereits 2004. Entwickler Simon Peters, der auch heute noch hinter der Software steht, startet das Projekt klik, das nach einer Schaffenspause in PortableLinuxApps umbenannt und seit 2013 als AppImage verfügbar ist.

    Ziel war immer ein einfaches und distributionsunabhängiges Paketformat, das weder Root-Rechte noch eine Installation voraussetzt. Das Host-System soll dabei unverändert bleiben wie bei der Nutzung einer Live-Distribution. Anwendungen sollen schnell vom Entwickler zum Anwender kommen. Dieser muss das Paket lediglich ausführbar machen und kann loslegen.

    Wo sind die Unterschiede?

    AppImage hat zwar grob betrachtet die gleichen Ziele wie Flatpak und Snap, jedoch gibt es entscheidende Unterschiede. So wird im Gegensatz zu den Mitbewerbern keine Installation einer Basis-Software vorausgesetzt. AppImage verzichtet ebenfalls auf die bei Flatpak eingesetzten Laufzeitumgebungen, die desktopspezifisch oft benötige Bibliotheken bündeln und somit verhindern, dass jedes Paket alle benötigten Abhängigkeiten erneut mitbringen muss, auch wenn diese auf dem System bereits vorhanden sind.

    Andererseits muss ein AppImage nur einmal heruntergeladen werden, auch wenn es in Dualboot-Umgebungen eingesetzt wird, denn es läuft wahlweise auch von einem USB-Stick. Dabei lassen sich ohne viel Aufwand auch Anpassungen der Konfiguration mitführen. Das Erstellen von AppImages per AppImageKit ist einfacher als bei der Konkurrenz.

    Keine Sandbox

    AppImage verzichtet derzeit von Hause aus auf ein Sicherheitsmodell wie es Flatpak und Snap in Form von Sandboxen bieten. Hier muss der Anwender noch selbst tätig werden und kann die Anwendungen beispielsweise in Firejail laufen lassen.

    Ein weiterer Nachteil von AppImage ist derzeit noch die Update-Funktion. Diese kann zwar in die Pakete eingebaut werden und aktualisiert dann nur die Differenz zwischen alt und neu, wird aber bisher nur wenig eingesetzt. Simon arbeitet derzeit an einem Werkzeug, dass diesen Schritt für Entwickler vereinfachen soll, wie er kürzlich in einem Interview erläuterte.

  • Bauh: neue Paketformate unter einer gemeinsamen Oberfläche

    Bauh im Suchmodus | Screenshot: ft

    Seit einigen Jahren tummeln sich neue Paketformate im Linuxland. Flatpak, Snap und AppImage bringen alle benötigten Abhängigkeiten direkt im Paket mit und sind somit distributionsübergreifend einsetzbar.

    Weitere Vorteile sind, dass in einer Distribution Pakete installiert werden können, die neuere oder ältere Bibliotheken erfordern als das Gastsystem bietet. Man denke nur an die gerade aus den Distributionen verschwindenden Python 2 oder Qt4.

    Flatpak, Snap, AppImage und AUR

    Im Sommer erschien in der Manjaro-Community ein Tool namens fpakman, um Flatpaks gezielter grafisch verwalten zu können. Das mittlerweile zu Bauh umbenannte Tool wurde seither erweitert und kümmert sich nun unter einer gemeinsamen Oberfläche zusätzlich um Snap, AppImage und Pakete aus dem AUR von Arch Linux und seinen Derivaten.

    Einfach Pip

    Mittlerweile ist die in Python und Qt5 geschriebene und auf GitHub gehostete Anwendung nicht nur unter Manjaro, wo sie seit 18.1 vorinstalliert ist oder unter Arch Linux verfügbar, sondern auch unter Debian, Ubuntu und deren Abkömmlingen. Dort wird sie über den Pip-Installer installiert

    sudo apt install python3-pip
    sudo pip3 install bauh
    

    Nach dem Start von Bauh erscheint ein Verwaltungsfenster, in dem Anwendungen gesucht, installiert, gestartet, aktualisiert oder deinstalliert werden können. Einige Anwendungen können abhängig von ihrem Paketformat auch herabstuft werden. Zunächst scannt die Anwendung nach installierten Paketen der unterstützten Paketsysteme. Sind Anwendungen darunter, für die ein Update vorliegt, wird dieses ebenfalls angezeigt.

    Luft nach oben

    Bauh ist ein noch sehr junges Projekt mit Potenzial, das künftig noch weitere Formate unterstützen will. Eine Einschränkung gibt es derzeit für AppImages. Diese werden nur erkannt, wenn sie per AppImageHub installiert wurden. Beim Design ist noch einiges an Luft nach oben.

    Bessere Übersicht

    Bauh behebt einen Mangel, den sowohl GNOME Software als auch Plasma Discover aufweisen, wenn man diese denn überhaupt nutzt. Diese Anwendungen bieten zwar Unterstützung für Snap und Flatpak, allerdings gehen deren installierte Anwendungen in der Menge der über das Paketsystem installierten Anwendungen unter. Hier bietet Bauh in der Beschränkung auf alternative Formate eine wesentlich bessere Übersicht.

     

  • Ubuntu Snaps – das Sandbox-Modell

    Ubuntu Snaps
    Bild: Sandbox | Quelle: Simon Law Lizenz: CC BY-SA 2.0

     

     

    Canonical hat mit Ubuntu Snaps ein Paketformat entwickelt, das seine Vorteile hauptsächlich im Internet der Dinge und in eingebetteten Systemen ausspielen soll, aber auch auf dem Desktop zunehmend Verbreitung findet. Durch seine plattform-unabhängige Eigenständigkeit erlaubt es beispielsweise das Testen von aktuellen Versionen von Software, die unter der verwendeten Distribution noch nicht verfügbar sind. Entwickler können damit ihre Software in ein Paket stecken, das auf allen Plattformen lauffähig ist, die das Snap-Format unterstützen.

    Ubuntu Snaps im Sandkasten

    Aus Sicherheitsgründen arbeiten Snaps, wie auch das alternative Flatpak-Format in sogenannten Sandboxen. Das bedeutet, die Anwendung ist eingesperrt und erhält nur die notwendigen Zugriffe auf das Gast-System. Aus Entwicklersicht gibt es drei Stufen der Beschränkung, die mit Devmode, Classic und Strict betitelt sind. Was der Endanwender erhält, wenn er ein Snap aus der Abteilung Stable des Ubuntu-Snap-Store installiert, entspricht immer Strict.

    Strict-Mode

    Snaps, die nach dem Strict-Mode erstellt wurden können ohne manuelle Überprüfung in den Store hochgeladen werden. Das Strict-Modell beschränkt eine Applikation mittels Sicherheitsfunktionen des Kernels. Werden hier keine Ausnahmen definiert, hat die App keinerlei Zugriff auf das System. Diese Ausnahmen heißen Interfaces und stellen Schnittstellen für den Zugriff der App auf definierte Bereiche des Gast-Systems dar.

    Devmode

    Um funktionierende Ubuntu Snaps zu erstellen, in denen diese Schnittstellen der kasernierten App die nötigen Zugriffe erlauben, steht Entwicklern der Devmode zur Verfügung. Mit dieser Einstellung erstellte Snaps sind zunächst nicht in ihrem Zugriff beschnitten, der Entwickler kann also beim Testen Schnittstellen suchen, die den nötigen Zugriff erlauben und den Rest einschränken. Wird eine noch nicht definierte Schnittstelle benötigt, kann der Entwickler diese per Bugreport anregen. Snaps im Devmode können lediglich in den Kanälen Edge und Beta veröffentlicht werden und stehen somit zur Durchsicht und Qualitätssicherung bereit.

    Classic-Mode

    Das Modell Classic bietet der Anwendung in einem Snap alle Zugriffe auf das System, die auch eine Anwendung ohne Snap-Beschränkung hat. Dieser Modus bietet Entwicklern die Möglichkeit, Anwendungen als Snap auszuliefern, die noch nicht als Schnittstelle definierte Zugriffe benötigen. Stehen diese Schnittstellen später zur Verfügung, kann der Entwickler auf Strict wechseln.

    Snaps nach dem Classic-Modell werden manuell überprüft bevor sie im Stable-Channel des Ubuntu-Snap-Store veröffentlicht werden. Sie dürfen allerdings keine Verwendung im Ubuntu-Core finden. Anwender haben bei der Installation eines Snap die Möglichkeit, das vom Entwickler vorgegebene Level an Beschränkung zu übergehen, indem sie etwa den Schalter -classic verwenden. Das ist allerdings nicht ratsam, denn es entfernt alle definierten Interfaces und erlaubt der Anwendung ungehinderten Zugriff.

    Mehr zu diesem Thema vermitteln ein Blogeintrag von Alan Pope, nochmals vertieft in der Snapcraft-Dokumentation.

     

  • Ubuntus Snap-Store kompromittiert

    Ubuntu Snap Store | Screenshot: ft

     

    Der Ubuntu-Snap-Store war in letzter Zeit von Malware befallen. Einzelne Snaps waren mit Crypto-Mining-Malware versehen. Snaps können aus dem Store, aber auch direkt in Ubuntu und anderen Distributionen, die die anwendunge GNOME Software  verwenden, installiert werden. Dabei handelte es sich um alle von einem Nicolas Tomb hochgeladenen Snaps. Dazu zählten unter anderem Spiele wie 2048buntu und Hextris. Mittlerweile sind alle Snaps von Nicolas Tomb aus dem Snap-Store entfernt worden.

    Vorwiegend Spiele

    Tomb hatte teilweise proprietäre Lizenzen verwendet, um den Code nicht freigeben zu müssen und sich so vor Entdeckung zu schützen. So war das Snap zu 2048buntu, das auf dem Spiel 2048 basiert, mit einer solchen Lizenz versehen. Das Originalspiel unterliegt einer MIT-Lizenz, die es erlaubt, den Code nach Belieben frei oder proprietär zu verteilen, solange die Copyright-Vermerke erhalten bleiben.

    Flatpak besser geschützt

    Damit wird ein Problem beleuchtet, das besonders der Snap-Store aufweist. In Ubuntus Snap-Store kann jedermann ungeprüft selbst erstellte Snaps hochladen und so allen Anwendern zugänglich machen. Es wird lediglich ein automatisierter Test auf Funktionalität durchgeführt. Auf FlatHub dagegen durchläuft  jedes eingereichte Flatpak eine Überprüfung, wobei sichergestellt wird, dass das Paket die App Requirements erfüllt, bevor es für die Öffentlichkeit zugänglich gemacht wird. Allerdings sind auch hier bei proprietären Lizenzen der Überprüfung Grenzen gesetzt, was die Einsicht in den Quellcode angeht. Dabei stammen Flatpaks aber eher von vertrauenswürdigen Upstreams als aus dritter Hand.

    Handlungsbedarf

    Vom Prinzip her sind Snaps, Flatpaks und AppImages zunächst eine gute Idee, um Software mit nur einem Paket allen Linux-Distributionen zugänglich zu machen. Neben des Öfteren vorgebrachten Kritikpunkten ist einer der wichtigsten die Sicherheit. Es ist nicht einzusehen, warum die neuen Paketformate weniger abgesichert sein sollten als die herkömmlichen Formate DEB und RPM. Hier muss der Snap-Store kräftig aufholen und Versäumtes nachreichen.

  • Flathub-Webseite im neuen Gewand

     

    Flathub-Webseite
    Quelle: NeONBRAND auf Unsplash

     

    Vor einem halben Jahr haben wir die Flathub-Webseite als zentrale Stelle zum Sammeln von Flatpaks verschiedener Herkunft vorgestellt. Flatpak ist ein Paketformat ähnlich wie Snap bei Ubuntu, das sich unter allen Distributionen installieren lässt. Flathub dient dabei sozusagen als Flatpak-App-Store. Allerdings ließ im September das Design der Seite noch sehr zu wünschen übrig. Das hat sich nun mit einem durchgehehenden Neudesign grundlegend geändert.

    Neue Flathub-Webseite

    Das Suchen und Stöbern, das Installieren oder das Hochladen eigener Flatpaks ist dank des neuen übersichtlichen Designs wesentlich intuitiver und einfacher geworden. Eine Leiste am linken Rand der Seite unterteilt den Bestand an Apps in Kategorien. Zuoberst lädt eine Unterteilung in die Sparten Popular, New & Updated, Editor’s Choice und Editor’s Choice Games zum Entdecken ein.

    1-Klick-Installation

    Darunter lädt eine Einteilung in zehn Kategorien zum gezielteren Suchen ein. Soll festgestellt werden, ob sich eine bestimmte Anwendung bereits im Flatpak-Format im Shop findet, steht oben rechts das Suchfeld zur Verfügung. Ist eine interessante App ausgemacht, so führt ein Klick darauf zu einer ausführlichen Beschreibung des Objekts der Begierde. Ein Install-Button lädt dann zur 1-Klick-Installation ein.

    [su_slider source=“media: 4770,4771″ link=“image“ width=“700″ height=“460″ mousewheel=“no“ autoplay=“0″ speed=“0″]
    Als Voraussetzung, damit das gelingt,  muss die Flatpak-Software auf dem Rechner installiert sein. Diese ist zumindest bei Fedora, Arch, Mageia und OpenSUSE bereits vorinstalliert. Bei Debian und Ubuntu muss noch ein wenig nachgeholfen werden. Bei Debian reicht ein beherztes apt install flatpak aus. Unter Ubuntu lautet der Befehl apt install flatpak gnome-software-plugin-flatpak. Dabei wird auch gleich Unterstützung für Flatpak in der Anwendung Gnome-Software installiert. In beiden Fällen muss Flathub dem System als Quell-Repository bekannt gemacht werden. Dafür sorgt der Befehl
    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

    Unter Ubuntu 17.10 funktioniert die Installation per Klick von der Flathub-Webseite nicht, hier kann die Anwendung GNOME-Software oder die Kommandozeile benutzt werden. So installiert etwa als User der Befehl

    flatpak install com.spotify.Client.flatpakref


    den Spotify-Client. Selbst erstellte Flatpaks können ebenfalls recht einfach auf Flathub hochgeladen werden. Hinter dem Button Publish findet sich eine ausführliche Anleitung. Nähere Informationen zum Flatpak-Paketformat bietet dieser Artikel.

  • Ubuntu 18.04 LTS soll Snaps bringen

    Ubuntu 18.04 LTS Bionic Beaver
    Screenshot: ft

    Wenn es nach dem Willen von Ubuntu-Entwickler Steve Langasek geht, soll Ubuntu 18.04 LTS »Bionic Beaver« als erste Ubuntu-Version neben dem herkömmlichen DEB-Format auch  einige Pakete im neuen Snap-Format auf dem Image ausliefern. Das Format wird seit Ubuntu 16.04 LTS »Xenial Xerus« offiziell unterstützt. Bereits 2014 hatte Mark Shuttleworth auf dem Ubuntu-Summit Snaps für die Zukunft als gleichberechtigtes Paketformat oder gar als Ersatz für Debians Format angekündigt. Letzteres ist erst einmal nicht in Sicht, allerdings könnte Ubuntu 18.04 erstmals Snaps beinhalten. Den Vorreiter hat hier Martin Wimpress mit Ubuntu MATE gemacht, der bereits mit 17.10 ein Snap auslieferte.

    Was unterscheidet die Formate?

    Snaps sind Pakete, die den Großteil ihrer benötigten Abhängigkeiten im Paket selbst mitbringen. Zudem sind sie per Sandbox besonders abgesichert – zumindest theoretisch, denn das funktioniert nur unter Wayland einwandfrei. Da aber Ubuntu 18.04 LTS nicht, wie der Vorgänger Ubuntu 17.10 auf Wayland setzt, sondern zu X11 zurückkehrt, entfällt dieser Vorteil erst einmal. Nachteile des Snap-Formats, das eigentlich für das Internet der Dinge entwickelt wurde, ist prinzipbedingt die Größe der Pakete. So ist etwa das Snap von Spotify 168 MByte groß, Skype schlägt mit 110 MByte zu Buche. Zudem passen sie vom Design her nicht immer in das Gesamtbild einer Distribution.

    Vor- und Nachteile

    Zu den Vorteilen zählen automatische Updates, die aber auf Systemen mit wenig Platz auch schnell zu Problemen führen können. Die Möglichkeit zum Abschalten dieser automatisierten Updates wiederum würde einen großen Vorteil von Snaps zunichte machen. So werden etwa im Internet der Dinge Geräte wie Router, Switches und viele mehr automatisch mit neuer Firmware versorgt, was sie weniger anfällig gegen Angriffe macht. Deshalb hat sich Canonical bisher dagegen verwehrt. Sollten Snaps jetzt mit Ubuntu vermehrt für den Desktop ausgeliefert werden, sollte das für diesen Anwendungsfall neu überdacht werden.

    Transaktionelle Updates

    Zudem werden Snaps so aktualisiert, dass dank transaktioneller Updates auf die alte Version zurückgerollt wird, falls etwas schief geht. Gerade für LTS-Ausgaben machen daher Snaps von Paketen, die der Anwender aktuell halten will, durchaus Sinn. Diese können auch parallel zu den normalen Debian-Paketen einer Anwendung koexistieren. Sie sind quasi wartungsfrei und können über den Snapcraft-Store, das Software-Center oder per Kommandozeile installiert und administriert werden.

    Snaps für Ubuntu 18.04 LTS

    Steve Langasek hält daher die Zeit für reif, Snaps mit Ubuntu 18.04 LTS im April auszuliefern. Er hat dazu in einem Aufruf auf der Mailing-Liste der Ubuntu-Entwickler seine Kollegen aufgerufen, dazu Stellung zu nehmen. Im Anhang hat er Ideen zu Richtlinien ausgearbeitet, über die zu entscheiden ist. Bei der Menge an Fragen, die dort aufgeworfen werden ist es allerdings fraglich, ob die Zeit bis zur Veröffentlichung am 26. April ausreicht um dies in verantwortungsvoller Weise zu tun.

    Viele offene Fragen

    Dabei geht es um Lizenzen, die Vertrauenswürdigkeit der Quelltexte und Pakete, die ja nicht durch Repositories wie bei Debian abgesichert sind. Ferner stellen sich Fragen wie wer für die Behebung von Sicherheitsproblemen verantwortlich ist oder wie der Quelltext zugänglich zu machen ist, sodass die Snaps im Launchpad verfügbar sind. Wenn alle Fragen diese geklärt sind, so macht es gerade bei LTS Sinn, bestimmte Pakete wie etwa LibreOffice, Skype, Slack, Spotify oder andere Software aus dritter Hand als Snaps auszuliefern, da gerade bei LTS auch PPAs nicht der Weisheit letzter Schluss sind.