Gestores de Paquetes universales Que son y ¿de donde salen?[1/2]

Llevo tiempo utilizando los gestores de paquetes universales, como son Snap y Flatpak, pero hasta hace relativamente poco no había profundizado en como funcionan exactamente. Hoy vamos a ver que son y el origen de alguno de ellos.

Un sistema de gestión de paquetes, también conocido como gestor de paquetes, es una colección de herramientas que sirven para automatizar el proceso de instalación, actualización, configuración y eliminación de paquetes de software.

Wikipedia

Poniendo cara y ojos viene a ser apt si usas alguna derivada de Debian o pacman si usas alguna de Arch, existen muchos pero estos suelen ser los que vienen por defecto en esas distros. También es muy conocido el gestor synaptic.

Si aún así no terminas de saber lo que es, apt y pacman son los gestores de paquetes que tienen por defecto sus distribuciones, son programas de terminal y sirven precisamente para instalar programas y sus dependencias, además de actualizarlos, revisar las firmas y asegurarse de que la versión local coincide con la del repositorio.

De la forma tradicional, lo que un desarrollador haría normalmente es compilar su aplicación y empaquetarla para una distribución. Imaginemos un .deb para Debian o un .rpm para Red Hat. Al hacer esto la aplicación queda lista para que un gestor de paquetes como podría ser Synaptic, descargue e instale la aplicación en cuestión.

Durante este proceso normalmente se instala el programa y sus dependencias. ¿Dependencias? os preguntaréis, pues sí, muchas veces el software que usamos se apoya a su vez en otro. Como siempre comprueba las dependencias antes de instalar, el gestor no va a volver a descargar una que ya tenga. Por ejemplo tienes Gimp y decides instalar audacity, entre ellos existe una dependencia común, el sistema no la vuelve a descargar, ahorrándote y por un lado memoria en disco, por otro ancho de banda. Si es que eso hoy en día es un problema y por otro tu tiempo, qué es lo más valioso.

Genial ¿no? Si te estás preguntando dónde está el problema, pues es bastante sencillo, si un tercer programa utiliza una versión más moderna de una de esas dependencias, puede descargarla y estropear la otras dos que usan la versión anterior. Además cuando desinstalar un programa no borras las dependencias por lo que si quitaras Audacity y Gimp su dependencia se quedaría en el sistema.

Un formato para dominarlos a todos

Bien para solucionar este problema apareció una nueva forma de instalar aplicaciones. Una forma que recuerda bastante a como se instalan las aplicaciones en los Mac.

Imaginemos ahora que cuando creamos nuestra aplicación en lugar de publicarla de forma que el usuario descargue la aplicación y sus dependencias, lo que hacemos en colocarla en un contenedor estanco. Dentro de este contenedor pondremos nuestra aplicación compilada y todas las dependencias que necesita. Además cuando esta aplicación se ejecuta se va a ejecutar en modo “sandbox” por lo que está aislada del resto de aplicaciones. Y además compatible entre las distintas distribuciones. Si tu distribución tiene alguno de estos sistemas, podrás instalar cualquier aplicación de su catálogo. Facilitándote la vida a ti como usuario y a los desarrolladores, pues ellos compilan una vez, empaquetan y publica en alguno de las tiendas ( si es que lo tiene ).

Existen varias formas de hacer esto.

Cuantos Existen

Existen más de los que probablemente nos gustaría a la mayoría de usuarios de Linux. Como siempre dentro de este mundo, todo está bastante fragmentado y aunque tiene sus cosas buenas porque nos da la posibilidad de usar aquello que más encaja con nosotros, a veces es un problema. Además de que cada una afronta el problema de forma ligeramente diferente, todas tienen sus virtudes y sus debilidades y todas tienen su público, seguidores y detractores.

Flatpak
Caja de madera que representa el logo de Flatpak.
Logo de flatpak

Conocido como xdg-app hasta mayo de  2016, es mantenido por la comunidad, su creador es Alexander Larsson desarrollador de Red Hat. Y lo creó allá por el lejano 2007, aunque la propuesta actual fue obra de un ingeniero alemán llamado Lennart Pöttering. Tras publicar un artículo al respecto en 2014 como parte del proyecto freedesktop (Una iniciativa muy interesante y que quizás se gane un artículo más adelante). Flatpak está apoyada principalmente por Red Hat, pero está adoptada en la mayoría de distribuciones. Su tienda de aplicaciones es Flathub

Snap

Conjunto de paquetes que representa los paquetes snap
Representación de los paquetes Snap

Snap está desarrollado y mantenido por Canonical. Como le suele ocurrir a Canonical, le gusta tener el control de todo lo que rodea a sus sistema operativo. Trabajan mucho en crear un entorno bien integrado entre las distintas versiones de su sistema.

Inicialmente esta idea surgió para el internet de las cosas y se llamó Snappy. No fue hasta 2016 que Canonical la puso en Ubuntu 16.04. Este movimiento estaba también muy orientado al sistema operativo móvil que por esa época Canonical estaba desarrollando Ubuntu Touch. Donde pensaron que tendría mucho futuro es en el mundo de los servidores, ya que la posibilidad de actualizar una aplicación sin romper dependencias era y es muy interesante. Por ello empezaron potenciándola en Ubuntu Server para luego pasar a la versión de escritorio. Su tienda es Snapcraft

Appimage

Logo del gestor de paquetes universal APPimage, un engranaje con una flecha.
Logo AppImage

Este es de los tres el más veterano. Surgió en 2004 con el nombre de Klik por el desarrollador Simon Peter, con la idea de hacer las aplicaciones en Linux más portables. En 2001 cambió su nombre por PortableLinuxApp y en 2013 por Appimage. Igual que Flatpak tiene bastante apoyo y su código está mantenido por la comunidad. Su tienda es Appimagehub

Existen algunos más como Autopackage o Zero install. Pero estos no son muy famosos y por tanto nos centraremos en los tres ya nombrados.

Este artículo ya estaba quedando lo suficientemente largo, así que he decidido sacar en un artículo a parte las principales diferencias entre ellas, así como sus pros y contras. En unos días estará disponible.

Deja un comentario