Maybaygiare.org

Blog Network

Snap (administrador de paquetes)

Tienda Snapeditar

La tienda Snap permite a los desarrolladores publicar sus aplicaciones directamente a los usuarios. Con los enfoques tradicionales de gestión de paquetes de Linux como APT o YUM, las aplicaciones se empaquetan y distribuyen como parte del sistema operativo. Esto crea un retraso entre el desarrollo de la aplicación y su implementación para los usuarios finales. Por el contrario, los desarrolladores de aplicaciones pueden publicar sus aplicaciones en Snap Store y enviarlas directamente a los usuarios sin intervención de los encargados de la distribución.

Todas las aplicaciones cargadas en la tienda Snap se someten a pruebas automáticas, incluido un análisis de malware. Sin embargo, las aplicaciones Snap no reciben el mismo nivel de verificación que el software en los archivos regulares de Ubuntu. En un caso, en mayo de 2018, se encontró que dos aplicaciones del mismo desarrollador contenían un minero de criptomonedas que se ejecutaba en segundo plano durante la ejecución de la aplicación. Cuando se encontró este problema, Canonical eliminó las aplicaciones de la Tienda de Snap y transfirió la propiedad de los Snaps a un tercero de confianza que volvió a publicar los Snaps sin la presencia del minero. Aunque el sandbox de Snap reduce el impacto de una aplicación maliciosa, Canonical recomienda a los usuarios que solo instalen Snaps de editores en los que confíe el usuario.

Debido a que los paquetes de Snap Store son mantenidos por los propios desarrolladores, los encargados de la distribución no pueden garantizar que los paquetes cumplan con los estándares de calidad y se actualicen a tiempo. En un caso, Microsoft dejó una versión obsoleta de Skype en la tienda Snapcraft durante más de un año.

Aunque la tienda Snap de Canonical es actualmente la única tienda existente para snaps, Snap en sí se puede usar sin una tienda. Los paquetes Snap se pueden obtener de cualquier fuente, incluido el sitio web de un desarrollador. Adam Williamson, empleado de Red Hat, y Clement Lefebre, líder del proyecto Linux Mint, han criticado a Canonical por mantener algunas partes del lado del servidor de Snap Store de código cerrado. Clement afirma que esto crea un conflicto de intereses que daña la neutralidad de Snap dado que Canonical desarrolla Ubuntu.

Paquetes de Linux Universaleditar

Los Snaps son paquetes autónomos que funcionan en una amplia gama de distribuciones de Linux. Esto es diferente a los enfoques tradicionales de administración de paquetes de Linux, que requieren paquetes adaptados específicamente para cada distribución de Linux.

El formato de archivo snap es un único sistema de archivos comprimido que utiliza el formato SquashFS con la extensión .snap. Este sistema de archivos contiene la aplicación, las bibliotecas de las que depende y los metadatos declarativos. Snapd interpreta estos metadatos para configurar un entorno de pruebas seguro con una forma adecuada para esa aplicación. Después de la instalación, el sistema operativo host monta el snap y se descomprime sobre la marcha cuando se utilizan los archivos. Aunque esto tiene la ventaja de que los broches de presión usan menos espacio en disco, también significa que algunas aplicaciones grandes comienzan más lentamente.

Una diferencia significativa entre Snap y otros formatos de empaquetado universal de Linux, como Flatpak, es que Snap admite cualquier clase de aplicación Linux, como aplicaciones de escritorio, herramientas de servidor, aplicaciones de IoT e incluso servicios del sistema, como la pila de controladores de impresora. Para garantizar esto, Snap confía en systemd para funciones como ejecutar servicios del sistema activados por sockets en un instante. Esto hace que Snap solo funcione en distribuciones que usan este sistema de inicio.

Configurable sandboxEdit

las Aplicaciones en un instante se ejecutan en un contenedor con acceso limitado al sistema host. Mediante Interfaces, los usuarios pueden dar a una aplicación acceso a funciones adicionales del host, como grabar audio, acceder a dispositivos USB y grabar vídeo. Estas interfaces median API de Linux regulares para que las aplicaciones puedan funcionar en el entorno aislado sin necesidad de reescribirlas. Las aplicaciones de escritorio también pueden usar los Portales de escritorio XDG, una API estandarizada creada originalmente por el proyecto Flatpak para dar acceso a los recursos del host a las aplicaciones de escritorio aisladas. Estos portales a menudo proporcionan una mejor experiencia de usuario en comparación con las API nativas de Linux, ya que solicitan al usuario permiso para recursos como una cámara web en el momento en que la aplicación los usa. La desventaja es que las aplicaciones y los conjuntos de herramientas deben reescribirse para usar estas API más nuevas.

El sandbox de Snap también admite compartir datos y sockets Unix entre Snaps. Esto se usa a menudo para compartir bibliotecas y marcos de aplicaciones comunes entre instantáneas para reducir el tamaño de las instantáneas evitando la duplicación.

El Snap sandbox depende en gran medida del Módulo de seguridad de AppArmor Linux del núcleo de Linux de origen. Debido a que solo un Módulo de seguridad Linux (LSM) «principal» puede estar activo al mismo tiempo, la caja de arena de Snap es mucho menos segura cuando se habilita otro LSM principal. Como resultado, en distribuciones como Fedora que habilitan SELinux por defecto, el sandbox de Snap está muy degradado. Aunque Canonical está trabajando con muchos otros desarrolladores y empresas para hacer posible que varios LSM se ejecuten al mismo tiempo, esta solución aún está lejos.

El sandbox de ajuste impide que las aplicaciones de escritorio ajustadas accedan a los temas del sistema operativo host para evitar problemas de compatibilidad. Para que los Snaps usen un tema, también debe empaquetarse en un Snap separado. Muchos temas populares son empaquetados por los desarrolladores de Snap, pero algunos temas aún no son compatibles y los temas poco comunes deben instalarse manualmente. Si un tema no está disponible como un paquete Snap, los usuarios tienen que recurrir a elegir el mejor tema que coincida disponible. Se está trabajando para que sea más fácil para terceros empaquetar temas en un instante e instalar automáticamente temas de sistema poco comunes.

Actualizaciones automáticas y atómicaseditar

Varias veces al día, snapd comprueba si hay actualizaciones disponibles de todas las instantáneas y las instala en segundo plano mediante atomic operation. Las actualizaciones se pueden revertir y usar codificación delta para reducir el tamaño de descarga.

Los editores pueden lanzar y actualizar varias versiones de su software en paralelo utilizando canales. Cada canal tiene una pista y un riesgo específicos, que indican la versión y la estabilidad del software lanzado en ese canal. Al instalar una aplicación, Snap utiliza de forma predeterminada el canal latest/stable, que se actualizará automáticamente a las nuevas versiones principales del software cuando estén disponibles. Los editores pueden crear canales adicionales para dar a los usuarios la posibilidad de adherirse a versiones principales específicas de su software. Por ejemplo, un canal 2.0/stable permitiría a los usuarios adherirse a la versión 2.0 del software y solo obtener actualizaciones menores sin el riesgo de cambios incompatibles hacia atrás. Cuando el editor lanza una nueva versión principal en un nuevo canal, los usuarios pueden actualizar manualmente a la siguiente versión cuando lo deseen.

Aunque las actualizaciones automáticas no se pueden desactivar, hay muchas formas de configurar las actualizaciones para adaptarse a necesidades particulares. El usuario puede elegir permanecer en una versión principal específica del software especificando el canal, puede configurar el intervalo de actualización para tener tiempo de verificar manualmente las actualizaciones y puede mantener las actualizaciones hasta 60 días. Además, las actualizaciones también se desactivan automáticamente en las conexiones con contador. Incluso con estos controles, varios usuarios han expresado sus quejas sobre la falta de una opción para desactivar completamente las actualizaciones automáticas.

SnapcraftEdit

snapcraft

Snapcraft Logo

Developer(s)

Canonical Ltd.

Initial release

29 October 2015; 5 years ago

Stable release
4.4.2 / 13 November 2020; Hace 4 meses

Repositorio

https://github.com/snapcore/snapcraft

Escrito en

Python

sistema Operativo

Linux, macOS, Windows de Microsoft

Licencia

la GPLv3

sitio Web

snapcraft.io

Snapcraft es una herramienta para que los desarrolladores paquete de sus programas en el Complemento formato. Se ejecuta en cualquier distribución Linux compatible con Snap, macOS y Microsoft Windows. Snapcraft compila los paquetes en una máquina virtual mediante Multipaso para garantizar que el resultado de una compilación sea el mismo, independientemente de la distribución o el sistema operativo en los que se compila. Snapcraft es compatible con un gran número de herramientas de compilación y lenguajes de programación como Go, Java, JavaScript, Python, C/C++ y Rust. También permite importar metadatos de aplicaciones desde múltiples fuentes, como AppStream, git, scripts de shell y archivos setup.py.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.