Canonical, la compañía detrás de Ubuntu Linux, ha lanzado un nuevo sistema operativo en la nube, llamado Snappy Ubuntu Core. Mientras que Ubuntu Core puede ser un nombre familiar para muchos, lo que significa un sistema Ubuntu minimalista, el nuevo enfoque «snappy» no es algo con lo que muchos estarían familiarizados. Aunque Snappy Ubuntu Core está pensado para los sistemas en la nube, Ubuntu está planeando trasladar su sistema operativo de escritorio a una base snappy en un futuro próximo.

Un nuevo enfoque de gestión de paquetes

Los usuarios veteranos de Ubuntu han estado bastante familiarizados y cómodos usando apt y sus front-ends para instalar paquetes deb en sus sistemas. Pero Ubuntu está cambiando poco a poco el sistema de empaquetado probado por el tiempo a algo nuevo llamado «snappy». La nomenclatura se supone que indica la mejora de la velocidad que aporta este nuevo sistema de empaquetado. Según el sitio web para desarrolladores de Ubuntu

Snappy pretende aumentar la seguridad mediante el aislamiento. Cada aplicación y componente del sistema se «sentará» esencialmente en su propio contenedor. Los archivos del sistema operativo y de las aplicaciones se mantienen perfectamente separados y son de sólo lectura, lo que significa que no pueden ser manipulados.

Además de aumentar la seguridad, snappy facilitará las actualizaciones del sistema y de las aplicaciones. El nuevo enfoque ofrece actualizaciones «transaccionales» basadas en imágenes, lo que significa que una actualización tendrá éxito o fracasará por completo, por lo que se acabaron las actualizaciones parciales que dejan los sistemas rotos. Esto hará que el mantenimiento del sistema sea mucho más fiable, rápido y fácil tanto para el usuario final como para el desarrollador.

¿Escritorios ágiles?

Mientras los primeros usuarios intentan entender lo que significa snappy para ellos y cómo sacarle el máximo partido, Ubuntu ha anunciado que para la versión 15.10 se podrá descargar una nueva imagen de escritorio basada en snappy. Esto, por supuesto, planteó aún más preguntas, sobre todo acerca de la futura disponibilidad de los paquetes deb y la relación de Ubuntu con Debian, en la que todavía se basa.

Si estás familiarizado con apt y lo utilizas en tu ordenador de sobremesa o portátil, puedes sentarte y relajarte: no es necesario que te pases a snappy si no quieres, al menos no durante unos años. Ubuntu está haciendo que snappy esté disponible como una vuelta separada para su 15.10 «Wiliy Werewolf», mientras que la rama principal probablemente permanecerá basada en deb.

A partir de la 16.04, los planes de Canonical son hacer una transición hacia el uso de snappy cada vez más. Por supuesto, 16.04 será la próxima versión LTS, y para ello, Canonical no planea dejar de usar debs: Podrás elegir entre un sistema basado en deb y snappy. Con el ciclo de soporte de tres años de 16.04, tus debs estarán garantizados para funcionar hasta bien entrado el 2019.

Dicho esto, el sistema base de las nuevas iteraciones de Ubuntu Desktop probablemente seguirá estando basado en Debian; no hay planes de hacer todo «snappy» todavía.

Probando snappy

Para tener una primera «sensación» de snappy, si no puedes esperar a la versión 15.10, puedes probar Snappy Ubuntu Core. Aunque la imagen del sistema disponible está pensada para ejecutarse en la nube, con las instrucciones de Ubuntu puedes importarla fácilmente a una máquina virtual, aunque necesitará algo de preparación. Probablemente la forma más fácil de conseguir Snappy es probarlo a través de Vagrant; eso hace que el despliegue de imágenes de Virtualbox desechables sea una brisa.

Primero necesitas instalar el propio vagrant:

sudoapt-get updatesudoapt-get install vagrant

Escoge o crea un directorio donde quieras desplegar la imagen virtual de Snappy. En este caso, será «~/Snappy».

Primero crea el directorio

mkdir ~/Snappy

Luego cámbialo a

cd ~/Snappy

El comando vagrant init colocará un «Vagrantfile» aquí. Para preparar el despliegue:

vagrant init http://cloud-images.ubuntu.com/snappy/15.04/core/stable/current/core-stable-amd64-vagrant.box

El comando

vagrant up

descargará una caja Snappy Ubuntu Core pre-construida con vagrant y la encenderá. (Puede utilizar el mismo comando más tarde para iniciar la caja).

Puede iniciar la sesión con

vagrant ssh

Inicie sesión en Ubuntu Snappy Core con vagrant ssh.

Conceptos básicos de Snappy

Una vez iniciada la sesión, puedes probar cómo funciona snappy con las siguientes funciones básicas

Primero comprueba la versión del sistema y la información básica:

snappy info

Comprueba la versión del sistema y la información básica: snappy info.

Se te presentará una información mínima sobre tu sistema, incluyendo los frameworks y aplicaciones instalados. El núcleo de Ubuntu Snappy es extensible con frameworks como docker, sobre el que se pueden construir aplicaciones.

La instalación de frameworks y aplicaciones es tan sencilla como lo era con apt:

sudo snappy install docker

instalará el framework docker, mientras que

sudo snappy install hello-world

instalará la aplicación «hello world» de Canonical. No hay diferencia en la instalación de los frameworks y las aplicaciones, todos vienen como «imágenes». También obtendrás una bonita barra de progreso:

Instalar frameworks y aplicaciones en Ubuntu Snappy Core.

Ejecutando snappy info de nuevo se reflejarán los cambios.

La ejecución de snappy info reflejará los cambios.

Para actualizar el sistema, se puede utilizar un único comando de actualización, a diferencia de lo que ocurría anteriormente con la actualización (por ejemplo, la obtención de información actualizada de los paquetes) y la actualización (por ejemplo, la instalación de paquetes actualizados) como con apt. Con snappy, es tan sencillo como

sudo snappy update

Actualice el Snappy Core de Ubuntu con: sudo snappy update.

En este caso, sólo ha actualizado un único paquete.

Para listar los paquetes instalados con la información de la versión, escriba

snappy list -v

Muestra el conjunto mínimo de paquetes que están instalados. Es interesante notar que el sistema base está presente en sólo dos paquetes, ubuntu-core y generic-amd64. Cualquier otra cosa que haya ahí debes haberla instalado tú mismo, o bien venía con la imagen virtual.

Muestra el conjunto mínimo de paquetes instalados.

El paquete generic-amd64 muestra dos versiones aquí, 1.1 y 1.1.1. El asterisco (*) al lado de la 1.1.1 muestra que ésta es la que se utiliza activamente. Para volver a la versión anterior, sólo tiene que utilizar la opción rollback:

sudo snappy rollback generic-amd64

snappy list -v mostrará que ha tenido éxito:

Para volver a la versión anterior basta con utilizar la opción de retroceso.

Snappy también permite buscar los paquetes disponibles, que en el momento de escribir este artículo todavía son bastante escasos:

snappy search

o puedes buscar por palabras clave específicas, por ejemplo

snappy search docker

Snappy también permite buscar paquetes disponibles.

Para obtener más información sobre las funciones disponibles de snappy, puedes utilizar su ayuda en línea

snappy –help

o consultar los tutoriales en el sitio web para desarrolladores de Ubuntu para obtener más ejemplos. Desgraciadamente, man no está disponible en Snappy Ubuntu Core por defecto y aún no hay un paquete snappy para man, por lo que las páginas man más detalladas aún no se ven.

Una vez que hayas terminado con Snappy Ubuntu Core, puedes salir del entorno virtual escribiendo

salir de

y apagar la máquina virtual con

vagrant halt

Para deshacerse de la máquina virtual utilice

vagrant destroy

Conclusión

Snappy ofrece un nuevo enfoque hacia la gestión de paquetes de Linux, simplificando las actualizaciones, las instalaciones, mejorando la seguridad y haciendo más fácil para los desarrolladores proporcionar todo en un solo paquete que se necesita para la instalación. Snappy es el comienzo de algo nuevo que tiene el potencial de cambiar la forma en que pensamos y usamos nuestros sistemas basados en Ubuntu en el futuro previsible. Aunque parece novedoso e inusual, también es bastante fácil y tan ergonómico como puede ser una utilidad de línea de comandos.