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) | Sí | Sí | No |
Soporte de sandboxing | Sí | Sí | Sí |
Obligatorio de sandboxing | Sí | Sí | No |
Soporte de temas nativos | Sí (con advertencias) | Sí (con advertencias) | Sí (con advertencias) |
Soporte para bibliotecas agrupadas | Sí | Sí | Sí |
Portabilidad de la aplicación | Sí (con advertencias) | Sí (con advertencias) | Sí |
Soporte ejecutable único totalmente contenido (similar a .archivos exe en Windows) | No | No | Sí |
Tienda de aplicaciones en línea | Sí | Sí | Sí |
Complementos para software de tienda de aplicaciones de escritorio | Sí | Sí | No |
Soporte de aplicaciones paralelas de múltiples versiones | Sí | Sí | Sí |
Actualizaciones automáticas | Sí | Sí | Sí (con advertencias) |
Soporte del sistema operativo Chrome (a través de contenedores Crostini) | Sí | Sí | Sí |
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.