Snappy es un sistema de implementación de software y administración de paquetes para Linux. Simplifica la creación, entrega y actualización de paquetes de Linux a través de los denominados contenedores de software aislados, de distribución cruzada, sin dependencias y sin dependencia.
Estructura y funcionalidad de los paquetes instantáneos
Los paquetes Snap son imágenes del sistema de archivos comprimidas en formato SquashFS. Además del software real, contienen todas las dependencias, como bibliotecas, entornos de ejecución y herramientas externas. Solo se pueden subcontratar componentes como las bibliotecas fundamentales del sistema, los entornos de escritorio o los núcleos del sistema para separar instantáneas.
Leer: ¿Qué es PGP?
A diferencia de los paquetes tradicionales de Linux, los Snaps no se descomprimen durante la instalación. SquashFS permite una descompresión transparente de archivos individuales durante el tiempo de ejecución, lo que significa que no es necesario desempaquetarlos. En cambio, las imágenes del sistema de archivos comprimidas están en el directorio “/ var / lib / snapd / snaps /” y están montadas en “/ snaps /”. Cada contenedor tiene su propio subdirectorio para que no haya conflictos entre los paquetes.
El aislamiento de los contenedores va mucho más allá. Las aplicaciones Snap se ejecutan en sus propios entornos sandbox, que están aislados entre sí y del resto del sistema a través de AppArmor, los espacios de nombres del kernel y los cgroups. Las llamadas interfaces se utilizan para la asignación de recursos y la integración con otras aplicaciones y el sistema operativo. Se pueden utilizar para controlar y restringir el acceso a componentes de hardware, servicios del sistema, configuraciones, sistemas de archivos y mucho más.
Ventajas y desventajas en comparación con otros sistemas de paquetes
Los paquetes clásicos de Linux como DEB y RPM están estrechamente vinculados a una distribución específica. Los desarrolladores de software tienen que crear sus propios paquetes para cada sistema Linux o esperar hasta que los distribuidores hayan integrado la nueva versión. Con la ayuda de Snaps, los desarrolladores pueden ofrecer paquetes uniformes para todas las variantes de Linux que admiten el sistema de paquetes. A diferencia del sistema de paquetes Flatpack, que es comparable a Snap, Snaps puede contener no solo programas de instrucciones, sino también servicios del sistema o imágenes flash para dispositivos integrados.
Dado que los contenedores tienen muy pocas o ninguna dependencia y no tienen que integrarse en el resto del sistema, se pueden entregar actualizaciones más rápidas sin conflictos de versiones. A menudo se critica que el servicio de administración «snapd» no permite desactivar las actualizaciones automáticas. Sin embargo, es posible arreglar los paquetes a una versión principal y retener las actualizaciones hasta por 60 días. Las actualizaciones también se pueden revertir fácilmente para volver a una versión anterior.
Snappy está estrechamente vinculado a systemd, por lo que las distribuciones tradicionales como Slackware o Devuan no pueden usar fácilmente el sistema de paquetes. Además, todavía no es posible utilizar las extensiones de seguridad AppArmor y SELinux al mismo tiempo. Por lo tanto, el sandbox es mucho menos seguro en distribuciones como RHEL, SUSE y Fedora.
Los snaps tampoco ofrecen una protección completa contra el malware. Los paquetes de Snap Store pasan por varios controles de seguridad automatizados. Sin embargo, las auditorías de código, al igual que con los paquetes de los repositorios de las distribuciones, tienen lugar mucho menos. Canonical, la empresa responsable de Ubuntu y Snap, recomienda instalar Snaps solo de proveedores de confianza.
Hasta ahora, Canonical opera la única tienda de instantáneas cuyo software no es completamente gratuito. Sin embargo, Snaps también puede descargarse del sitio web del desarrollador e instalarse independientemente de una tienda Snap.
Leer: ¿Qué es la programación por pares?
Incorporar la administración del sistema y el desarrollo de aplicaciones
Dado que Snappy es desarrollado por Canonical, el sistema de paquetes está preinstalado desde Ubuntu 16.04. Para la mayoría de las otras distribuciones, hay paquetes correspondientes en los repositorios respectivos. El Centro de software de Gnome admite Snaps desde el principio. Algunos otros administradores de paquetes como KDE Discover pueden actualizarse en consecuencia.
El servicio en segundo plano «snapd» es responsable de la administración de las instantáneas. Los administradores utilizan el programa de línea de comandos «snap» para instalar, desinstalar, actualizar y configurar los paquetes. El programa «snapcraft» se utiliza para crear sus propias instantáneas. Los desarrolladores deben crear un archivo llamado «snapcraft.yaml» y proporcionar información sobre cómo construir e instalar el paquete. Esto incluye metadatos, de construcción y de tiempo de ejecución dependencias, opciones de compilación y las interfaces necesarias.