Snap vs Flatpak vs AppImage: Conozca las diferencias, cuál es mejor
IEn los últimos años, tres formatos de paquetes independientes de distribución diferentes se han vuelto más frecuentes en los sistemas Linux. Estos nuevos formatos de paquete son Snap, Flatpak y App image. Y hay pocos otros que eligieron una ruta completamente diferente. Las distribuciones de Linux como Endless OS y Fedora dependen por completo de formatos de paquetes independientes para ejecutar aplicaciones.
Los administradores de paquetes permiten a los desarrolladores empaquetar, distribuir, instalar y mantener aplicaciones en sistemas Linux. Los administradores de paquetes independientes de distribución son diferentes de los administradores de paquetes tradicionales como '.debutante' y '.rpm. ' que dependen de la plataforma.
Formatos de paquete independientes de distribución frente a formatos de paquete tradicionales
A diferencia de los formatos de paquetes tradicionales, los formatos de paquetes independientes de la distribución agrupan aplicaciones con todas las dependencias para instalar y ejecutar la aplicación como un solo paquete. Por lo tanto, cualquier software distribuido por estos formatos de paquete se ejecutará en cualquier sistema Linux que haya admitido el marco para ese formato de paquete en particular.
Con los administradores de paquetes tradicionales, tenemos aplicaciones creadas para una plataforma específica y los usuarios deberán instalar las dependencias necesarias para que el paquete se ejecute en el sistema. Eso puede parecer un inconveniente significativo en los administradores de paquetes tradicionales, pero también hay un problema que deben tener en cuenta los administradores de paquetes dependientes de la distribución.
Cuando un desarrollador hace uso de administradores de paquetes independientes de distribución para distribuir su trabajo, tiene la responsabilidad total de garantizar que las dependencias estén actualizadas con las últimas medidas de seguridad. Si se ignora, el paquete supondrá una amenaza para la seguridad del sistema. Por el contrario, los desarrolladores de distribución de Linux mantienen los paquetes de software tradicionales, lo que garantiza que las dependencias se actualicen con las últimas actualizaciones de seguridad.
Snap frente a Flakpak frente a AppImage
En este artículo, exploraremos tres formatos de paquetes independientes de distribución: Snap, Flatpak y AppImage, conoceremos sus diferencias y resumiremos algunos hallazgos clave.
1. Snap
Snap es un formato de paquete independiente de distribución desarrollado por Canonical y lanzado por primera vez en 2014. Inicialmente fue desarrollado para Ubuntu pero ha sido adoptado por otras distribuciones de Linux como Arch, Linux Mint, CentOS, Gentoo y Fedora, y también incluye soporte para Snap. estructura.
El objetivo principal detrás del desarrollo de este formato de paquete era crear un formato unificado único para que los paquetes de software se ejecutaran en una amplia gama de dispositivos. Eso incluye IoT (IoT), dispositivos integrados que ejecutan Ubuntu Core (una versión minimalista de Ubuntu) y sistemas informáticos que ejecutan alguna versión de Ubuntu.
Snap también ofrece una tienda de aplicaciones en línea, Snapcraft, donde los usuarios pueden encontrar e instalar los paquetes de software. Crea un grupo grande donde los usuarios pueden encontrar todo lo que está disponible en un paquete instantáneo. Snapcraft es en sí mismo controlado y mantenido por el equipo de Canonical.
Además de los usuarios de aplicaciones, Snapcraft proporciona a los desarrolladores de aplicaciones pautas sobre la publicación de paquetes Snap. Además, Snapcraft viene con software tanto abierto como propietario.
2. Flatpak
Al igual que Snap, Flatpak es otro formato de paquete independiente de distribución destinado a simplificar la distribución y el uso general de aplicaciones en sistemas Linux. Anteriormente conocido como xdg-app, el marco se basaba en el concepto de ejecutar aplicaciones en una caja de arena virtual segura sin requerir privilegios de root o representar una amenaza para la seguridad del sistema.
Flatpak se lanzó oficialmente en 2015 con una copia de seguridad confiable de Red Hat, Endless Computers y Collabora. Apuntó principalmente a tres entornos de escritorio. Eso es FreeDesktop, KDE y GNOME. Las distribuciones de Linux que actualmente tienen este marco son arch Linux, Debian, Fedora, Mageia, Solus y Ubuntu.
El marco Flatpak en sí está desarrollado en programación C y publicado bajo la licencia LGPL. El desarrollador principal es Alexander Larsson, un empleado de Red Hat.
Al igual que Snapcraft para Snap, Flatpak también tiene la tienda de aplicaciones Flathub donde los usuarios pueden encontrar e instalar todos los paquetes de Flatpak. Inicialmente, Flathub solo permitía aplicaciones de publicación de código abierto en el sitio web, pero recientemente aprobó la publicación de aplicaciones propietarias.
Además, a diferencia de Snap, donde tenemos un único repositorio controlado por Canonical para instalar y actualizar paquetes de software, Flatpak admite el uso de varios repositorios. La única desventaja significativa de este paquete es la falta de soporte para servidores.
3. AppImage
AppImage es otro formato de paquete independiente de distribución generalizado lanzado por primera vez en 2004 con el nombre Kik. Considerado como un formato de paquete portátil, sigue el concepto de “Una aplicación = un archivo”. Eso significa que es un archivo independiente regular que contiene una sola aplicación y todo lo que necesita para funcionar. Para ejecutar la aplicación, el usuario solo necesita hacerla ejecutable y hacer doble clic en ella para comenzar.
Los usuarios pueden encontrar los paquetes en el sitio web de AppImage. Otra característica a tener en cuenta es que no utiliza repositorios para instalar actualizaciones de paquetes como Snap y Flatpak. En cambio, el paquete AppImage viene con información adicional sobre cómo instalar actualizaciones. Los paquetes sin esta información de actualización se pueden actualizar con una herramienta como AppImageUpdate.
La siguiente tabla ofrece un resumen detallado de las diferencias clave entre Snap, Flatpak y AppImage. Aunque la mayoría de las características se explican por sí mismas, hemos elaborado algunas de ellas debajo de la tabla de comparación.
Características | Quebrar | Flatpak | AppImage |
---|---|---|---|
Permiso de controles de permisos (GUI y CLI) como en los dispositivos Android | sí | sí | No |
Soporte de Sandboxing | sí | sí | sí |
Sandboxing obligatorio | sí | sí | No |
Portabilidad de la aplicación | sí | sí | No |
Soporte de tema nativo | Sí (con salvedades) | Sí (con salvedades) | Sí (con salvedades) |
Soporte para bibliotecas empaquetadas | sí | sí | sí |
Soporte ejecutable único completamente contenido. Como un archivo exe para sistemas Windows | No | No | sí |
Tienda de aplicaciones en línea | sí | sí | sí |
Compatibilidad con aplicaciones paralelas de múltiples versiones | sí | sí | sí |
Actualizaciones automáticas | sí | sí | Sí (con salvedades) |
Soporte para Chrome OS (a través de contenedores Crostini) | sí | sí | sí |
Tamaño de la aplicación | Puede variar pero superior a AppImage | Puede variar pero superior a AppImage | Más bajo |
Número de aplicaciones disponibles en la App Store | Más alto | Más bajo | En algún lugar entremedio |
Complementos para el software de la tienda de aplicaciones de escritorio | sí | sí | No |
Controles de permisos
La mayoría de las aplicaciones necesitan acceder a diferentes funciones del sistema para funcionar sin problemas. Afortunadamente, algunos de estos formatos de paquetes brindan a los usuarios una forma sencilla de controlar algunos de estos permisos.
Snap proporciona una interfaz gráfica y de línea de comandos para permisos controlados por el usuario. Puede usar el software de Ubuntu para administrar los permisos de las aplicaciones con Snap.
En la imagen de arriba, puede ver los diferentes permisos para Leafpad. Puede habilitar o deshabilitar cada permiso haciendo clic en el botón de alternancia.
Para acceder a los permisos de una aplicación instantánea a través de la línea de comandos, ejecute la línea de comandos a continuación:
snap connections leafpad
Reemplazar 'hoja ' con tu nombre instantáneo.
Para ver todas las aplicaciones instantáneas instaladas, ejecute el siguiente comando:
snap list
Para otorgar permiso de red al ajuste Leafpad, ejecute el siguiente comando:
snap connect leafpad:network
Para revocar el permiso de la red, ejecute el siguiente comando:
snap disconnect leafpad:network
Flatpak también proporciona a los usuarios una interfaz de control de permisos. Puede usar el software GNOME para administrar gráficamente los permisos de las aplicaciones Flatpak.
Para ver todos los permisos en una aplicación Flatpak, ejecute el siguiente comando:
flatpak info --show-permissions com.spotify.Client
Asegúrese de reemplazar 'com.spotify.Client ' con el nombre de su aplicación Flatpak.
Para ver todas las aplicaciones Flatpak instaladas en su sistema, ejecute el siguiente comando:
flatpak list
AppImage no proporciona controles de permisos de usuario a partir de ahora. Sin embargo, los desarrolladores han insinuado que esta función puede implementarse en el futuro.
Sandboxing
El sandboxing es el proceso en el que una aplicación se ejecuta en un entorno (un sandbox / contenedor / sistema de archivos / archivo) completamente aislado del sistema host. Cualquier interacción con el sistema se realiza a través de API y permisos de usuario. Snap, Flatpak y AppImage ofrecen compatibilidad con entornos de espacio aislado.
Una aplicación de espacio aislado mejora la seguridad general del sistema en comparación con una aplicación con acceso completo al sistema. Un buen ejemplo serían las aplicaciones de Android. Se ejecutan en un entorno de espacio aislado y tienen acceso al sistema solo a través de permisos de usuario.
Soporte de tema nativo
Los formatos de paquete Snap, Flatpak y AppImage son compatibles con la apariencia nativa de las aplicaciones GTK y QT, aunque con algunas limitaciones. Por ejemplo, Snap y Flatpak requieren que los temas del sistema estén empaquetados en sus formatos específicos. Si está ejecutando temas y paquetes de íconos de terceros, es posible que no obtenga el tema del sistema, el cursor y los íconos de la aplicación correctos. Aunque esto ha mejorado con el tiempo, todavía hay una diferencia notable con las aplicaciones instaladas desde el administrador oficial de paquetes de distribución.
Portabilidad de la aplicación
Una aplicación AppImage es similar al ejecutable único '.exe' del sistema Windows. expediente. Una AppImage contiene una aplicación con todo lo que necesita para funcionar. Para ejecutar la aplicación, el usuario solo necesita hacerla ejecutable y hacer doble clic en ella para comenzar.
Ese no es el caso de las aplicaciones Snap y Flatpak. Sin embargo, se pueden convertir en portátiles empaquetando la propia aplicación y los repositorios secundarios de los que depende. Todo este proceso no es tan fácil como AppImage y requiere ejecutar varios comandos de Terminal.
Conclusión
Cada uno de los tres formatos de paquetes independientes de distribución discutidos anteriormente tiene sus ventajas y desventajas. Creo que todavía hay algunas mejoras en cada uno de ellos para convertirlos en el formato de paquete principal para las distribuciones de Linux. Afortunadamente, todos estos formatos de paquetes pueden coexistir. No tiene que ceñirse a un formato de paquete en particular cuando puede disfrutar del software de diferentes formatos de paquete.
Deja una respuesta