Gestión de paquetes Snap en Ubuntu Server
¿Qué es Snap?
Snap es un sistema de paquetes universal desarrollado por Canonical. Los snaps son paquetes autocontenidos que incluyen la aplicación y todas sus dependencias, se ejecutan en un entorno aislado (sandbox) y se actualizan automáticamente. El demonio que los gestiona es snapd.
En Ubuntu Server, snapd viene instalado por defecto desde Ubuntu 16.04. Los snaps se obtienen de la Snap Store (store.snapcraft.io).
Instalar y comprobar snapd
# apt install snapd # instalar snapd si no está presente
$ systemctl status snapd # comprobar que el servicio está activo
$ snap version # ver versión de snap y snapd
Canales de distribución
Cada snap se distribuye a través de canales que combinan una pista (track) y un nivel de riesgo:
stable→ versión de producción recomendada (por defecto)candidate→ candidata a stable, en pruebas finalesbeta→ funcionalidades nuevas en pruebasedge→ último commit, sin pruebas
El canal completo tiene la forma track/riesgo, por ejemplo: 22/stable.
Tipos de confinamiento
strict→ confinamiento total mediante AppArmor/seccomp; acceso limitado al sistemaclassic→ acceso completo al sistema, similar a un paquete deb tradicionaldevmode→ modo desarrollador, sin restricciones, solo para pruebas
Comandos principales
Buscar e instalar:
$ snap find nginx # buscar snaps por nombre
$ snap info lxd # información detallada, canales disponibles
# snap install lxd # instalar desde el canal stable
# snap install lxd --channel=5.21/stable # instalar desde un canal concreto
# snap install node --classic # instalar con confinamiento classic
Listar y actualizar:
$ snap list # listar snaps instalados
$ snap list --all # listar todas las revisiones instaladas
# snap refresh # actualizar todos los snaps
# snap refresh lxd # actualizar un snap concreto
# snap refresh lxd --channel=5.21/stable # cambiar de canal al actualizar
Eliminar y revertir:
# snap remove lxd # eliminar el snap
# snap remove lxd --revision=28301 # eliminar una revisión concreta
# snap revert lxd # volver a la revisión anterior
Servicios de snap:
$ snap services # listar servicios de todos los snaps
$ snap services lxd # servicios del snap lxd
# snap start lxd
# snap stop lxd
# snap restart lxd
# snap enable lxd # habilitar al arranque
# snap disable lxd # deshabilitar al arranque
Conexiones y permisos:
$ snap connections lxd # ver interfaces conectadas
# snap connect lxd:network
# snap disconnect lxd:network
Actualizaciones automáticas
Snapd actualiza los snaps automáticamente hasta 4 veces al día. Para ver y controlar la ventana de actualización:
$ snap get system refresh.timer # ver programación actual
# snap set system refresh.timer=02:00-04:00 # actualizar solo entre 2 y 4 AM
# snap set system refresh.hold=48h # posponer 48 horas las actualizaciones