Snaps: Reflexión

A raíz de una charla en un grupo de telegram ha salido a relucir el tema de snap: un concepto curioso introducido por ubuntu. Según tengo entendido, es un repo donde contiene un contenedor con una aplicación con lo que necesita para funcionar, y es totalmente independiente del SO.

La idea me gusta, pues así se podría evitar tener que quebrarse la cabeza con temas de dependencias y demás. Tampoco haría falta tener en cuenta los gestores de paquetes de cada distro, simplemente te bajas tu contenedor y se acabó.
Os dejo el enlace: http://snapcraft.io/docs/snaps/intro

Los snaps son de Ubuntu, pero el concepto estaba ya desde hace mucho y hay otros sistemas equivalentes, como AppImage o Flatpak por ejemplo.

Personalmente, para mí estos sistemas de distribución son complementarios al sistema clásico de paquetería, pues si bien tiene varias ventajas:

  • No necesita dependencias
  • Funciona en cualquier distribución
  • Puede disponer de su sandbox

También tiene ciertas desventajas

  • Requiere mucho más espacio
  • Al disponer de sus propias dependencias, podrías tener varias veces la misma biblioteca cargada varias veces en RAM
  • Si hay una nueva versión de una dependencia, todas las aplicaciones deben actualizarse en vez de actualizar la propia dependencia
  • Al funcionar en su sandbox, el acceso a ciertos componentes y la comunicación entre aplicaciones es más compleja

¿Dónde veo yo el futuro? Pues que los desarrolladores lanzarán sus aplicaciones en algún contenedor tipo snap y el código fuente. Si tienes la app en el repositorio de tu distribución lo instalas desde ahí, y si no, pues sacas el snap «mientras tanto».

Por otro lado, determinadas aplicaciones puede convenir usarlas siempre en contenedores, como algunos servidores o el navegador web, evitando así que en caso de ataque pueda acceder al resto del sistema.

Sin embargo, tener instalado KDE/Gnome a base de snaps perderías la integración de las apps además de ocupar muchísimo espacio y memoria.

[…]

varias ventajas:

  • No necesita dependencias
  • Funciona en cualquier distribución
  • Puede disponer de su sandbox
  • A raíz de estar aisladas, mayor seguridad.

  • El desarrollador tiene el «control» completo sobre su aplicación y no
    depende de las distribuciones.

También tiene ciertas desventajas

  • Requiere mucho más espacio
  • Al disponer de sus propias dependencias, podrías tener varias veces
    la misma biblioteca cargada varias veces en RAM
  • Si hay una nueva versión de una dependencia, todas las aplicaciones
    deben actualizarse en vez de actualizar la propia dependencia
  • Al funcionar en su sandbox, el acceso a ciertos componentes y la
    comunicación entre aplicaciones es más compleja

Totalmente de acuerdo con las desventajas, aunque parece que se esta
trabajando en el tema.

Por ejemplo, en KDE están haciendo un «gran» paquete para las
bibliotecas y que las aplicaciones solo dependan de él.

De todas formas, a mi no termina de convencerme del todo tampoco. :^m

¿Dónde veo yo el futuro? Pues que los desarrolladores lanzarán sus
aplicaciones en algún contenedor tipo snap y el código fuente. Si tienes
la app en el repositorio de tu distribución lo instalas desde ahí, y si
no, pues sacas el snap «mientras tanto».

Me da a mi que no va a ir el asunto por ahí.

Os recuerdo que el último podcast de KDE España ha versado sobre el tema:

Hemos contado con el director técnico de Snapcraft, y le hice varias de
las objeciones que apunta @MiguelAngelLV, así que tenéis (casi) una
respuesta oficial del proyecto Snap a esos inconvenientes.

Salud y Revolución.

Lobo.

1 me gusta