Los administradores de paquetes proporcionan una forma de empaquetar, distribuir, instalar y mantener aplicaciones en un sistema operativo. Con las modernas aplicaciones de escritorio, servidor e IoT del sistema operativo Linux y los cientos de distribuciones diferentes que existen, se hace necesario alejarse de los métodos de empaque específicos de la plataforma a los métodos independientes de la plataforma. Este articulo explora 2 herramientas de este tipo, Snap y Flatpak, que apuntan a ser el futuro de la implementación y administración de software en Linux.
Snap
Según los desarrolladores de Canonical, esta tecnología se creó originalmente para proporcionar a los usuarios de Ubuntu la máxima comodidad de actualización y elevar la seguridad de las aplicaciones móviles a un nuevo nivel. Su tarea principal es resolver los problemas que no se pueden resolver para los paquetes deb y rpm y garantizar actualizaciones confiables.
Todos los archivos del programa y sus dependencias se empaquetan en un solo archivo, incluidos los archivos ejecutables, los archivos de configuración y las bibliotecas necesarias. En este sentido, snap y flatpak no son muy diferentes. El paquete se instala en un directorio separado en la carpeta de inicio del usuario y el programa solo puede acceder a este directorio. Por lo tanto, el programa no puede crear problemas en tu sistema al reemplazar archivos importantes de otros paquetes.
El programa, empaquetado en un Snap, se ejecuta en un entorno aislado, no tiene acceso a ninguna biblioteca del sistema ni a archivos de configuración. Esto se implementa utilizando los perfiles de AppArmor. Solo puede funcionar con lo que se está instalado en el paquete. La carpeta de inicio del programa también está en tu directorio. Para comunicarse con el servidor X, el sistema de archivos, el entorno de escritorio y otros componentes. Se utilizan las interfaces proporcionadas por el paquete principal ubuntu-core. Si el programa no permite el acceso a estas interfaces, no podrá funcionar.
Flatpak
Flatpak también es una aplicación portátil relativamente nueva de tecnología de sistema compatible con cualquier distribución, creada por el equipo de desarrollo de GNOME. Anteriormente, este formato de paquete se llamaba XDG, pero luego se renombró para evitar conflictos. Está diseñado para aislar aplicaciones de tu sistema una de la otra.
La aplicación también se ejecuta en un contenedor aislado para máxima seguridad. Pero el enfoque de las bibliotecas es un poco diferente. Pueden estar en el mismo paquete con la aplicación, o ubicados en entornos comunes a varios paquetes, este enfoque es más flexible que el Snap y permite que el programa no ocupe tanto espacio.
¿Cuáles son las diferencias?
Las diferencias entre los paquetes Snap y Flatpaks no son realmente tan numerosas. Snap fue creado internamente por Canonical, la compañía detrás de Ubuntu, y la tecnología está codificada para usar la tienda de paquetes Snap. Algunos pueden estar nerviosos por esto, ya que Ubuntu tiene el control total y, de hecho, para hacer un paquete Snap, deberás firmar un Acuerdo de Licencia de Colaborador.
Con Flatpaks todo es de código abierto y no está tan centralizado como Snap. Lo que es más importante es que los Flatpaks están más enfocados en entregar software a las computadoras de escritorio, y los paquetes Snap son básicamente tecnología de servidor que Canonical ha adoptado para la computadora de escritorio, pero funciona para ambos.
Flatpak no tiene una tienda centralizada. Incluso ahora, si lo instalas, no necesariamente podrás hacer que las cosas funcionen tan fácilmente. El software esencialmente funciona de manera muy similar al sistema PPA de Ubuntu. Tienes que salir y encontrar un repositorio y luego agregarlo. Esto contrasta con el funcionamiento de los Snaps, que solo provienen de la tienda de snaps Canonical y de ningún otro lugar. Si quieres adquirir más conocimientos sobre sistemas operativos busca formación en LPIC.
Cuando instalas un paquete Snap, esencialmente obtienes cada pieza de componente de software que necesitas para ejecutar algo en un paquete completo.
Con Flatpak, todo es un poco diferente. Toma el ejemplo de Gnome. El flatpak de Gnome Desktop tendría todos los archivos necesarios, pero no todas las bibliotecas, a menos que el desarrollador decidiera hacerlo. El equipo de Flatpak creó un tiempo de ejecución que debería albergar todo lo que necesitas.
¿Cuál deberías usar?
Es difícil decir qué tecnología será el líder aquí. No hay duda de que mi opinión sobre este asunto se encontrará con algunos comentarios enojados que discuten una posición sobre la otra, por lo que antes de continuar, me gustaría ser claro. Flatpaks y los paquetes Snap son ideas muy interesantes y únicas.
Para mí está claro, al menos en este momento, que los paquetes Snap serían lo que se usaría si lo que quieres es un «formato de paquete universal«. Con Snapd disponible para casi todas las distribuciones en las que se puede construir, es cada vez más fácil comenzar. Lo que es más importante es que cualquiera puede resolverlo. No necesitas buscar una URL de repositorios como Flatpak. Simplemente instalas y listo.
Eso no quiere decir que Flatpak no valga la pena. Si estás en Fedora 24, por ejemplo, deberías aprovechar al máximo Flatpak. También puedes hacer que funcione en Arch, si te gusta instalar este paquete AUR o construirlo tu mismo desde Github .
Conclusión
Aunque Flatpak y Snappy no son ideas nuevas, tienen mucha fuerza detrás de ellas. Hemos tenido herramientas como AppImage (y otras) en el pasado, y nunca tuvieron tanta tracción. Sin embargo, creo que tanto Flatpak como Snappy tienen lo necesario para hacer que despeguen las herramientas de instalación más universales en Linux, incluso si eso significa que tenemos dos formatos principales en lugar de uno.
Algunas personas dicen que demasiadas opciones en Linux son malas. Tenemos demasiadas distribuciones, demasiados formatos de paquetes binarios, demasiadas opciones de sistema de archivos, demasiados entornos de escritorio, y la lista continúa. Sin embargo, creo que lo que algunos dicen que es una debilidad es también una gran fortaleza. Podemos cubrir nuestras apuestas con Snappy y Flatpak. Si una termina siendo mala, podemos intentar otra cosa, o si ambas son malas, es una situación de ganar-ganar donde todos cosechamos los beneficios.
Deja una respuesta