Ubuntu y Snap

Hace tiempo que se escucha y se habla sobre snap, que para los que no sepan de que se trata es un sistema de empaquetado de apps, creado y diseñado por Canonical.

La diferencia principal entre el sistema de paquetes que usa ubuntu por defecto, con paquetes de extensión .deb y los snap, es que estos últimos dentro del empaquetado de la app, vienen incluida las dependencias que necesita para poder ejecutarse de modo autónomo.

Por lo tanto, un software instalado por snap, siempre que se haya empaquetado correctamente, debería de funcionar sin problemas de dependencias en cualquier sistema. Incluso después de actualizar el sistema (y por lo tanto las librerías que este utiliza) debería de seguir funcionando.

Esta es su principal virtud y problema. Virtud, porque estás apostando por un programa estable y funcional 100%, problema, porque no ocupará lo mismo un programa cuando usa librerías del sistema compartidos entre todos, que si cada programa viene con sus propias librerías, a parte del rendimiento.

El espacio extra que puede necesitar el sistema utilizando aplicaciones Snap, no es algo que nadie le de mucha importancia, estamos en unos tiempos en que el GB de disco suele ser barato y no nos preocupa mucho si un programa ocupa el doble, mientras tengamos estabilidad a la hora de poder ejecutarlo en cualquier momento.

No es así tanto el rendimiento, que hay muchos sitios donde se hace hincapié en una gran diferencia de rendimiento, por lo menos la primera vez que se ejecuta (en una sesión) una aplicación instalada por snap. No se si es la escusa a los que algunos se aferran frente a los cambios o frente a la imposición por las que a veces Canonical apuesta.

Da la sensación, que muchos están obcecados a que linux tenga que ejecutarse en una maquina escasa de recursos. Algunos no ven más allá de que Unity era un escritorio feo. Cuando Unity ha aportado (de manera más o menos acertada) una evolución, una necesidad de que no nos quedamos estancados en un linux arcaico, en buscar otras maneras de hacer las cosas.

Snap nació de esa necesidad. Da igual en que versión me estás ejecutando, no me importa. Me da igual si en una noche de locura te da por actualizar a la versión develop de Ubuntu. Las aplicaciones te va funcionar.

Para los que desarrollamos, nos encontramos con la tesitura de.. necesito php5, php6, php7 instalados en la misma máquina, necesitamos varias versiones de tomcat y jdk en la misma máquina, versiones de nodejs y unos cuantos eclipses. Porque tiene que ser todo eso un infierno de dependencias. Porque si quieres instalar un IDE, no te viene con todo lo necesario para ejecutarse, sea donde sea, no me cuentes rollos de dependencias, quiero ejecutarlo y que funcione, tengo una máquina potente, dámelo.

Vamos hacia un mundo de dockers. Un mundo virtualizado de máquinas en la nube que no vemos físicamente ni falta nos hace. Un mundo en entornos de desarrollo encapsulados y versionados al dedo. Snap, viene como anillo a ese dedo.

Instalando SNAP

¿Cómo instalar snap? desde un terminal, con un simple:

sudo apt install snapd

En este caso, ya lo tenemos listo y funcionalmente activo. Porque en las últimas versiones de Ubuntu (y por lo que se ha levantado tanto revuelo), te vienen varios elementos instalados a través de snap.

Comandos en SNAP

¿Cómo sabemos que paquetes tenemos instalados con snap?

snap list

En este caso, tenemos unos paquetes que vienen instalados por defecto, nos indican los nombre de paquete, versión, revisión, seguimiento, quien los controla. En este caso, todos del Sr. Canonical.

Vamos a instalar algo con snap

Primero de todo, es ver si hay algún paquete disponible para instalar, en este caso vamos a buscar si tenemos disponible vlc. Para ello utilizamos un:

snap find vlc

Entre los programas encontrados, vemos que está VLC media player, que es lo que buscamos. Concretamente la versión 3.0.6. Miremos más información sobre el paquete con:

snap info vlc

Podemos ver información sobre el paquete. En este caso, no nos informa de las dependencias que necesita el paquete, ya que ya las incorpora. Nos muestra las versiones disponibles en cada canal.

Si hacemos la instalación básica con snap, sería tal que así:

sudo snap install vlc

El se encarga de descargar todo y configurar el sistema para que encuentre correctamente todo.

Si lo lanzamos lo podemos ejecutar con normalidad.

Pero que pasaría si en vez de la versión estable, 3.0.6 nos gustaría probar y jugar un rato con la versión de desarrollo para ver cuales serían los avances y por donde va el desarrollo. Pues nos fijamos en el channel edge, van por la versión 4.0.0-dev-xxx, así que vamos a probar, desintalamos la versión que tenemos ahora con un:

sudo snap remove vlc

Y volvemos a instalar la aplicación, pero esta vez indicando que queremos la del canal edge. Así que vamos a ellos con un:

sudo snap install vlc --channel edge

Todo fino y sin problema alguno..

Y ahí lo tienes, sin mancillar las librerías del sistema. Sin comprometer la estabilidad del sistema.

Snap es una herramienta más que dispones ahí, para cuando la necesitas. Puedes usar tu sistema de paquetes normal .deb de toda la vida y complementarlo perfectamente con snap, donde este se queda corto, en necesidades concretas que snap se ajusta perfectamente a su cometido. Y eso, señores, es maravilloso, pese a quien le pese.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .