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.

Índice
  • Snap frente a Flakpak frente a AppImage
  • 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.

    Snapcraft
    Snapcraft

    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ísticasQuebrarFlatpakAppImage
    Permiso de controles de permisos (GUI y CLI) como en los dispositivos AndroidNo
    Soporte de Sandboxing
    Sandboxing obligatorioNo
    Portabilidad de la aplicaciónNo
    Soporte de tema nativoSí (con salvedades)Sí (con salvedades)Sí (con salvedades)
    Soporte para bibliotecas empaquetadas
    Soporte ejecutable único completamente contenido. Como un archivo exe para sistemas WindowsNoNo
    Tienda de aplicaciones en línea
    Compatibilidad con aplicaciones paralelas de múltiples versiones
    Actualizaciones automáticasSí (con salvedades)
    Soporte para Chrome OS (a través de contenedores Crostini)
    Tamaño de la aplicaciónPuede variar pero superior a AppImagePuede variar pero superior a AppImageMás bajo
    Número de aplicaciones disponibles en la App StoreMás altoMás bajoEn algún lugar entremedio
    Complementos para el software de la tienda de aplicaciones de escritorioNo

    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.

    Permisos de Leafpad
    Permisos de Leafpad

    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.

    Permisos de Snap CLI
    Permisos de Snap CLI

    Para ver todas las aplicaciones instantáneas instaladas, ejecute el siguiente comando:

    snap list

    Lista de instantáneas
    Lista de instantáneas

    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

    Permisos de Snap CLI
    Permisos de Snap CLI

    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

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

    Subir