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
          

En Ubuntu Server, Snap es el formato nativo de Canonical; Flatpak es la alternativa preferida en el escritorio GNOME; AppImage es la solución más portable cuando no se puede o quiere instalar nada.

Supervisión de procesos: ps, top, htop, pgrep, pstree

Índice de la sección

Índice del curso