Explicamos qué es Flatpak, Snap yAppImage están en el artículo ¿Cómo se apilan? publicado hace más de 2 años y aunque las tecnologías han mejorado mucho desde entonces, las estoy evaluando desde la perspectiva de un desarrollador de software.
Sandboxing / Confinamiento
Puede ejecutar AppImage sin sandboxing, así como usarlo con diferentes sandboxes, p. AppArmor y Firejail.
Snap puede ejecutarse sin sandboxing pero no puede usarlo con diferentes sandboxes ya que está estrechamente acoplado a AppArmor.
Flatpak no puede ejecutarse sin sandboxing ni puede usarse con diferentes sandboxes que no sean Bubblewrap .
Instalación / Ejecución
Uno puede ejecutar una AppImage después de configurar el ejecutable sin acceso de root, sin descomprimirlo y en un sistema fuera de línea.
Snap debe ser instalado por snapd, no se puede ejecutar sin acceso a la raíz hasta después de que se instale ni se puede colocar su archivo descargable junto a exe
y dmgque los usuarios pueden instalar en sistemas fuera de línea, pero puede ejecutarse desde una fuente sin comprimir.
Flatpak debe ser instalado por una Flatpak herramienta del lado del cliente, no puede ejecutarse sin acceso de root hasta después de la instalación, no puede ejecutarse desde un fuente sin comprimir. Además, los archivos flatpakref
requieren Internet y Los paquetes flatpak requieren un tiempo de ejecución para instalarse.
AppImage puede almacenar y ejecutar aplicaciones desde ubicaciones no estándar como CD-ROM y redes compartidas. Flatpak puede hacer lo mismo después de alguna configuración, mientras que Snap actualmente no puede.
En esta sección, AppImage se lleva la palma porque sus aplicaciones son más flexibles.
Distribución y actualizaciones de aplicaciones
El repositorio central para Flatpak y Snap es FlatHub, y Snap Store respectivamente. Los usuarios pueden descargar AppImages desde AppImageHub, que es una plataforma de catalogación de software disponible como paquetes de AppImage.
A diferencia de AppImage y FlatPak, sin embargo, elSnap Store es la única tienda de aplicaciones dominante con un repositorio por dispositivo. Tú decides si eso es bueno o malo.
Las aplicaciones empaquetadas con los 3 métodos pueden tener múltiples versiones ejecutándose en paralelo y pueden copiarse fácilmente a otra máquina. Sin embargo, tienen sus implementaciones únicas.
Los 3 admiten actualizaciones delta binarias, pero solo AppImage las aplicaciones pueden autoactualizarse como Snap aplicaciones necesitan snapd para instalarse y Flatpak aplicaciones necesitanFlatpak a instalar.
Sumariamente
AppImages y Snap permanecen comprimidos en todo momento ( Flatpak se comprime solo en el lado del servidor) y normalmente tienen un tamaño más pequeño que las aplicaciones Flatpak . AppImage también es independiente de cualquier fabricante de distribuciones y tiene como objetivo unificar los ecosistemas de la plataforma Linux.
Snap es propiedad de Canonical y coloca su complemento base sobre la distribución subyacente, mientras que Flatpak es una iniciativa de Red Hat que coloca una distribución de Yocto sobre la distribución subyacente.Además, a diferencia de Snap donde los desarrolladores deben pagar a Canonical, AppImage y Flatpak son de uso gratuito.
Desde mi punto de vista, las AppImages son el método de empaquetado ideal porque es el más conveniente tanto para los desarrolladores como para los usuarios finales. Sin embargo, es posible que coexistan, especialmente cuando hay casos en los que los desarrolladores prefieren usar uno u otro. Cuéntanos lo que piensas en la sección de comentarios a continuación.
Mi investigación para este artículo estuvo muy influenciada por proyectos similares y los hilos de Reddit aquí y aquí. No dude en consultarlos para obtener más información.