![¿Cómo puedo extraer archivos de una AppImage?](https://rvso.com/image/1555357/%C2%BFC%C3%B3mo%20puedo%20extraer%20archivos%20de%20una%20AppImage%3F.png)
Pregunta sencilla, ¿cómo puedo extraer archivos de una AppImage?
GUI, CLI, no importa, siempre y cuando haga el trabajo.
Estoy usando openSUSE Tumbleweed si es importante
Respuesta1
Primero, mire si su archivo AppImage está usando la versión más reciente de su formato interno:
/path/to/your.AppImage --appimage-help
Si ve la siguiente línea en el resultado:
--appimage-extract Extract content from embedded filesystem image
Puedes concluir tú mismo cómo proceder. En este caso tienes un (más nuevo)tipo 2Formato AppImage frente a ti. (La parte 'ruta' del comando puede ser relativa o absoluta).
Segundo, si el primer comando no funcionó, puede utilizar una herramienta auxiliar. Sin embargo, necesitas privilegios sudo/root para esto:descargarappimagetool
(que por supuesto está disponible como AppImage). Hazlo ejecutable y ejecuta:
/path/to/appimagetool-x86_64.AppImage --list /path/to/your.AppImage
Esto debería darle una lista de todos los archivos y sus rutas (relativas) incrustadas entu.AppImage. Extraertu.AppImageen un directorio llamado y ubicado en/ruta/a/algúndir, correr
mkdir /path/to/somedir
/path/to/appimagetool-x86_64.AppImage /path/to/your.AppImage /path/to/somedir
Tercero, también puedes montar AppImages (tipo 1 y tipo 2) sin la herramienta auxiliar:
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.
Consejo para los 'paranoicos':Si no desea confiar en AppImage, es preferible el tercer método. Porque ejecutar (para AppImages de tipo 2) the.AppImage --appimage-extract
o significa the.AppImage --appimage-mount
que the.AppImage --appimage-offset
en realidad estás ejecutando una AppImage (aunque no su contenido).
Actualizar:
Para responder la pregunta de @jayarjo en el comentario a continuación (¿Cómo volver a empaquetar AppImage después de las modificaciones?):
Puedes usarherramienta de imagen de aplicaciónno solo para extraer una AppImage existente en un AppDir. También puede usarlo para volver a empaquetar AppDir (posiblemente después de algunos cambios) en una AppImage (modificada).
Solo corre
appimagetool -v /path/to/AppDir
Observe la salida del comando (detallada por
-v
) para la ubicación y el nombre de la AppImage recién creada. Eso es todo.
Respuesta2
cambiar el nombre de la extensión a .7z
$ mv file.AppImage file.7z
extraer con file-roller
$ file-roller --extract-here file.7z
Probado en Linux Mint.
Respuesta3
Solo cambio el nombre con clic derecho, ejemplo:
comprimir-pdf-v0.1-x86_64.AppImage
a:
comprimir-pdf-v0.1-x86_64.zip
luego haga clic derecho
"Extraer aqui"
y trabajando
extraer todos los archivos dentro en una carpeta
Respuesta4
Según la respuesta aquí, creé este script bash simple. Pero nunca encontré una AppImage que pudiera extraer con un dispositivo de bucle. EDITAR: Acabo de hacer: "wxHexEditor"
Aquí:
#!/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