4

Простой вопрос, как я могу извлечь файлы из AppImage?

GUI, CLI, это не имеет значения, пока он выполняет свою работу.

Я использую openSUSE Tumbleweed, если это имеет значение

1 ответ1

0

Во-первых, посмотрите, использует ли ваш файл AppImage новейшую версию его внутреннего формата:

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

Если вы видите следующую строку в выводе:

--appimage-extract              Extract content from embedded filesystem image

Вы можете сами заключить, как действовать. В этом случае перед вами (более новый) формат AppImage типа 2 . (Часть команды «путь» может быть относительной или абсолютной.)

Во-вторых, если первая команда не сработала, вы можете использовать вспомогательный инструмент. Однако для этого вам необходимы права sudo/root: загрузите appimagetool (который, конечно же, доступен как AppImage). Сделайте его исполняемым и запустите:

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

Это должно дать вам список всех файлов и их (относительных) путей, встроенных в ваш.AppImage. Чтобы извлечь ваш.AppImage в каталог с именем и расположен в /path/to/somedir , запустите

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

В-третьих, вы можете монтировать AppImages (как тип 1, так и тип 2) без вспомогательного инструмента:

  • Тип 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.
    
  • Тип 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.
    

Подсказка для «параноика»: если вы не хотите доверять AppImage, третий способ предпочтительнее. Потому что работает (для AppImages типа 2) the.AppImage --appimage-extract или the.AppImage --appimage-mount или the.AppImage --appimage-offset означает, что вы фактически выполняете AppImage (но не его содержимое).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .