# Snap (gestor de paquetes)

Snap (antes llamado Snappy) es un sistema de gestión de paquetes universales e implementación de software diseñado y creado originalmente por Canonical para el sistema operativo de teléfonos Ubuntu. Los paquetes, llamados 'snaps' y la herramienta para usarlos 'snapd', funcionan en un rango de distribuciones de Linux y, por lo tanto, permiten el despliegue de software en sentido ascendente. El sistema está diseñado para funcionar para el internet de las cosas, la nube y la computación de escritorio.

## Funcionalidad

Los paquetes de software "snap" son independientes y funcionan en una amplia gama de distribuciones de Linux. Esto es a diferencia de los enfoques tradicionales de administración de paquetes de Linux, como APT o YUM, que requieren paquetes específicamente adaptados para cada distribución de Linux, por lo que se agrega un retraso entre el desarrollo de la aplicación y su implementación para los usuarios finales.
Los propios snaps no dependen de ninguna "tienda de aplicaciones", se pueden obtener de cualquier fuente y, por lo tanto, se pueden usar para la implementación de software ascendente. Cuando se implementan copias instantáneas en Ubuntu y otras versiones de Linux, la tienda de aplicaciones de Ubuntu se usa como back-end predeterminado, pero también se pueden habilitar otras tiendas.
Los desarrolladores pueden usar snaps para crear herramientas de línea de comandos y servicios, así como aplicaciones de escritorio. Con la aplicación snap, las actualizaciones a través de la operación atómica o por deltas son posibles.
En junio de 2016, snapd se trasladó a una amplia gama de distribuciones de Linux para permitir el uso de las instantáneas en cualquier distribución de Linux, no solo en el núcleo de Ubuntu. snapd también está disponible o en curso para Arch Linux, CentOS, Debian, Fedora, Gentoo Linux, Solus, Manjaro Linux, Linux Mint, OpenEmbedded, Raspbian, OpenWrt y openSUSE.
Cada distribución es capaz de interpretar los metadatos de complemento para implementar la seguridad u otras expectativas del ajuste de una manera específica de distribución.

### Snapcraft

Snapcraft es una herramienta para que los desarrolladores empaqueten sus programas en el formato Snap para Snappy.

### formato de archivo '.snap'

El formato de archivo snap es un sistema de archivos comprimido único (basado en el formato squashfs) que se monta dinámicamente por el sistema operativo host, junto con los metadatos declarativos que el sistema snap interpreta para configurar un entorno de pruebas seguro con la forma adecuada para esa aplicación. La extensión del formato de archivo es .snap.

## Recepción y uso

Snappy Packaging se ha implementado en entornos de Internet de las cosas, que van desde productos orientados al consumidor hasta pasarelas de administración de dispositivos empresariales. Snappy se incluye de forma predeterminada en las imágenes de escritorio de Ubuntu a partir de la versión 16.04.

### Críticas

El desarrollador de la herramienta de captura de pantalla Peek suspendió el soporte para paquetes Snap, mientras continúa el apoyo a Flatpak y AppImage, declarando que
* Snap sigue siendo "principalmente un show de Ubuntu", criticando el hecho de que snapd ya no está disponible en el repositorio oficial de Arch Linux,
* Usar snap requiere más tiempo que Flatpak o AppImage para los desarrolladores,
* Snap tiene un uso menos que satisfactorio en plataformas, y
* Ubuntu Software Center no aprovecha los datos de AppStream, ya que requiere datos de entrada por separado.