Snap, Flatpak y Appimage. Formatos de paquetes universales para Linux
Hay un viejo chiste en el mundo de la tecnologÃa que dice que cada vez que alguien intenta crear un formato que junte lo mejor de todos los demás para evitar la dispersión, lo único que logra es agregar uno nuevo a la lista. Algo de eso hay con las iniciativas de crear un formato de paquete que pueda ejecutarse en todas las distribuciones Linux sin modificaciones. En lo que va del siglo ya llevamos tres.
Snap, Flatpak y Appimage. Diferencias con los formatos tradicionales
La principal diferencia entre los formatos de paquetes nativos y los formatos de paquetes independientes es que los primeros comparten dependencias con otros programas instalados en el sistema operativo. Es decir que si el programa Y necesita la dependencia 1 y esa dependencia fue instalada por el programa X que también la necesita, esa dependencia no volverá a instalarse.
Los programas empaquetados con formatos independientes incluyen todas las dependencias que necesitan para su funcionamiento. Es decir que la dependencia 1 se instalará cada vez que se instale un programa que la necesite.
La segunda diferencia es que los formatos de paquetes tradicionales deben ser construidos con las especificaciones de cada distribución. Es por eso que por más que Ubuntu sea una distribución derivada de Debian, las diferencias son lo suficientemente importantes como para que los repositorios de la primera no puedan ser usados en la segunda.
La tercera diferencia es que cualquier modificación a una dependencia de los paquetes tradicionales puede afectar el funcionamiento de todos los demás que la necesitan. En cambio, las modificaciones a un programa en un formato independiente, no afectará al resto del sistema.
Dependiendo de las particularidades de cada distribución, es posible instalar las aplicaciones en formatos independientes desde un gestor de paquetes y automatizar su actualización con el gestor encargado de las mismas.
En Ubuntu, el Centro de Software permite instalar tanto programas en formatos tradicionales como Snap, dándole preferencia a estos últimos. Por más que existe un plugin que permite que el Centro de Software de GNOME (del cuál se deriva el de Ubuntu) no funciona con esta distribución.
En el caso de Ubuntu Studio, es posible activar la opción de usar paquetes Snap mientras que KDE Neon y Manjaro pueden funcionar con ambos formatos.
Snap
Es el más nuevo de los formatos independientes ya que su desarrollo comenzó en el 2014. Está pensado no solo para ser usado en distribuciones Linux de escritorio si no también para Internet de las cosas, dispositivos móviles y servidores. Aunque es posible crear tiendas de aplicaciones independientes, en este momento solo existe una operada por Canonical, Snapcraft.
Aunque Snapcraft tiene un surtido de las aplicaciones más populares de código abierto, su fuerte son los programas desarrollados por empresas desarrolladores de software privativo y prestadoras de servicios en la nube.
Flatpak
Aunque oficialmente Flatpak se lanzó en el 2015, es la continuidad de otro proyecto de formato universal conocido como xdg-app. Este proyecto nació con el objetivo de poder ejecutar aplicaciones en una caja de arena virtual segura, que no requiera privilegios de root ni suponga una amenaza de seguridad para el sistema.
Flatpak está enfocado en las distribuciones de escritorio también utiliza el concepto de tienda de aplicaciones siendo Flathub la más conocida.
El punto fuerte de Flathub es que suele tener las versiones más actualizadas de las principales aplicaciones de código abierto.
Appimage
AppImage es el más antiguo de los formatos de paquetes independientes ya que se lanzó por primera vez en 2004.
Fue el primer formato en seguir el paradigma de «Una aplicación- unarchivo». Eso significa que cada vez que descargamos un archivo Appimage estamos descargando la aplicación y todo lo que necesita para funcionar. Si queremos usar la aplicación solo debemos darle permisos de ejecución y hacer doble clic sobre el icono que la identifica.
Appimage no utiliza el sistema de tienda de aplicaciones, pero, hay una página web en la que podemos encontrar una lista de todos los tÃtulos disponibles.
Para actualizar las Appimage, podemos utilizar esta herramienta.