Was ist ein AppImage? Wie installiere ich es?

231

Ich habe gerade Meet Etcher gelesen , ein stylisches Open-Source USB Image Writer Tool . Es geht um das Herunterladen eines AppImage.

Ja, Linux; Die Linux-Pakete werden als .appimage für 32-Bit- und 64-Bit-Distributionen verteilt und sollten problemlos auf allen wichtigen Linux-Distributionen ausgeführt werden können. Das Team hat derzeit keinen Plan, ein natives .deb (oder .rpm) -Installationsprogramm bereitzustellen.

Was sind AppImages? Wie unterscheiden sie sich von Druckknöpfen?

DK Bose
quelle
10
Ich denke, das appimageTag könnte nützlich werden, also habe ich es gerade erstellt. Und falls wir es nicht brauchen oder behalten wollen, gibt es immer die Möglichkeit, es trotzdem noch einmal zu brennen.
Byte Commander

Antworten:

283

Grundinformation

In Bezug auf die Installation

Ich zitiere die appImage-Projektseite hier:

AppImages können heruntergeladen und ausgeführt werden, ohne dass Installation oder Root-Rechte erforderlich sind.

Es ausführbar machen

Sie können das appImage wie folgt ausführbar machen:

chmod a+x exampleName.AppImage

Ausführen

Sie können ein appImage folgendermaßen ausführen:

./exampleName.AppImage

zusätzliche Information

Über appImage

Allgemeine Informationen zu appImage finden Sie hier .

Ich zitiere die appImage-Projektseite hier:

Die Schlüsselidee des AppImage-Formats ist eine App = eine Datei. Jedes AppImage enthält eine App und alle Dateien, die die App zum Ausführen benötigt. Mit anderen Worten, jedes AppImage hat keine anderen Abhängigkeiten als die, die in den Zielbasisbetriebssystemen enthalten sind.

Wikipedia fügt hinzu

AppImage (und die Vorgänger klik und portablelinuxapps) installieren keine Software im herkömmlichen Sinne (dh, es werden keine Dateien überall im System abgelegt).

Es wird eine Datei pro Anwendung verwendet. Jedes ist in sich geschlossen: Es enthält alle Bibliotheken, von denen die Anwendung abhängt und die nicht Teil des Basissystems sind. In dieser Hinsicht ähnelt es der "Anwendungsvirtualisierung". Sie können eine AppImage-Datei auch dann verwenden, wenn Sie kein Superuser sind oder eine Live-CD verwenden. AppImage-Dateien sind oft einfacher als das Kompilieren und Installieren einer Anwendung, da tatsächlich keine Installation stattgefunden hat. Die AppImage-Datei ist ein komprimiertes Image, das vorübergehend angehängt wird, um den Zugriff auf das Programm zu ermöglichen, ohne das Programm extrahieren oder das zugrunde liegende System ändern zu müssen.

Das README.mddes AppImageKit-Projekts bietet viele zusätzliche Informationen wie Use Cases , Problemraum und Ziele .

Anwendungsfälle

  • Als Benutzer möchte ich eine Upstream-Download-Seite aufrufen, eine Anwendung vom ursprünglichen Autor herunterladen und auf meinem Linux-Desktop-System ausführen, genau wie ich es mit einer Windows- oder Mac-Anwendung tun würde.

  • Als Tester möchte ich in der Lage sein, die neueste Version einer Anwendung von einem Continuous Build-Server zu beziehen und auf meinem System zu testen, ohne kompilieren zu müssen und ohne befürchten zu müssen, dass ich mein System durcheinander bringen könnte.

  • Als Anwendungsautor oder ISV möchte ich Pakete für Linux-Desktopsysteme genau wie für Windows und OS X bereitstellen, ohne sie in eine Distribution einbinden zu müssen und ohne Unmengen verschiedener Distributionen erstellen zu müssen.

Ziele

  1. Sei einfach.

    AppImage soll ein sehr einfaches Format sein, das einfach zu verstehen, zu erstellen und zu verwalten ist.

  2. Behalten Sie die Binärkompatibilität bei.

    AppImage ist ein Format für die Verteilung von Binärsoftware. Als AppImage gepackte Software soll mit möglichst vielen Systemen möglichst binärkompatibel sein. Der Bedarf an (Neu-) Kompilierung von Software sollte stark reduziert werden.

  3. Seien Sie vertriebsunabhängig.

    Ein AppImage sollte auf allen Basisbetriebssystemen (Distributionen) ausgeführt werden, für die es erstellt wurde (und späteren Versionen). Beispielsweise könnten Sie Ubuntu 9.10, openSUSE 11.2 und Fedora 13 (und spätere Versionen) gleichzeitig als Ziel festlegen, ohne separate Pakete für jedes Zielsystem erstellen und warten zu müssen.

  4. Entfernen Sie die Notwendigkeit für die Installation.

    AppImages enthalten die App in einem Format, mit dem sie direkt aus dem Archiv ausgeführt werden kann, ohne dass sie zuvor installiert werden muss. Dies ist vergleichbar mit einer Live-CD. Vor Live-CDs mussten Betriebssysteme installiert werden, bevor sie verwendet werden konnten.

  5. Halten Sie Apps immer komprimiert.

    Da die Anwendung die ganze Zeit gepackt bleibt, wird sie niemals auf der Festplatte dekomprimiert. Der Computer dekomprimiert die Anwendung während des Zugriffs. Da die Dekomprimierung auf den meisten Systemen schneller ist als das Lesen von der Festplatte, hat dies neben der Platzersparnis auch einen Geschwindigkeitsvorteil. Außerdem entfällt die für die Installation erforderliche Zeit vollständig.

  6. Apps überall platzieren.

    AppImages sind "verschiebbar", sodass der Benutzer sie von jedem Ort aus (einschließlich CD-ROMs, DVDs, Wechseldatenträger, USB-Sticks) speichern und ausführen kann.

  7. Machen Sie Anwendungen schreibgeschützt.

    Da AppImages konstruktionsbedingt schreibgeschützt sind, kann der Benutzer sicher sein, dass sich eine App während des Betriebs nicht selbst ändert.

  8. Keine erneute Kompilierung erforderlich.

    AppImages müssen aus bereits vorhandenen Binärdateien erstellt werden können, ohne dass eine Neukompilierung erforderlich ist. Dies beschleunigt den Erstellungsprozess von AppImage erheblich, da kein Compiler beteiligt sein muss. Auf diese Weise können Drittanbieter auch Closed-Source-Anwendungen als AppImages verpacken. (Dennoch kann es für Entwickler vorgelagerter Anwendungen von Vorteil sein, aus dem Quellcode zu erstellen, um ein AppImage zu generieren.)

  9. Lassen Sie das Basisbetriebssystem unberührt.

    Da AppImages auf einfachen Systemen ausgeführt werden soll, die nicht speziell von einem Administrator vorbereitet wurden, erfordert AppImages möglicherweise keine ungewöhnliche Vorbereitung des Basisbetriebssystems. Daher können sie sich nicht auf spezielle Kernel-Patches, Kernel-Module oder Anwendungen verlassen, die standardmäßig nicht mit den gewünschten Distributionen geliefert werden.

  10. Benötige kein root.

    Da AppImages von Endbenutzern ausgeführt werden soll, sollte für die Installation oder Verwendung kein Administratorkonto (root) erforderlich sein. Sie können jedoch von einem Administrator installiert werden (z. B. in Mehrbenutzerszenarien), wenn dies gewünscht wird.

dufte
quelle
4
Wie bleiben die Einstellungen eines Bilds zwischen den Starts erhalten?
Dan Dascalescu
1
Könnten Sie etwas zur "Nur-Lese" -Funktion sagen? Kann ich Änderungen in AppImage speichern? Oder verliert es sie beim Schließen wie LiveCD?
vstepaniuk
2
@DanDascalescu: Ihre Frage verdient es, zu einer vollständigen Frage auf AskUbuntu erhoben zu werden, nicht nur zu einem Kommentar. Wirst du es fragen?
Kurt Pfeifle
@vstepaniuk: Deine Frage ähnelt der von Dan. Einer von Ihnen sollte es als "vollständige" Frage stellen, nicht nur in einem Kommentar ...
Kurt Pfeifle
1
@ KurtPfeifle: da Sie nicht einfach weitermachen und es sich fragen wollten ... :)
Dan Dascalescu
22

Die Grundidee mag zwischen den beiden Systemen ähnlich aussehen, es gibt jedoch einige Designunterschiede zwischen Snaps und Appimages.

Einige "große", die mir einfallen, sind:

  1. Sicherheit in Bezug auf die Haft . Snap-Pakete werden in einer Sandbox ausgeführt und dürfen nicht entkommen und andere Teile des Systems erreichen, die sie nicht berühren sollten. Dies ist eine stärkere Sicherheitsschicht, die parallel zum Berechtigungssystem ausgeführt wird. Natürlich ist es ein bisschen frustrierend, wenn man zu Beginn (und auch später) damit umgeht, aber wenn man in Bezug auf die Systemadministration darüber nachdenkt, ist dies die Sache, die ein Administrator für seine Benutzer wünscht.

  2. Sicherheit. Das Installieren von Software, die aus dem Internet stammt, ist so sicher wie das Lecken von Stangen auf der Straße. Manchmal passiert nichts, manchmal treten sehr große gesundheitliche Probleme auf. Snap-Pakete haben ihre richtigen Repositorys, die wie die üblichen Ubuntu-Standard-Repositorys von Canonical gesteuert werden. Sie können fortfahren und .debDateien aus der ganzen Welt installieren , aber dies ist Ihre Wahl und kein Designproblem.

  3. Installation. AppImages sollen das Äquivalent der "portablen Windows-ausführbaren Dateien" sein. Alle Bibliotheken sind in sich geschlossen und jeder Benutzer kann einfach eine dieser Bibliotheken herunterladen und ausführen. Andererseits handelt es sich bei snapPaketen um richtige Pakete, die über den entsprechenden Paketmanager installiert (als rootoder mit sudo) werden müssen ( snap install tic-tac-toewirft einen Fehler auf: Es muss sudo!).

  4. Entfernung. Um ein Snap-Paket zu entfernen, müssen Sie den Paketmanager snap remove ...mit den entsprechenden Berechtigungen verwenden. Appimages hingegen sind einfach "da". Also will jeder Benutzer dieses Appimage nicht? Er / sie entfernt nur die Datei und sie ist weg.

Ich empfehle dringend, bei der Verwendung von Appimages vorsichtig zu sein, aber ich persönlich benutze einige davon.

Ich finde sie besonders nützlich auf meinem Arbeitssystem, wo ich keinen rootZugriff habe (nur der Administrator hat das), aber ich benötige die neueste Version einer bestimmten Software, die der Entwickler glücklicherweise in Form von Appimage zur Verfügung gestellt hat.

Ich habe ein bisschen Angst, dass in ihnen tatsächlich ein bösartiger Code enthalten ist, deshalb habe ich die Identität des Herausgebers so genau wie möglich überprüft. Ich bin nicht zu 100% sicher, dass diese Software harmlos ist, aber ich habe alles getan, was ich konnte.

dadexix86
quelle
2
Grundsätzlich versucht jeder, OSX-App-Paketierung unter Linux zu implementieren, aber es ist noch nichts dabei.
OrangeDog
2
Ich habe keine Ahnung, wie das funktioniert :) Sicherlich funktionieren Snap und Appimages nicht gut mit Software mit vielen Abhängigkeiten, die von vielen anderen Softwareprogrammen gemeinsam genutzt werden. Sie sind mit bereits in sich geschlossener Software oder mit wenigen Abhängigkeiten völlig in Ordnung, aber das Risiko besteht darin, dass viele Kopien derselben Bibliothek dieselbe Aufgabe ausführen, wie in Windows. Dies sollte in Snap-Paketen behoben werden (eine Software, die von der Snap-Bibliothek abhängt, installiert diese Bibliothek mit dieser Version, und eine andere Software, die dieselbe Bibliotheksversion benötigt, verwendet sie möglicherweise wie mit dem üblichen System).
Dadexix86
OSX- (und iOS-) Apps funktionieren wie AppImage (nur einzelne Dateien herunterladen und ausführen), jedoch mit der Sandbox-Sicherheit von Snap.
OrangeDog
OSX versucht, diese zu beseitigen und nur Installationen aus dem Store zuzulassen.
LtWorf
AppImage sollte in der Tat eine Option für Sandboxen enthalten. Hoffentlich sehen wir das in der Zukunft.
Royi
20

Bevor Sie ein AppImage ausführen können, müssen Sie es ausführbar machen. Dies ist eine Linux-Sicherheitsfunktion. Es gibt zwei Möglichkeiten, um ein AppImage ausführbar zu machen:

1. Über die GUI

So machen Sie ein AppImage ausführbar

oder

2. In der Befehlszeile

chmod a+x Some.Appimage

Doppelklicken Sie jetzt auf Ihre Datei, um sie auszuführen, ODER klicken Sie mit der rechten Maustaste auf> Ausführen

probono
quelle
15

Während sich snap nur auf Ubuntu konzentriert, ist AppImage verteilungsübergreifend und läuft auch unter Fedora, debian, openSUSE, CentOS usw.

AppImage benötigt keine Laufzeit- oder Infrastrukturunterstützung von der Linux-Distribution und kann daher überall ausgeführt werden. Anwendungsautoren können damit ihre Software direkt an Linux-Benutzer wie Windows und OS X senden. ohne Canonical oder irgendjemand anderes "zwischen" dem Software-Autor und dem Endbenutzer.

Wenn eine Anwendung im AppImage-Format bereitgestellt wird, kann der Benutzer sie auf der Website des ursprünglichen Autors herunterladen, z. B. MuseScore unter https://musescore.org/en/download . Wenn Sie AppImage ausführbar machen (entweder mit Ihrem Dateimanager oder chmod a+x ./yourAppImage), können Sie die Anwendung einfach per Doppelklick ausführen.

probono
quelle
Wenn ich also Leafpad installieren möchte, klicke ich auf "Set me up"? Was wird dann passieren? Und wie kann ich ein AppImage deinstallieren? Ich schaue auf bintray.com/probono/AppImages , habe aber keine Antwort gefunden. Wenn Sie nichts dagegen haben, können Sie Ihre Antwort so bearbeiten, dass sie die Informationen sowie alles andere enthält, was die Benutzer möglicherweise gerne wissen möchten.
DK Bose
2
Ich bin mir nicht sicher, ob dies auch für Sie eine Lösung wäre - aber leafpad ist in den 16.04-Quellen sofort verfügbar (Version: 0.8.18.1). Die von bintray angebotene Leafpad-Version ist 'nur' 0.8.17 - also noch älter.
dufte
1
Es stimmt, aber für jemanden, der nur das Wasser testen möchte, ist es, wie die Website sagt, eine Art "Hallo, Welt".
DK Bose
Ausgezeichnet. Danach können Sie einfach einen Doppelklick ausführen. Das habe ich gebraucht!
Dawoodjee
5

Für AppImages muss FUSE ausgeführt werden. Filesystem in Userspace (FUSE) ist ein System, mit dem Benutzer ohne Rootberechtigung Dateisysteme bereitstellen können.

Installieren Sie FUSE

Viele Distributionen verfügen über ein sofort einsatzbereites FUSE-Setup. Wenn dies jedoch nicht funktioniert, müssen Sie FUSE möglicherweise manuell installieren und konfigurieren.

Zum Beispiel unter Ubuntu:

sudo apt-get install fuse
sudo modprobe fuse
sudo usermod -a -G fuse $USER

Zum Beispiel unter openSUSE:

sudo zypper install fuse

Zurückfallen

Wenn Sie FUSE nicht installieren möchten, können Sie das AppImage entweder bereitstellen oder extrahieren.

Führen Sie einfach Folgendes aus, um AppImage bereitzustellen und die Anwendung auszuführen

sudo mount -o loop Some.AppImage /mnt
/mnt/AppRun

Wenn dies nicht funktioniert, liegt möglicherweise ein experimentelles AppImage vom Typ 2 vor . Hierfür müssen Sie -o offset=...an den mountBefehl übergeben. Führen Sie AppImage mit aus --appimage-offset, um die richtige Nummer für den Versatz zu ermitteln.

Insign
quelle
Nachdem sudo usermod -a -G fuseich die 3. Zeile ( ) gefolgt von meinem Benutzernamen geschrieben habe, erhalte ich immer wieder die usermod: group 'fuse' does not exist... Irgendeine Idee, warum?
Martin
Hallo @Martin, In Ubuntu zum Beispiel. Wenn Sie versuchen, ein i686-AppImage (32 Bit) in einem x86_64-System (64 Bit) auszuführen, wird dieser Fehler angezeigt, es sei denn, Sie haben die 32-Bit-Bibliotheken installiert. Sie sollten wahrscheinlich das Betriebssystem und die App angeben, die Sie beim nächsten Mal ausführen möchten, um Unterstützung zu erhalten.
Leo
Hallo @Leo, es ist lange her, aber ich habe gerade die sudo apt-get install fuse sudo modprobe fuse sudo usermod -a -G fuse $USERZeilen auf meinem Windows 10 64 eingegeben . Die Antwort, die ich kommentiere, enthält keine 32/ 64-Spezifikation und ich sehe nicht, wo ich das oder angeben muss warum ...
Martin