Los snaps son varias cosas, todas a la vez. Son aplicaciones de Linux confinadas e independientes que agrupan todas sus dependencias necesarias, lo que significa que no necesitan depender del sistema subyacente y pueden ejecutarse independientemente de él. Los snaps también se empaquetan como sistemas de archivos Squashfs comprimidos, utilizando la extensión .snap. Para la mayoría de los usuarios, son una abstracción para obtener software en su distribución de Linux, de una manera simple y directa. Pero puede que se pregunte, ¿qué acecha dentro?
Desempaquetando el sistema de archivos squashFS
Si deseas comprobar el contenido de un complemento, puede hacerlo. Primero, descárguelo, luego extraiga el complemento usando la herramienta unsquashfs en la línea de comando. Una gran cantidad de distribuciones de Linux deberían tener esta utilidad instalada o disponible en los archivos, y deberían admitir los métodos de compresión utilizados para las instantáneas (xz y lzo).
snap download “snap name”
unsquashfs “snap name”
Sin ningún otro argumento proporcionado, el complemento (con la extensión .snap) se descomprimirá en una carpeta llamada squashfs-root en el directorio de trabajo actual.
unsquashfs kblocks_79.snap
Parallel unsquashfs: Using 8 processors
563 inodes (697 blocks) to write
[=========================================|] 697/697 100%
created 500 files
created 166 directories
created 62 symlinks
created 0 devices
created 0 fifos
El contenido de un chasquido
Para permitir que las aplicaciones se ejecuten independientemente del sistema subyacente, las instantáneas crean un entorno aislado para las aplicaciones contenidas. Para broches estrictamente confinados, la aplicación verá el broche de base como su sistema de archivos raíz y, por lo tanto, espere ver el diseño tradicional de carpetas dentro de su entorno. Normalmente, squashfs-root contendrá diferentes carpetas como / bin, / lib, / usr y otras.
drwxr-xr-x 9 igor igor 4096 Mar 9 14:49 ./
drwxrwxrwx 11 igor igor 4096 Mar 23 12:21 ../
drwxr-xr-x 5 igor igor 4096 Mar 9 14:48 etc/
drwxr-xr-x 2 igor igor 4096 Mar 9 14:48 kf5/
-rwxr-xr-x 1 igor igor 8428 Mar 9 14:43 kf5-launch*
-rwxr-xr-x 1 igor igor 3783 Mar 9 14:43 kf5-locale-gen*
-rwxr-xr-x 1 igor igor 191 Mar 9 14:43 kf5-portal-launch*
drwxr-xr-x 3 igor igor 4096 Mar 9 14:48 lib/
drwxr-xr-x 2 igor igor 4096 Mar 9 14:48 lib64/
drwxr-xr-x 3 igor igor 4096 Mar 9 14:49 meta/
drwxr-xr-x 3 igor igor 4096 Mar 9 14:49 snap/
drwxr-xr-x 5 igor igor 4096 Mar 9 14:48 usr
Algunos de los caminos serán obvios y familiares. Algunos, incluidos varios archivos, serán diferentes.
Punto de entrada de la aplicación
Cuando los desarrolladores empaquetan instantáneas, necesitan declarar el nombre de la aplicación y el comando en el archivo snapcraft.yaml. En su mayor parte, no existe un requisito estricto sobre cómo deben especificarse, y los desarrolladores pueden usar cualquier variación que deseesn. El comando de la aplicación no tiene que ser idéntico a cómo se vería usando el empaquetado tradicional de Linux.
Además, snapcraft también ayuda a los desarrolladores a crear algunos de los elementos necesarios del entorno de ejecución de la aplicación, incluidas diferentes variables y rutas relativas. Puede inspeccionar el aspecto de esta configuración comprobando cualquier script disponible dentro del complemento.
Meta
Esta carpeta contiene varios archivos declarativos y de configuración que describen el comportamiento del complemento. Puede incluir varios componentes: archivo snap.yaml que contiene los detalles básicos de snap, una lista de enchufes y ranuras, cualquier demonio y más; ganchos que se activan en eventos específicos; Elementos de la GUI como archivos de iconos y archivos de escritorio para el complemento.
Quebrar
El directorio snap (si está presente) puede contener el cadena de mando declaración, una lista de comandos que se ejecutan antes de las aplicaciones reales incluidas en el complemento. Esto puede ayudar a configurar el entorno que necesitan las instantáneas, sin tener que recurrir al complicado uso de scripts de envoltura.
Y más…
Su complemento (o un complemento) podría tener solo un puñado de carpetas, o una amplia gama de ellas, incluidas las rutas y la estructura personalizadas. Los contenidos diferirán de una aplicación a otra, pero al final del día, no hay un gran misterio sobre qué son las instantáneas. Cualquiera puede descargar, descomprimir e inspeccionar cualquier complemento y ver exactamente lo que hacen. En muchos casos, tendrá un rastro exacto de las variables de entorno y los comandos que se ejecutan. Si deseas aprender un poco más sobre qué más puede esperar en un instante, es posible que desees verificar el documentación en formato snap para otros detalles útiles.
Por último, si deseas experimentar, puede probar el práctico intento rápido comando: para realizar cambios rápidos y en vivo en las instantáneas y probar el comportamiento modificado. Esto puede resultar muy útil si deseas acelera tu desarrollo. Eso es todo lo que tuvimos hoy. Si tiene algún comentario o sugerencia, únase a nuestro foro para una discusión.
Foto por Michael Longmire sobre Unsplash.