Comparación Snap vs Flatpak vs Appimage

Comparación Snap vs Flatpak vs Appimage
Los nuevos formatos de embalaje como Snap, Flatpak y Appimage están proporcionando paquetes de agnósticos de distribución que funcionan en la mayoría de las distribuciones de Linux. Esto resuelve los problemas de empaque que enfrentan los desarrolladores de aplicaciones que desean distribuir sus aplicaciones en múltiples distribuciones de Linux. Ahora pueden concentrarse en una construcción que funciona en todas partes en lugar de pasar por diferentes estándares de empaque.

Este artículo enumerará las principales diferencias entre estos tres formatos de embalaje desde la perspectiva de los usuarios finales. Las diferencias en la arquitectura del empaque y la facilidad de los envases desde el punto de vista de los desarrolladores no se cubrirán aquí.

La siguiente tabla resume las principales diferencias entre los formatos de archivo Snap, Flatpak y Appimage. La mayoría de ellos se explican por sí mismo, otros puntos se han explicado debajo de la tabla de comparación.

Quebrar Platero Apimaje
Los controles de permiso como Android se alternan (GUI y CLI) No
Soporte de sandboxing
Obligatorio de sandboxing No
Soporte de temas nativos Sí (con advertencias) Sí (con advertencias) Sí (con advertencias)
Soporte para bibliotecas agrupadas
Portabilidad de la aplicación Sí (con advertencias) Sí (con advertencias)
Soporte ejecutable único totalmente contenido (similar a .archivos exe en Windows) No No
Tienda de aplicaciones en línea
Complementos para software de tienda de aplicaciones de escritorio No
Soporte de aplicaciones paralelas de múltiples versiones
Actualizaciones automáticas Sí (con advertencias)
Soporte del sistema operativo Chrome (a través de contenedores Crostini)
Tamaño de la aplicación Varía pero más alto que la apimaje Varía pero más alto que la apimaje El más bajo
Número de aplicaciones disponibles en la App Store El más alto El más bajo En algún lugar entremedio

Controles de permiso para usuarios

Snap proporciona interfaces gráficas y de línea de comando para permisos controlados por el usuario. Puede usar la aplicación preinstalada "Software Ubuntu" para administrar los permisos de una aplicación Snap.

Para ver los permisos de una aplicación Snap usando la interfaz de línea de comando, ejecute el comando a continuación:

$ Snap Connections Chromium

Reemplace el "cromo" con el nombre de su aplicación Snap.

Para ver una lista de todas las aplicaciones SNAP instaladas, ejecute el comando a continuación:

Lista de $ Snap

Para otorgar permiso de la cámara para cromo, use el comando a continuación:

$ Snap Connect Chromium: cámara

Para revocar el permiso de la cámara, ejecute el comando a continuación:

$ Snap Desconecte Chromium: cámara

Los comandos apropiados para la gestión de permisos se pueden encontrar en la columna "plug" (que se muestra en la captura de pantalla anterior).

Flatpak también proporciona una interfaz para otorgar y revocar permisos. Puede usar la aplicación GNOME Software (requiere GNOME 3.32.x) para administrar los permisos utilizando un método gráfico. Para ver los permisos de una aplicación Flatpak, ejecute el comando a continuación:

$ Flatpak Info --Show-Permissions Org.kde.Plataforma

Reemplazar "orgg.kde.Plataforma ”con el nombre de su aplicación Flatpak.

Para ver una lista de todas las aplicaciones Flatpak instaladas en su sistema, ejecute el comando a continuación:

$ Flatpak List

Para cambiar los permisos de una aplicación Flatpak, debe cambiar los valores de las variables que se muestran en la captura de pantalla anterior. Por ejemplo, el siguiente comando pondrá a disposición del sistema de archivos completo para una aplicación Flappak:

$ sudo platpak anular org.kde.Plataforma -Filesystem = host

Appimage no admite controles de permiso granular a partir de ahora, pero los desarrolladores han insinuado que los controles de permiso de estilo Android pueden implementarse en el futuro.

Sandboxing

Snap, Flatpak y Appimage Support Sandboxed App Entornments. Un sandbox es un entorno (o contenedor / sistema de archivos / archivo) que está completamente aislado y distante del sistema de host. Cualquier interacción con el sistema host se realiza utilizando API limitados y controles de permiso. Algunos de estos permisos requieren explícitamente la opción o pueden ser deshabilitadas por completo por usuarios finales. Una aplicación de sandboxed es segura que cualquier otra aplicación que tenga acceso completo al sistema de host. Todas las aplicaciones de Android se ejecutan en un sandbox y estos tres formatos de empaque funcionan con una idea similar.

Soporte de temas nativos

Los tres formatos de embalaje admiten la apariencia nativa de las aplicaciones GTK y QT, aunque con algunas limitaciones. Por ejemplo, Snap y Flatpak requieren que los temas del sistema se empaqueten en sus respectivos formatos. Si está utilizando paquetes de temas e iconos de terceros, es posible que no obtenga un tema correcto, cursor e iconos de aplicaciones. La integración ha mejorado las horas extras, pero se quedan cortos en comparación con las aplicaciones instaladas del Administrador oficial de paquetes de una distribución.

Portabilidad de la aplicación

Una aplicación Appimage es un solo archivo ejecutable (similar a Windows ' .archivos exe). Puede compartirlo fácilmente entre sistemas o cargar en la nube. Las aplicaciones Snap y Flatpak se pueden hacer portátiles incluyendo la aplicación en sí, así como repositorios infantiles de los que depende la aplicación. Sin embargo, el proceso no es tan fácil como la apimaje y requiere el uso de múltiples comandos para lograr los mismos resultados.

Actualizaciones automáticas

Las aplicaciones Snap y Flatpak se instalan desde repositorios de aplicaciones centralizadas y las aplicaciones se pueden actualizar automáticamente sin intervención del usuario. Appimage carece de un mecanismo de actualización automática robusto. Los usuarios deben descargar manualmente el nuevo binario de Appimage y reemplazar uno existente para instalar actualizaciones. Los mantenedores de aplicaciones de Appimage a veces incluyen su propio mecanismo de actualización que periódicamente verifica la disponibilidad de actualizaciones en sus servidores o requiere intervención del usuario. Recientemente, los desarrolladores de Appimage proporcionaron una herramienta para actualizar los binarios existentes al proporcionar actualizaciones delta. Sin embargo, todavía requiere descargar la herramienta de actualización y usarla manualmente con un binario de Appimage existente. Todavía no hay un mecanismo de actualización manos libres disponibles para la appimage.

Tamaño de la aplicación

Appimage tiene la huella del tamaño de la aplicación más baja, muy probablemente porque sirve binarios en formato comprimido. Los tamaños de aplicaciones Snap y Flatpak varían mucho de una aplicación a otra y es difícil determinar cuál proporciona un tamaño de instalación más bajo. Solo como referencia, la apimaje de la escruta al momento de escribir este artículo era de alrededor de 98 MB, Snap era alrededor de 183 MB y Flatpak era de alrededor de 109 MB.

Conclusión

Los paquetes de aplicaciones universales son una situación de ganar-ganar tanto para desarrolladores como para usuarios finales. Estos formatos de envasado permiten una entrega mucho más rápida de aplicaciones seguras. También abren puertas para desarrolladores que han estado alejando de Linux debido a los diferentes estándares de empaque utilizados en diferentes distribuciones. Hay algunos problemas que deben resolverse en estos tres formatos de empaque. Sin embargo, todos están en desarrollo activo y estos problemas serán solucionados horas extras. Los paquetes universales de distribución cruzada son el futuro y su adopción aumentará. Lenta pero constantemente, las distribuciones pueden moverse a Snap, Flatpak o Appimage se construye en el futuro, excepto en las bibliotecas centrales y los paquetes esenciales que se necesitan para que funcione el sistema operativo.