Flatpak, Snap o AppImage: cuál elegir en Linux

Cuando un programa no está en los repositorios de nuestra distribución, es fácil encontrar tres descargas distintas: Flatpak, Snap y AppImage. Las tres permiten distribuir una aplicación sin depender tanto de la versión de Ubuntu, Linux Mint o Fedora que tengamos, pero no funcionan de la misma forma.

Para una aplicación de escritorio suelo mirar primero quién mantiene el paquete, cómo se actualiza y qué acceso tendrá a nuestros archivos. El formato importa, pero una versión oficial y mantenida suele ser mejor elección que un paquete abandonado en cualquier tienda.

Qué formato elegir

Si necesitamos…La opción más cómoda suele ser…
Una aplicación gráfica integrada y actualizada desde una tiendaFlatpak
Un programa preparado especialmente para Ubuntu o publicado sólo en Snap StoreSnap
Probar una aplicación puntual sin instalarla en el sistemaAppImage
Controladores, kernel, bibliotecas del sistema o servicios esencialesEl paquete de la distribución, no uno de estos formatos por defecto

No pasa nada por combinar formatos. Podemos instalar unas aplicaciones desde los repositorios, otras mediante Flatpak y conservar una AppImage para un programa ocasional. Lo que conviene evitar es instalar la misma aplicación de dos maneras, porque después no siempre sabremos cuál estamos abriendo ni cuál guarda cada configuración.

Flatpak: aplicaciones de escritorio y permisos visibles

Flatpak utiliza runtimes compartidos con las bibliotecas que necesitan las aplicaciones. Cada programa se ejecuta dentro de un entorno aislado y solicita acceso a archivos, dispositivos o servicios del escritorio. Los portales permiten, por ejemplo, escoger un archivo desde una ventana sin entregar a la aplicación acceso permanente a toda nuestra carpeta personal. La documentación de Flatpak explica estas diferencias entre runtime, sandbox y portal.

Es una buena opción para navegadores, editores, reproductores y otros programas gráficos. Flathub ofrece un catálogo amplio, aunque debemos comprobar el autor y si la ficha está verificada: estar en Flathub no significa automáticamente que el paquete lo haya subido el desarrollador original.

Para ver el origen y los permisos de una aplicación instalada podemos utilizar:

flatpak info nombre.de.la.Aplicacion
flatpak info --show-permissions nombre.de.la.Aplicacion

Los identificadores se obtienen con flatpak list --app. Si necesitamos instalar, actualizar o quitar paquetes, tenemos una guía separada sobre cómo utilizar Flatpak. También podemos revisar aplicaciones y datos restantes con Warehouse, sin mezclar aquí otro tutorial completo.

Snap: integración con Ubuntu y actualizaciones automáticas

Logotipo de Ubuntu junto a paquetes que representan Snap
Snap está especialmente integrado en Ubuntu, aunque también puede instalarse en otras distribuciones.

Snap depende del servicio snapd y de Snap Store. En Ubuntu ya forma parte del sistema; Linux Mint no lo habilita de forma predeterminada. Puede resultar práctico cuando el fabricante publica allí la versión que mantiene o cuando necesitamos una aplicación con sus actualizaciones gestionadas por snapd.

La mayoría de los snaps utiliza aislamiento estricto, pero no todos. Los paquetes con confinamiento classic tienen un acceso parecido al de un paquete tradicional y piden expresamente --classic durante la instalación. Podemos comprobarlo antes con:

snap info --verbose nombre-del-snap

La documentación de Snap distingue los modos strict y classic. Sus actualizaciones se descargan automáticamente, aunque podemos consultar la última y la próxima comprobación con snap refresh --time. No debemos recomendar Snap o descartarlo sólo por esta automatización: también cuentan el mantenedor, los permisos y si la aplicación funciona bien empaquetada así.

AppImage: descargar, dar permiso y ejecutar

Icono de una aplicación AppImage
Una AppImage se ejecuta como un archivo; no necesita un servicio como snapd.

AppImage es útil cuando queremos descargar un programa, guardarlo en una carpeta y ejecutarlo sin una instalación tradicional. Desde la terminal hacemos lo mismo que indica su guía oficial:

chmod +x MiPrograma.AppImage
./MiPrograma.AppImage

Esto no convierte el archivo en una aplicación aislada. La AppImage se ejecuta con los permisos de nuestro usuario y puede crear configuraciones o caché en la carpeta personal, por lo que borrar el archivo no garantiza que desaparezcan todos sus datos. También debemos descargarla desde la web oficial del proyecto y comprobar su firma o suma cuando el desarrollador las ofrezca.

Las actualizaciones dependen de cada aplicación. Algunas incluyen información compatible con AppImageUpdate y otras obligan a descargar un archivo nuevo. Si queremos que todo se actualice desde una misma tienda, Flatpak o Snap suelen resultar más cómodos.

Espacio en disco y aplicaciones repetidas

Flatpak comparte runtimes y deduplica archivos, mientras que Snap conserva algunas revisiones para poder volver atrás. Al instalar la primera aplicación el espacio ocupado puede parecer alto porque también se descarga su entorno; las siguientes pueden reutilizar parte de él. Una AppImage concentra el programa en un archivo, pero dos AppImage distintas no comparten sus bibliotecas.

Antes de limpiar a ciegas, conviene averiguar qué tenemos:

flatpak list --app
snap list
find "$HOME" -maxdepth 3 -type f -iname '*.AppImage'

Con esa lista podremos decidir qué formato conservar para cada programa. No existe un ganador para todo Linux: Flatpak suele encajar mejor con el escritorio, Snap tiene sentido cuando el proyecto lo mantiene o usamos Ubuntu, y AppImage resuelve muy bien el uso puntual. Si utilizáis alguno de una forma distinta, podéis dejar vuestra experiencia en los comentarios.

Sergio Almela

Senior Software Engineer con más de diez años de experiencia. Escribo sobre Linux, software libre, backend, arquitectura, rendimiento, testing e IA aplicada al desarrollo.

Ver todas las entradas de Sergio Almela →

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *