Wie kann ich Dateien aus einem AppImage extrahieren?

Wie kann ich Dateien aus einem AppImage extrahieren?

Einfache Frage: Wie kann ich Dateien aus einem AppImage extrahieren?

GUI, CLI, es ist egal, solange es die Arbeit erledigt.

Ich verwende openSUSE Tumbleweed, falls das wichtig ist

Antwort1

Erste, prüfen Sie, ob Ihre AppImage-Datei die neueste Version ihres internen Formats verwendet:

/path/to/your.AppImage --appimage-help

Wenn Sie in der Ausgabe die folgende Zeile sehen:

--appimage-extract              Extract content from embedded filesystem image

Sie können selbst entscheiden, wie Sie weiter vorgehen. In diesem Fall haben Sie eine (neuere)Typ 2AppImage-Format vor Ihnen. (Der „Pfad“-Teil des Befehls kann relativ oder absolut sein.)

ZweiteWenn der erste Befehl nicht funktioniert hat, können Sie ein Hilfstool verwenden. Sie benötigen hierfür allerdings sudo/root-Rechte:herunterladenappimagetool(das natürlich als AppImage verfügbar ist). Machen Sie es ausführbar und führen Sie Folgendes aus:

/path/to/appimagetool-x86_64.AppImage --list /path/to/your.AppImage

Dies sollte Ihnen eine Liste aller Dateien und ihrer (relativen) Pfade geben, die eingebettet sind inIhr.AppImage. ExtrahierenIhr.AppImagein ein Verzeichnis mit dem Namen und dem Speicherort/Pfad/zu/somedir, laufen

mkdir /path/to/somedir
/path/to/appimagetool-x86_64.AppImage /path/to/your.AppImage /path/to/somedir

Dritte, Sie können AppImages (Typ 1 und Typ 2) auch ohne das Hilfstool mounten:

  • Typ 1:

    mkdir mountpoint
    sudo mount -o loop my.AppImage mountpoint/
    
    # You can now inspect the contents
    # You can now also copy the contents to a writable location of your hard disk
    
    sudo umount mountpoint/
    # Do not forget the umount step!
    # If you do forget it, your system may exhibit unwanted behavior.
    
  • Typ 2:

    mkdir mountpoint
    my.AppImage --appimage-offset
    123456   # This is just an example output
    
    sudo mount my.AppImage mountpoint/ -o offset=123456
    
    # you can now inspect the contents
    
    sudo umount mountpoint/
    # Do not forget the umount step!
    # If you do forget it, your system may exhibit unwanted behavior.
    

Hinweis für die „Paranoiden“:Wenn Sie dem AppImage nicht vertrauen möchten, ist die dritte Methode vorzuziehen. Denn das Ausführen von the.AppImage --appimage-extractoder the.AppImage --appimage-mountoder (für AppImages vom Typ 2) the.AppImage --appimage-offsetbedeutet, dass Sie tatsächlich ein AppImage ausführen (allerdings nicht dessen Inhalt).

Aktualisieren:

Um die Frage von @jayarjo im Kommentar unten zu beantworten (wie verpacke ich das AppImage nach Änderungen neu?):

  1. Sie könnenappimagetoolnicht nur, um ein vorhandenes AppImage in ein AppDir zu extrahieren. Sie können es auch verwenden, um das AppDir (möglicherweise nach einigen Änderungen) wieder in ein (modifiziertes) AppImage umzupacken.

  2. Lauf einfach

     appimagetool -v /path/to/AppDir
    

    Beobachten Sie die Ausgabe des Befehls (ausführlich gemacht durch-v) für den Speicherort und den Namen des neu erstellten AppImage. Das ist alles.

Antwort2

Erweiterung in .7z umbenennen

$ mv file.AppImage file.7z

mit Feilenrolle ausziehen

$ file-roller --extract-here file.7z 

Auf Linux Mint getestet.

Antwort3

Umbenennen kann ich nur mit Rechtsklick, Beispiel:

komprimieren-pdf-v0.1-x86_64.AppImage

Zu:

komprimieren-pdf-v0.1-x86_64.zip

dann rechtsklick

"Hier entpacken"

und Arbeiten

Extrahieren Sie alle darin enthaltenen Dateien in einem Ordner

Antwort4

Basierend auf der Antwort hier habe ich dieses einfache Bash-Skript erstellt. Aber ich habe noch nie ein AppImage gefunden, das ich mit einem Loop-Gerät extrahieren konnte. EDIT: Habe gerade gemacht: „wxHexEditor“

Hier:

#!/bin/bash

APP="$2"
UNPK="$(echo $APP | sed 's/\.AppImage//')"

case "$1" in
  -a)
      chmod +x $APP;
      ./$APP --appimage-extract
      mv squashfs-root $UNPK
      ;;
  -b)
      mkdir -p /tmp/$UNPK
      sudo mount -o loop $APP /tmp/$UNPK &>/dev/null
      mkdir -p ~/Desktop/$UNPK
      cp -R /tmp/$UNPK/* ~/Desktop/$UNPK &>/dev/null
      sudo umount /tmp/$UNPK
      ;;
  *)
      echo
      echo "   Usage: appunpack [option] AppImageFile"
      echo 
      echo "   Options: -a  Unpack using --appimage-extract"
      echo "            -b  Unpack using a loop device"
      ;;
esac

verwandte Informationen