En los últimos años, la comunidad Linux ha sido bendecida con algunos avances notables en el área de la gestión de paquetes en los sistemas Linux, especialmente cuando se trata de empaquetado y distribución de software universal o de distribución cruzada. Uno de estos avances es el formato de paquete Snap desarrollado por Canonical, los creadores del popular Ubuntu Linux.
¿Qué son los paquetes Snap?
Los Snap son aplicaciones de distribución cruzada, libres de dependencias y fáciles de instalar, empaquetadas con todas sus dependencias para ejecutarse en las principales distribuciones de Linux. A partir de una única compilación, un snap (aplicación) se ejecutará en todas las distribuciones de Linux compatibles en el escritorio, en la nube y en el IoT. Las distribuciones soportadas incluyen Ubuntu, Debian, Fedora, Arch Linux, Manjaro, y CentOS/RHEL.
Las snap son seguras – están confinadas y en caja de arena para que no comprometan 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 requerimientos del snap, para proveer acceso a recursos específicos del sistema fuera de su confinamiento, tales como acceso a la red, acceso al escritorio, y más.
Otro concepto importante en el ecosistema de snap son los Canales. Un canal determina qué versión de un snap se instala y se rastrea para las actualizaciones y se compone de 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 de fondo que gestiona y mantiene sus 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 de trabajo y la potente herramienta de línea de comandos para construir snaps.
- snap store – un lugar donde los desarrolladores pueden compartir sus snaps y los usuarios de Linux buscarlos e instalarlos.
Además, los snaps también se actualizan automáticamente. Se puede configurar cuándo y cómo se producen las actualizaciones. Por defecto, el demonio snapd comprueba las actualizaciones hasta cuatro veces al día: cada comprobación de actualización se denomina refresco. También puede iniciar manualmente un refresco.
Cómo instalar Snapd en Linux
Como se ha descrito anteriormente, el demonio snapd es el servicio de fondo que gestiona y mantiene su entorno 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 su sistema, ejecute el comando apropiado para su distribución de Linux.
------------ ------------ $ sudo apt update $ sudo apt install snapd------------ ------------# dnf install snapd------------ ------------# yum install epel-release # yum install snapd------------ ------------$ 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------------ ------------# pacman -S snapd------------ ------------# git clone https://aur.archlinux.org/snapd.git# cd snapd# makepkg -si
Después de instalar snapd en su sistema, habilite la unidad systemd que gestiona el socket de comunicación principal de snap, utilizando los comandos systemctl de la siguiente manera.
En Ubuntu y sus derivados, esto debería ser activado automáticamente por el instalador del paquete.
$ sudo systemctl enable --now snapd.socket
Tenga en cuenta que no puede ejecutar el comando snap si el snapd.socket no se está ejecutando. Ejecute los siguientes comandos para comprobar si está activo y está habilitado para iniciarse automáticamente al arrancar el sistema.
$ sudo systemctl is-active snapd.socket$ sudo systemctl status snapd.socket$ sudo systemctl is-enabled snapd.socket
A continuación, habilite el soporte de snap clásico creando un enlace simbólico entre /var/lib/snapd/snap y /snap como se indica a continuación.
$ sudo ln -s /var/lib/snapd/snap /snap
Para comprobar la versión de snapd y de la herramienta de línea de comandos snap instalada en su sistema, ejecute el siguiente comando.
$ snap version
Cómo instalar snaps en Linux
El comando snap le permite instalar, configurar, actualizar y eliminar snaps, e interactuar con el ecosistema snap más amplio.
Antes de instalar un snap, puede comprobar si existe en el almacén snap. Por ejemplo, si la aplicación pertenece a la categoría de «servidores de chat» o «reproductores multimedia», puede ejecutar estos comandos para buscarla, que consultarán la tienda en busca de paquetes disponibles en el canal estable.
$ snap find "chat servers"$ snap find "media players"
Para mostrar información detallada sobre un snap, por ejemplo, rocketchat-server, puede especificar su nombre o su ruta. Tenga en cuenta que los nombres se buscan tanto en el almacén de snap como en los snaps instalados.
$ snap info rocketchat-server
Para instalar un snap en su sistema, por ejemplo, rocketchat-server, ejecute el siguiente comando. Si no se proporciona ninguna opción, se instala un snap rastreando el canal «estable», con un estricto confinamiento de seguridad.
$ sudo snap install rocketchat-server
Puede optar por instalar desde un canal diferente: edge, beta o candidate, por una u otra razón, utilizando las opciones --edge
, --beta
o --candidate
respectivamente. O utilice la opción --channel
y especifique el canal desde el que desea instalar.
$ sudo snap install --edge rocketchat-server $ sudo snap install --beta rocketchat-server$ sudo snap install --candidate rocketchat-server
Administrar snaps en Linux
En esta sección, aprenderemos a administrar snaps en el sistema Linux.
Visualización de snaps instalados
Para mostrar un resumen de los snaps instalados en su sistema, utilice el siguiente comando.
$ snap list
Para listar la revisión actual de un snap que se está utilizando, especifique su nombre. También se pueden listar todas las revisiones disponibles añadiendo la opción --all
.
$ snap list mailspringOR$ snap list --all mailspring
Actualización y reversión de snaps
Se puede actualizar un snap especificado, o todos los snaps del sistema si no se especifica ninguno de la siguiente manera. El comando refrescar 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 mailspringOR$ sudo snap refresh#update all snaps on the local system
Después de actualizar una aplicación a una nueva versión, se puede revertir a una versión usada previamente usando el comando revertir. Tenga en cuenta que los datos asociados al software también se revertirán.
$ sudo snap revert mailspring
Ahora, cuando se comprueban todas las revisiones de mailspring, se desactiva la última revisión, pasando a estar activa una revisión utilizada anteriormente.
$ snap list --all mailspring
Desactivar/desactivar y eliminar snaps
Puede desactivar un snap si no desea utilizarlo. Cuando se desactiva, los binarios y servicios de un snap ya no estarán disponibles, sin embargo, todos los datos seguirán estando ahí.
$ sudo snap disable mailspring
Si necesita utilizar el snap de nuevo, puede volver a activarlo.
$ sudo snap enable mailspring
Para eliminar completamente un snap de su sistema, utilice el comando remove. Por defecto, se eliminan todas las revisiones de un snap.
$ sudo snap remove mailspring
Para eliminar una revisión específica, utilice la opción --revision
de la siguiente manera.
$ sudo snap remove --revision=482 mailspring
Es clave tener en cuenta que cuando se elimina un snap, sus datos (como los datos internos del usuario, del sistema y de la configuración) son guardados por snapd (versión 2.39 y superior) como una instantánea, y almacenados en el sistema durante 31 días. En caso de que reinstale el snap dentro de los 31 días, puede restaurar los datos.
Conclusión
Los snapd son cada vez más populares dentro de la comunidad Linux, ya que proporcionan una manera fácil de instalar software en cualquier distribución Linux. En esta guía, hemos mostrado cómo instalar y trabajar con snaps en Linux. Hemos cubierto cómo instalar snapd, instalar snaps, ver los snaps instalados, actualizar y revertir snaps, y desactivar/activar y eliminar snaps.
Puedes hacer preguntas o ponerte en contacto con nosotros a través del formulario de comentarios de abajo. En la siguiente parte de esta guía, cubriremos la gestión de snaps (comandos, alias, servicios e instantáneas) en Linux.