Guía para principiantes sobre Snaps en Linux – Parte 1

En los últimos años, la comunidad de Linux ha sido bendecida con algunos avances notables en el área de gestión de paquetes en sistemas Linux, especialmente cuando se trata de empaquetado y distribución de software universal o multiplataforma. Uno de estos avances es el formato de paquete Snap desarrollado por Canonical, los creadores del popular Ubuntu Linux.

¿Qué son los paquetes Snap?

Snaps son aplicaciones multiplataforma, independientes de dependencias y fáciles de instalar, empaquetadas con todas sus dependencias para ejecutarse en todas las principales distribuciones de Linux. Desde una única compilación, un snap (aplicación) se ejecutará en todas las distribuciones de Linux admitidas en escritorio, en la nube y en IoT. Las distribuciones admitidas incluyen Ubuntu, Debian, Fedora, Arch Linux, Manjaro y CentOS/RHEL.

Los Snaps son seguros: están confinados y aislados para no comprometer todo el sistema. Se ejecutan bajo diferentes niveles de confinamiento (que es el grado de aislamiento del sistema base y entre sí). Más notablemente, cada snap tiene una interfaz cuidadosamente seleccionada por el creador del snap, basada en los requisitos del snap, para proporcionar acceso a recursos específicos del sistema fuera de su confinamiento, como acceso a la red, acceso al escritorio y más.

Otro concepto importante en el ecosistema de snap es Canales. Un canal determina qué versión de un snap está instalada y se sigue para actualizaciones y está compuesto por y se subdivide por, pistas, niveles de riesgo y ramas.

Los principales componentes del sistema de gestión de paquetes snap son:

  • snapd – el servicio en segundo plano que gestiona y mantiene tus snaps en un sistema Linux.
  • snap – tanto el formato de paquete de aplicación como la herramienta de interfaz de línea de comandos utilizada para instalar y eliminar snaps y hacer muchas otras cosas en el ecosistema snap.
  • snapcraft – el marco y la potente herramienta de línea de comandos para construir snaps.
  • tienda snap – un lugar donde los desarrolladores pueden compartir sus snaps y los usuarios de Linux buscar e instalarlos.

Además, los snaps también se actualizan automáticamente. Puedes configurar cuándo y cómo se realizan las actualizaciones. Por defecto, el demonio snapd comprueba las actualizaciones hasta cuatro veces al día: cada comprobación de actualización se llama actualización. También puedes iniciar manualmente una actualización.

Cómo instalar Snapd en Linux

Como se describe anteriormente, el demonio snapd es el servicio en segundo plano que gestiona y mantiene tu entorno de snap en un sistema Linux, implementando las políticas de confinamiento y controlando las interfaces que permiten a los snaps acceder a recursos específicos del sistema. También proporciona el comando snap y sirve para muchos otros propósitos.

Para instalar el paquete snapd en tu sistema, ejecuta el comando apropiado para tu distribución de Linux.

------------ [On Debian and Ubuntu] ------------ 
$ sudo apt update 
$ sudo apt install snapd

------------ [On Fedora Linux] ------------
# dnf install snapd			

------------ [On CentOS and RHEL] ------------
# yum install epel-release 
# yum install snapd		

------------ [On openSUSE - replace openSUSE_Leap_15.0 with the version] ------------
$ sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.0 snappy
$ sudo zypper --gpg-auto-import-keys refresh
$ sudo zypper dup --from snappy
$ sudo zypper install snapd

------------ [On Manjaro Linux] ------------
# pacman -S snapd

------------ [On Arch Linux] ------------
# git clone https://aur.archlinux.org/snapd.git
# cd snapd
# makepkg -si

Después de instalar snapd en tu sistema, habilita la unidad systemd que gestiona el principal socket de comunicación de snap, utilizando los comandos systemctl de la siguiente manera.

En Ubuntu y sus derivados, esto debería activarse automáticamente por el instalador del paquete.

$ sudo systemctl enable --now snapd.socket

Ten en cuenta que no puedes ejecutar el comando snap si el socket snapd.socket no está en ejecución. Ejecuta los siguientes comandos para comprobar si está activo y está habilitado para iniciar automáticamente en el arranque del sistema.

$ sudo systemctl is-active snapd.socket
$ sudo systemctl status snapd.socket
$ sudo systemctl is-enabled snapd.socket
Check Snapd Service Status

A continuación, habilita el soporte para snap clásico creando un enlace simbólico entre /var/lib/snapd/snap y /snap de la siguiente manera.

$ sudo ln -s /var/lib/snapd/snap /snap

Para verificar la versión de snapd y la herramienta de línea de comandos snap instalada en tu sistema, ejecuta el siguiente comando.

$ snap version 
Check Snapd and Snap Version

Cómo Instalar Snaps en Linux

El comando snap te permite instalar, configurar, actualizar y eliminar snaps, e interactuar con el ecosistema más amplio de snaps.

Antes de instalar un snap, puedes verificar si existe en la tienda de snaps. Por ejemplo, si la aplicación pertenece a la categoría de “servidores de chat” o “reproductores de medios“, puedes ejecutar estos comandos para buscarlo, lo que consultará la tienda en busca de paquetes disponibles en el canal estable.

$ snap find "chat servers"
$ snap find "media players"
Find Applications in Snap Store

Para mostrar información detallada sobre un snap, por ejemplo, rocketchat-server, puedes especificar su nombre o ruta. Ten en cuenta que los nombres se buscan tanto en la tienda de snaps como en los snaps instalados.

$ snap info rocketchat-server
Get Info About Application in Snap

Para instalar un snap en tu sistema, por ejemplo, rocketchat-server, ejecuta el siguiente comando. Si no se proporcionan opciones, se instala un snap que sigue el canal “estable”, con un confinamiento de seguridad estricto.

$ sudo snap install rocketchat-server
Install Application from Snap Store

Puedes optar por instalar desde un canal diferente: edge, beta, o candidate, por alguna razón u otra, utilizando las opciones --edge, --beta o --candidate respectivamente. O usa la opción --channel y especifica el canal del que deseas instalar.

$ sudo snap install --edge rocketchat-server        
$ sudo snap install --beta rocketchat-server
$ sudo snap install --candidate rocketchat-server

Gestionar Snaps en Linux

En esta sección, aprenderemos cómo gestionar snaps en el sistema Linux.

Ver Snaps Instalados

Para mostrar un resumen de los snaps instalados en tu sistema, utiliza el siguiente comando.

$ snap list
List Installed Snaps

Para enumerar la revisión actual de un snap que se está utilizando, especifique su nombre. También puede listar todas sus revisiones disponibles agregando la opción --all.

$ snap list mailspring
OR
$ snap list --all mailspring
List All Installation Versions of Snap

Actualizar y Revertir Snaps

Puede actualizar un snap especificado, o todos los snaps en el sistema si no se especifica ninguno de la siguiente manera. El comando refresh verifica el canal que está siendo rastreado por el snap y descarga e instala una versión más nueva del snap si está disponible.

$ sudo snap refresh mailspring
OR
$ sudo snap refresh		#update all snaps on the local system
Refresh a Snap

Después de actualizar una aplicación a una nueva versión, puede revertir a una versión usada anteriormente usando el comando revert. Tenga en cuenta que los datos asociados con el software también serán revertidos.

$ sudo snap revert mailspring
Revert a Snap to Older Version

Ahora, al verificar todas las revisiones de mailspring, la última revisión está deshabilitada, una revisión utilizada anteriormente está ahora activa.

$ snap list --all mailspring
Check Revision of Snap

Deshabilitar/Habilitar y Eliminar Snaps

Puede deshabilitar un snap si no desea usarlo. Cuando está deshabilitado, los binarios y servicios de un snap ya no estarán disponibles, sin embargo, todos los datos aún estarán allí.

$ sudo snap disable mailspring

Si necesita usar el snap nuevamente, puede habilitarlo nuevamente.

$ sudo snap enable mailspring

Para eliminar completamente un snap de su sistema, use el comando remove. Por defecto, se eliminan todas las revisiones de un snap.

$ sudo snap remove mailspring

Para eliminar una revisión específica, use la opción --revision de la siguiente manera.

$ sudo snap remove  --revision=482 mailspring

Es importante tener en cuenta que cuando eliminas un snap, sus datos (como datos internos de usuario, sistema y configuración) son guardados por snapd (versión 2.39 en adelante) como una instantánea, y almacenados en el sistema durante 31 días. En caso de que reinstales el snap dentro de los 31 días, puedes restaurar los datos.

Conclusión

Los snaps están ganando popularidad dentro de la comunidad de Linux, ya que proporcionan una forma fácil de instalar software en cualquier distribución de Linux. En esta guía, hemos mostrado cómo instalar y trabajar con snaps en Linux. Cubrimos cómo instalar snapd, instalar snaps, ver los snaps instalados, actualizar y revertir snaps, y deshabilitar/habilitar y eliminar snaps.

Puedes hacer preguntas o contactarnos a través del formulario de comentarios a continuación. En la próxima parte de esta guía, cubriremos la gestión de snaps (comandos, alias, servicios e instantáneas) en Linux.

Source:
https://www.tecmint.com/install-snap-in-linux/