¿Os acordáis de los paquetes Snap? Para los que anden despistados, se trata de un “nuevo” tipo de paquete instalador de aplicaciones que contiene todas las dependencias necesarias incluidas, además de ofrecer características relacionadas con el aislamiento de procesos.
Presentados al principio como un componente de Snappy Ubuntu Core y centrado en el IoT, no tardó demasiado en llegar a la versión de escritorio de la distribución más mediática y mostrarse como uno de los desarrollos más interesantes dentro de todo GNU/Linux, ya que abría la puerta a facilitar la instalación y mantenimiento de las aplicaciones gracias a un sistema más similar a los empleados por OS X y Windows, incluyendo todas las librerías necesarias, aunque también tiene elementos que pueden hacer recordar un poco a los contenedores Docker, debido a que están aislados del resto del sistema.
Después de refrescar un poco la memoria, ayer se produjo un acontecimiento muy importante tanto para Ubuntu como el resto de distribuciones GNU/LInux, ya que Canonical anunció los “paquetes Snap universales que pueden ser lanzados sobre múltiples distribuciones”. Esto quiere decir que los paquetes Snap han llegado, gracias a la colaboración con la comunidad, a distribuciones como ArchLinux, Debian, Fedora, Kubuntu, Lubuntu, Ubuntu GNOME, Ubuntu Kylin, Ubuntu MATE y Xubuntu. Sí, en ArchLinux y Fedora ya se puede instalar aplicaciones a través de paquetes Snap de forma totalmente nativa. Además se está preparando su llegada a CentOS, Elementary OS, Gentoo, Linux Mint, openSUSE, OpenWRT y Red Hat Enterprise Linux. Esto abre la posibilidad de que Snap se pueda convertir en el formato estándar para suministrar paquetes de las aplicaciones con todas sus dependencias incluidas. Entre los contribuyentes para llevar los paquetes Snap a otras distribuciones nos podemos encontrar a Dell, Samsung, The Linux Foundation, The Document Foundation, Krita, Mycroft y Horizon Computing, además de las comunidades de ArchLinux, Debian, OpenWRT y Ubuntu, entre otras distribuciones.
Al principio parecía que había dudas sobre si volver los paquetes Snap realmente universales o bien habría un paquete Snap por cada distribución. Afortunadamente, todo apunta a que se está optando por la primera opción, impulsando esta tecnología de forma que ayude a la distribución de aplicaciones con paquetes que no solo se pueden instalar en Ubuntu, sino también en otras distribuciones, ofreciendo quizá algo aproximado a los APK de Android, los cuales funcionan en cualquier bifurcación y derivado del sistema operativo de Google.
No vamos a engañarnos, desarrollar aplicaciones para GNU/Linux siempre ha sido «un dolor» debido al problema de las dependencias, factor que dificulta mucho el mantenimiento y el poder abarcar varias distribuciones por parte de los desarrolladores. Por este motivo, nos encontramos muchas aplicaciones que solo funcionan en distribuciones basadas en Debian o, en caso extremo, solo se garantiza el soporte para Ubuntu debido a que es la distribución más popular. ¿Os imagináis poder instalar Google Chrome de forma oficial en cualquier distribución, incluido ArchLinux y Gentoo? Esa es la puerta que abre los paquetes Snap.
“Nos esforzamos en ofrecer a los usuarios una gran experiencia y hacer que Firefox esté disponible para muchas plataformas, dispositivos y sistemas operativos. Con la introducción de los paquetes Snap, estaremos continuamente optimizando Firefox para hacer posible el ofrecer a los usuarios de Linux las características más recientes”, ha dicho Nick Nguyen, vicepresidente del producto Firefox en Mozilla. Boudewijn Rempt, líder de proyecto en Krita Foundation, también ha comentado que “mantener paquetes deb en un repositorio privado era complejo y consumía demasiado tiempo, los Snaps son mucho más fáciles de mantener, empaquetar y distribuir. Poner el paquete Snap en una tienda es particularmente simple, esta es la tienda de aplicaciones más ágil en la que he publicado».
También tenemos declaraciones de Mark Shuttleworth, quien ha dicho que “la mayoría de los vendedores se enfocan en Ubuntu debido a su popularidad. Los paquetes Snap traen esas aplicaciones a cualquier Linux de escritorio, servidor, dispositivo e incluso la nube, dando a los usuarios la libertad de elegir cualquier distribución mientras mantienen el acceso a las mejores aplicaciones».
Como vemos, los paquetes Snap pretenden convertirse en el formato estándar de paquetes “con todo incluido” y ha despertado el entusiasmo de muchos desarrolladores encargados de proyectos diferentes, además de haber conseguido el respaldo de empresas importantes como Dell y la Linux Foundation.
Es importante mencionar que los paquetes Snap permitirán la publicación al mismo tiempo de los canales estable, candidato, beta y versiones diarias de las aplicaciones. Evidentemente, para la mayoría de los mortales lo suyo es usar el canal estable sin más, aunque aquellos que estén interesados en colaborar en el desarrollo podrán previsualizar los próximos lanzamientos con diferentes niveles de estabilidad.
También ofrecerán actualizaciones automáticas, por lo que los usuarios no tendrán de qué preocuparse a la hora de tener las últimas versiones de sus aplicaciones favoritas. Además esto ofrecerá vías que ayudarán mucho a actualizar de forma más sencilla las aplicaciones, pudiéndose destacar aquí LibreOffice, que en caso de no contar con un repositorio que lo actualice de forma automática, el proceso puede volverse algo complicado y poco amigable. El concepto de las dependencias quizá tuviese sentido hace 20 años para ahorrar espacio en disco al compartir las librerías entre distintas aplicaciones, pero a día de hoy no se sostiene por ninguna parte.
Los paquetes Snap tienen a sus competidores
Aunque son quizá los que están acaparando más atención mediática, los paquetes Snap no están ni mucho menos solos, sino que también existen otras tecnologías que ofrecen un enfoque similar en el mercado:
- AppImage: Es un veterano desarrollo que se inició en 2004 y que tiene como objetivo facilitar la instalación de aplicaciones sin requerir de permisos de superusuario, intentando ofrecer un modelo más similar a los empleados por Mac y Windows. Sin embargo, Mark Shuttleworth ha argumentado en su contra que “ofrece un único binario, pero que no realiza ningún intento por ser seguro. No ofrece las actualizaciones semánticas, para las cuales los Snaps sí están diseñados”.
- Flatpak: Es es un desarrollo iniciado por GNOME a través de la iniciativa XDG-App. Posiblemente sea el mayor competidor de los Snaps actualmente y ofrece entre sus características el aislamiento de las aplicaciones. Posiblemente en un futuro dediquemos un artículo explicando qué son. Según Shuttleworth, su mayor inconveniente es que “el 95% de los commits son realizados por un único empleado de Red Hat”. A lo que añadió: “Estaríamos encantados de que trabajara con nosotros”, en referencia al empleado.
- Orbital Apps: Es otro desarrollo que tiene el foco puesto en la portabilidad, sin embargo, no ofrece un modelo de actualización transaccional, cosa que sí soporta Snap.
Recalcamos que Mark Shuttleworth no critica a los desarrolladores que opten por otros formatos de paquetes, pero insiste en hacer valer las ventajas técnicas de Snap sobre estos. También hay que tener en cuenta que la popularidad de Ubuntu en el escritorio y el hecho de que Canonical sea aparentemente la compañía que más está extendiendo GNU/Linux en el IoT le da cierta ventaja para posicionarlo mejor en el mercado.
¿Qué formato de paquetes se impondrá?, ¿Snap o Flatpak?
Flatpak tiene detrás a Red Hat, la mayor rival de Canonical en el mercado en cuanto a soluciones basadas en GNU/Linux. De momento proyectos como LibreOffice y Krita han decidido distribuir sus aplicaciones en ambos formatos, sin embargo, este movimiento por parte de la comunidad para impulsar Snap parece que ha empezado a dar ventaja a la propuesta tecnológica de Canonical.
Aquellos que estén interesados en los paquetes Snap, ya no solo para Ubuntu, sino también para otras distribuciones, pueden visitar el sitio web snapcraft.io, que corresponde a la herramienta con la cual se construyen los paquetes Snap.
Fuentes | ArsTechnica, OMG Ubuntu, Ubuntu Insights y Linux.com