Zitat von
Gamer 23
Das hört sich ja gut und beruhigend an. Gilt das dann für alle, sprich Flatpak, Snap und AppImage laufen alle in einer Sandbox?
AppImage nutzt keine Sandbox. Siehe auch: https://linuxnews.de/2020/02/appimag...ekannte-wesen/
Hat das auch einen bestimmten Hintergrund warum die Programme in Binärcode geliefert werden (ich hätte immer gedacht, dass das schon recht nah an der Maschinensprache ist)?
Binärcode ist Maschinensprache. Zwischencode für virtuelle Maschinen (wie bspw. Java) nennt man zur Abgrenzung normalerweise Bytecode.
Ich vermute, der Grund ist der, dass es für die Betreiber der Repos einfacher ist. Man muss keine Ressourcen aufwenden, um Programme zu kompilieren. Und bei AppImage gibt es ja auch gar kein Repo, das ist einfach nur ein Format, das normal heruntergeladen wird.
Verstehe ich das richtig, dass ich dann ggf. sogar doppelt die benötigten Komponenten habe? Beispiel, ich habe bereits libc6:i386 installiert und jetzt lade ich mir ein Flatpak herunter, welches zufälligerweise genau die gleiche Bibliothek benötigt und dabei hat – dann ist es doch eigentlich doppelt vorhanden oder merkt das Paket das dann?
AFAIK teilen Snaps sich ein gemeinsames Minimalsystem (das sogenannte Base Snap). Das enthält bereits einige Dinge wie die libc, Python oder OpenSSL. Aber wenn Programm A und B bspw. beide KDE brauchen, dann hast du die KDE-Libs zweimal auf dem System. Einmal im Snap A und einmal im Snap B.
Flatpak arbeitet ähnlich, allerdings gibt es statt eines Base Snaps für alle sogenannte Runtimes, aus denen sich der Entwickler eine aussuchen kann, die seinen Wünschen am nächsten kommt. Eine Liste findet sich z.B. hier. Mehrere Runtimes können parallel installiert und von unterschiedlichen Flatpaks gemeinsam genutzt werden. Aber jedes Flatpak für sich kann immer nur auf einer Runtime basieren, alles andere muss der Entwickler selbst beisteuern. Wenn du also zwei Libs brauchst, von denen eine nur in der Runtime X ist und die andere in Runtime Y, dann musst du eine der beiden selber mitliefern.
Letztlich ist das halt die Idee: Es soll ja gerade der Entwickler alles so zusammen packen, wie er meint, dass es perfekt zusammen spielt. Das Base Snap und die Runtimes sollen nur dafür sorgen, dass man nicht ganz bei Null und dem nackten Kernel anfangen muss.
Ein wichtiger Unterschied, den ich zu erwähnen vergaß, weil er für Heimnutzer nicht so wichtig ist: Snaps werden immer systemweit installiert, Flatpaks können (i.d.R.) auch ohne Root-Rechte genutzt werden. Das ist halt cool für Leute, die auf vorkonfigurierten Systemen arbeiten, auf denen sie nur normale Nutzerrechte haben (Uni oder so).