Lanzamiento del sistema de paquete autónomo Flatpak 1.18.0

Tras un año y medio de desarrollo, se ha lanzado una nueva versión estable de Flatpak 1.18. Esta versión proporciona un sistema para crear paquetes autónomos que no están vinculados a distribuciones específicas. Linux y se ejecuta en un contenedor especial que aísla la aplicación del resto del sistema. Se proporciona soporte para ejecutar paquetes Flatpak para Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Menta, Alt Linux и UbuntuLos paquetes Flatpak están incluidos en el repositorio de Fedora y son compatibles con los programas de gestión de aplicaciones estándar de GNOME y KDE.

Innovaciones clave en la rama Flatpak 1.18:

  • Se ha implementado la compatibilidad con permisos condicionales. Esto permite comprobar la disponibilidad de ciertas capacidades en el sistema o en tiempo de ejecución al solicitar permisos. Por ejemplo, si necesita acceso a un dispositivo de entrada, en lugar de "--device=all", puede solicitar el permiso "--device-if=all:!has-input-device --device=input". Esto otorgará acceso solo a los dispositivos de entrada o, si el acceso selectivo no es compatible en tiempo de ejecución, se otorgará acceso a todos los dispositivos. Del mismo modo, puede solicitar acceso a dispositivos USB ("has-usb-device" y "has-usb-portal") o subsistemas compartidos.
  • Se permitió el acceso al dispositivo /dev/ntsync
    el módulo del núcleo NTSYNC, que implementa un conjunto de primitivas de sincronización utilizadas en el núcleo Windows NT y permitiendo un aumento significativo de la productividad Windows-juegos lanzados usando Wine.
  • Se ha habilitado la compatibilidad con VA-API para la decodificación de vídeo acelerada por hardware en las GPU Intel Xe.
  • Se ha implementado el acceso al dispositivo /dev/kfd (controlador de Kernel Fusion) utilizando los permisos otorgados para los dispositivos DRI. El controlador kfd implementa una interfaz para realizar cálculos directamente en las GPU de AMD desde aplicaciones que utilizan AMD ROCm, HIP y OpenCL.
  • Se ha añadido compatibilidad para usar opciones de línea de comandos para otorgar acceso a directorios a aplicaciones en entornos aislados.
  • Se ha añadido compatibilidad con el directorio "preinstall.d", que define la lista de aplicaciones Flatpak preinstaladas (para incluir aplicaciones Flatpak en el sistema operativo).
  • Ahora se permite la instalación directa de aplicaciones desde imágenes de contenedores OCI, que se pueden descargar desde repositorios OCI nativos y archivos locales.
  • Se ha añadido compatibilidad con las URI "flatpak+https://" al comando "flatpak install --from".
  • Se ha añadido la opción "--clear-env" al comando "flatpak run" para borrar las variables de entorno antes de ejecutar la aplicación.
  • Se ha habilitado la posibilidad de exportar el directorio raíz del entorno anfitrión a un entorno de aplicación aislado con acceso a través del directorio /run/host/root.
  • Se agregó la capacidad de mostrar los resultados de la ejecución de comandos en formato JSON.
  • Se ha reforzado el aislamiento del entorno de compilación: el comando "flatpak build" ya no proporciona acceso al host de forma predeterminada.
  • Se agregó el comando "reinstall" para reinstalar las dependencias (paquete).
  • La configuración predeterminada de D-Bus se ha movido del directorio /etc al directorio /usr.
  • Tiempo de inicio reducido al usar el intérprete de comandos fish.
  • Se ha añadido una función a libflatpak para recuperar información sobre la hora de creación de la configuración, lo que permite a aplicaciones como GNOME Software determinar cuándo es necesario actualizar sus datos almacenados en caché.
  • Se ha eliminado la opción de compilación http_backend; ahora se utiliza la biblioteca libcurl en lugar de libsoup2 para la carga a través de HTTP/HTTPS.
  • Por defecto, está habilitado el uso de secuencias de escape para indicar el progreso de una operación.
  • Se permite delegar permisos de dispositivo a entornos de pruebas anidados creados a través de portales Flatpak.
  • Para las aplicaciones distribuidas como imágenes OCI, se ha implementado un mecanismo de "datos adicionales" que permite, por ejemplo, la reproducción de vídeo h.265 en paquetes Fedora Flatpak. Linux.
  • Se ha añadido compatibilidad con la compresión de paquetes OCI mediante el algoritmo zstd, que proporciona una compresión de datos más eficiente. Gzip sigue siendo el método de compresión predeterminado para una máxima compatibilidad.

Flatpak simplifica la distribución de programas no incluidos en los repositorios de distribución estándar al crear un contenedor único y universal, eliminando la necesidad de que los desarrolladores creen compilaciones separadas para cada distribución. Para los usuarios preocupados por la seguridad, Flatpak les permite ejecutar una aplicación cuestionable en un contenedor, otorgando acceso selectivo solo a las funciones de red y archivos de usuario necesarios. Para los usuarios interesados ​​en nuevas versiones, Flatpak les permite instalar las últimas versiones de prueba y estables de las aplicaciones sin realizar ningún cambio en el sistema. Por ejemplo, se crean paquetes Flatpak para LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Telegram Desktop, Android Estudio, etc.

Para reducir el tamaño, en el paquete solo se incluyen dependencias específicas de la aplicación. Las bibliotecas básicas de sistema y gráficos (bibliotecas GTK, Qt, GNOME y KDE, etc.) se suministran en forma de complementos para entornos de ejecución estándar. La diferencia clave entre Flatpak y Snap es que Snap utiliza los componentes del entorno principal del sistema y el aislamiento basado en el filtrado de llamadas del sistema, mientras que Flatpak crea un contenedor separado del sistema y opera con grandes conjuntos de tiempo de ejecución, proporcionando no paquetes como dependencias, sino estándar. entorno del sistema (por ejemplo, todas las bibliotecas necesarias para el funcionamiento de los programas GNOME o KDE).

Además del entorno de sistema estándar (tiempo de ejecución), instalado a través de un repositorio especial, se proporcionan dependencias adicionales (paquete) necesarias para el funcionamiento de la aplicación. En total, "runtime" y "bundle" forman el contenido del contenedor, mientras que "runtime" se instala por separado y se vincula a varios contenedores a la vez, lo que le permite evitar la duplicación de archivos del sistema comunes a los contenedores.

Un sistema puede tener instalados varios “tiempos de ejecución” diferentes (GNOME, KDE) o varias versiones del mismo “tiempo de ejecución” (GNOME 50, GNOME 49). Un contenedor con una aplicación como dependencia utiliza un enlace solo a un tiempo de ejecución específico, sin tener en cuenta los paquetes individuales que forman el tiempo de ejecución seleccionado. Todos los elementos que faltan se empaquetan directamente con la aplicación. Al crear un contenedor, el contenido del "tiempo de ejecución" se monta como la partición /usr y el "paquete" se monta en el directorio /app.

Los contenedores de aplicaciones y tiempo de ejecución se construyen utilizando tecnología OSTree, en la que la imagen se actualiza atómicamente desde un repositorio similar a Git, lo que permite aplicar métodos de control de versiones a los componentes de la distribución (por ejemplo, puede revertir rápidamente el sistema a una versión anterior). estado). Los paquetes RPM se traducen al repositorio OSTree utilizando la capa rpm-ostree.

No se admite la instalación selectiva ni la actualización de paquetes dentro del entorno de trabajo: el sistema no se actualiza a nivel de componentes individuales, sino en su conjunto, cambiando atómicamente su estado. Proporciona herramientas para aplicar actualizaciones de forma incremental, eliminando la necesidad de reemplazar completamente la imagen con cada actualización.

El entorno aislado resultante es independiente de la distribución utilizada y, con la configuración de paquetes adecuada, no tiene acceso a los archivos ni a los procesos del usuario o del sistema anfitrión, ni puede acceder directamente al hardware, salvo para la salida a través de DRI. La entrada y salida de gráficos se implementan mediante el protocolo Wayland o el reenvío de sockets X11. La interacción con el entorno externo se establece a través del sistema de mensajería DBus y una API de Portals dedicada.

Para el aislamiento, una capa de plástico de burbujas y tradicional Linux Tecnologías de virtualización de contenedores basadas en el uso de cgroups, espacios de nombres, Seccomp y SELinuxAl crear un paquete, se puede deshabilitar el aislamiento, lo cual utilizan algunos desarrolladores de paquetes para obtener acceso completo al sistema de archivos y a todos los dispositivos del sistema.

Fuente: opennet.ru

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster