Come posso estrarre i file da un'AppImage?


Risposte:


0

Innanzitutto , controlla se il tuo file AppImage utilizza la versione più recente del suo formato interno:

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

Se vedi la seguente riga nell'output:

--appimage-extract              Extract content from embedded filesystem image

puoi concludere come procedere. In questo caso hai di fronte un formato AppImage di tipo 2 (più recente) . (La parte 'percorso' del comando può essere relativa o assoluta.)

In secondo luogo , se il primo comando non ha funzionato, è possibile utilizzare uno strumento di supporto. Tuttavia, per questo sono necessari i privilegi sudo / root: downloadappimagetool (che ovviamente è disponibile come AppImage). Renderlo eseguibile ed esegui:

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

Questo dovrebbe darti un elenco di tutti i file e dei loro percorsi (relativi) incorporati in your.AppImage . Per estrarre your.AppImage in una directory denominata e situata in / path / to / somedir , esegui

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

In terzo luogo , puoi montare AppImages (tipo 1 e tipo 2) anche senza lo strumento helper:

  • Tipo 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.
    
  • Tipo 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.
    

Suggerimento per il "paranoico": se non si desidera fidarsi dell'AppImage, è preferibile il terzo metodo. Perché in esecuzione (per il tipo 2 AppImages)the.AppImage --appimage-extractothe.AppImage --appimage-mountoppurethe.AppImage --appimage-offsetsignifica che in realtà si sta eseguendo un AppImage (anche se non il suo contenuto).

Aggiornare:

Per rispondere alla domanda di @jayarjo nel commento seguente ( come reimballare l'AppImage dopo le modifiche? ):

  1. È possibile utilizzare appimagetool non solo per estrarre un'AppImage esistente in un AppDir. Puoi usarlo anche per reimballare l'AppDir (possibilmente dopo alcune modifiche) in un'AppImage (modificata).

  2. Corri

     appimagetool -v /path/to/AppDir
    

    Guarda l'output del comando (reso dettagliato da -v) per la posizione e il nome dell'AppImage appena creato. Questo è tutto.


Sai come imballarlo? Supponiamo di averlo estratto, modificato alcuni script e ora voglio creare un AppImage da esso.
jayarjo

1
@jayarjo: puoi usare appimagetool non solo per estrarre un'AppImage esistente in un AppDir. Si può usare per ri-pacchetto anche l'AppDir (eventualmente dopo alcune modifiche) di nuovo in un (modificato) AppImage: "appimagetool -v /path/to/AppDir". Guarda l'output del comando (reso dettagliato da -v) per la posizione dell'AppImage appena creata. Questo è tutto.
Kurt Pfeifle,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.