Flatpak y AppImage: paquetes universales
Introducción
Junto a Snap, existen otros dos formatos de distribución de software independientes de la distribución: Flatpak y AppImage. Los tres intentan resolver el mismo problema (distribuir aplicaciones con sus dependencias empaquetadas), pero con filosofías distintas.
Flatpak
Flatpak es un sistema de virtualización de aplicaciones de escritorio desarrollado por la comunidad
(originalmente por Red Hat). Las aplicaciones se distribuyen desde Flathub
(flathub.org), el repositorio más completo. Usa runtimes compartidos (p.ej.
org.freedesktop.Platform, org.gnome.Platform) para no duplicar las dependencias
comunes entre aplicaciones.
Instalar Flatpak:
# apt install flatpak # Debian/Ubuntu
# dnf install flatpak # Fedora/RHEL
Añadir el repositorio Flathub:
# flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Gestión de aplicaciones:
$ flatpak search gimp # buscar aplicaciones
# flatpak install flathub org.gimp.GIMP # instalar desde Flathub
$ flatpak run org.gimp.GIMP # ejecutar la aplicación
# flatpak update # actualizar todas las aplicaciones
# flatpak update org.gimp.GIMP # actualizar una aplicación concreta
# flatpak uninstall org.gimp.GIMP # desinstalar
# flatpak uninstall --unused # eliminar runtimes no usados
Listar e inspeccionar:
$ flatpak list # aplicaciones y runtimes instalados
$ flatpak list --app # solo aplicaciones
$ flatpak info org.gimp.GIMP # información detallada
$ flatpak remote-list # repositorios configurados
Permisos y aislamiento:
Flatpak aísla las aplicaciones del sistema mediante bubblewrap y Wayland/X11 portals. Se pueden revisar y modificar los permisos con:
$ flatpak info --show-permissions org.gimp.GIMP
# flatpak override --filesystem=home org.gimp.GIMP # dar acceso al home
# flatpak override --nofilesystem=home org.gimp.GIMP # revocar acceso
Rutas de instalación:
/var/lib/flatpak/→ instalación del sistema (root)~/.local/share/flatpak/→ instalación del usuario
AppImage
AppImage es el enfoque más simple de los tres: una única imagen de disco ejecutable que contiene la aplicación y todas sus dependencias. No requiere instalación ni permisos de root: se descarga, se le da permiso de ejecución y se ejecuta directamente.
Uso básico:
$ chmod +x MiAplicacion-x86_64.AppImage # dar permiso de ejecución
$ ./MiAplicacion-x86_64.AppImage # ejecutar directamente
Integración con el escritorio:
Al ejecutar un AppImage con --install o mediante herramientas como AppImageLauncher,
se integra en el menú de aplicaciones y se asocia al tipo de archivo.
$ ./MiAplicacion.AppImage --appimage-extract # extraer contenido sin ejecutar
$ ./MiAplicacion.AppImage --appimage-extract-and-run # extraer y ejecutar (sin FUSE)
Dependencia de FUSE:
La mayoría de AppImages requieren FUSE (Filesystem in Userspace) para montarse en ejecución. En sistemas sin
FUSE disponible se puede usar la opción --appimage-extract-and-run.
# apt install fuse libfuse2 # Debian/Ubuntu
# dnf install fuse fuse-libs # Fedora/RHEL
Actualización de AppImages:
No hay gestor centralizado. Cada AppImage se actualiza manualmente descargando la nueva versión, o con la
herramienta appimageupdatetool si el desarrollador ha incluido metadatos de actualización delta.
Comparativa: Snap vs Flatpak vs AppImage
Snap Flatpak AppImage
────────────────────────────────────────────────────────────
Instalación snapd (daemon) flatpak (lib) Sin instalar
Requiere root Sí (install) Sí (sistema) No
Actualizaciones Automáticas Manuales/auto Manuales
Aislamiento AppArmor/seccomp bubblewrap Ninguno por defecto
Repositorio Snap Store Flathub (prin.) Sitio del autor
Runtimes compartidos No Sí No
Formato .snap .flatpak/.ref .AppImage
Ideal para Servidores/CLI Escritorio Portabilidad sin instalar