Me encanta la idea detrás del complemento y jugué con él en una VM de Ubuntu.
Descripción general de Snapcraft
Snapcraft es una herramienta de creación y empaquetado que le ayuda a empaquetar su software
en un abrir y cerrar de ojos. Facilita la incorporación de componentes de
diferentes fuentes y la creación de tecnologías o soluciones. Conceptos clave
Un paquete .snap para el sistema Ubuntu Core contiene todas sus
dependencias. Esto tiene un par de ventajas sobre el manejo de dependencia tradicional basado en deb o
rpm, siendo la más importante que un
desarrollador siempre puede estar seguro de que no hay regresiones
desencadenadas por cambios en el sistema subyacente su aplicación.
Snapcraft facilita la agrupación de estas dependencias permitiéndole
especificarlas como "partes" en el archivo snapcraft.yaml. Rápido
Snappy Ubuntu Core es una nueva versión de Ubuntu con actualizaciones transaccionales
:una imagen de servidor mínima con las mismas bibliotecas que el
Ubuntu actual, pero las aplicaciones se proporcionan a través de un mecanismo más simple.
Las aplicaciones Snappy y el propio Ubuntu Core se pueden actualizar atómicamente y
revertir si es necesario. Las aplicaciones también están estrictamente confinadas y protegidas
para proteger sus datos y su sistema.
IoT ›Crear aplicaciones
¿En qué tecnologías se basa Snap? ¿Cómo se ven la arquitectura y los kits de herramientas? ¿Snap depende de las características del kernel de Linux?
Pregunto, porque me pregunto si en el futuro podré usar los mismos paquetes instantáneos también en macOS.
Aclaración, después del primer comentario:
Sé que macOS y Ubuntu no son compatibles con binarios. Se necesita una recompilación. Ya hay casi cualquier código abierto disponible para macOS con Homebrew. El desarrollador podría desarrollar en macOS e implementar en Ubuntu cuando Snap esté (en el futuro) disponible para macOS.
Respuesta aceptada:
Sí, gracias a la estabilidad de la interfaz syscall de Linux, esto es posible.
Una de las grandes apuestas de Linus Torvalds con los usuarios de Linux es que el conjunto de interfaces que ofrece el kernel sea estable. Mucha gente no aprecia el valor de esto, o lo desafiante que es como líder de un proyecto abierto lograr ese compromiso. Considere, por ejemplo, cuán impredecibles son los cambios en las API de GNOME, por el contrario. Cuando escuchas que Linus se vuelve intenso en una lista de correo, casi siempre se debe a que algún responsable del kernel decidió cambiar esa interfaz "porque tenían una idea mejor". Linus dice que puede innovar salvajemente DENTRO del núcleo, pero no rompa las aplicaciones del "espacio de usuario" que dependen de las llamadas al sistema existentes.
Relacionado:¿Cómo instalar numpy en Python 3.1?Como consecuencia de esa estabilidad, es posible que otros kernels ofrezcan las mismas llamadas al sistema, lo que permite que las aplicaciones creadas en Linux se ejecuten en esos otros kernels.
Un ejemplo de ello es el proyecto Joyent Triton, que ofrece llamadas al sistema compatibles con Linux en contenedores en SmartOS (un descendiente de IllumOS, un descendiente de Solaris).
Un ejemplo más conocido es el nuevo subsistema Linux en Windows.
Por supuesto, cuántas de las llamadas al sistema se ofrecen y qué tan compatibles son error por error, es la verdadera pregunta. Al menos por ahora, no hay otro entorno donde todas las llamadas al sistema necesarias estén en su lugar, porque las que usan las instantáneas son relativamente nuevas y profundas en la forma en que el kernel piensa sobre las cosas que administra.
Pero ciertamente llegarán, con el tiempo, y creo que las instantáneas se podrán usar en una amplia variedad de contextos.
Lo cual es genial, los parches son bienvenidos 🙂