Lanzamiento del sistema de paquete autónomo Flatpak 1.16.0

Tras dos años y medio de desarrollo, se ha lanzado una nueva versión estable de Flatpak 1.16. Flatpak proporciona un sistema para crear paquetes autocontenidos 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.16:

  • Se ha realizado la transición al uso del sistema de montaje Meson. Se ha descontinuado el soporte para la construcción con Autotools. La creación de Flatpak ahora requiere al menos la versión 3.5 de Python en su sistema.
  • Se implementó el acceso compartido al socket gssproxy, lo que permite el uso de la autenticación Kerberos en aplicaciones que se ejecutan en modo de aislamiento sandbox.
  • При создании сокета для Wayland задействовано расширение security-context, через которое композитный servidor может идентифицировать и ограничивать приложения, запущенные в режиме sandbox-изоляции. Добавлена опция «—socket=inherit-wayland-socket» для наследования существующего сокета для Wayland.
  • Después de instalar o actualizar aplicaciones, la configuración del bus de sesión D-Bus se recarga automáticamente para recoger nuevos servicios D-Bus exportados por las aplicaciones.
  • Las distribuciones tienen la capacidad de definir repositorios de paquetes Flatpak utilizando el directorio "/usr/share/flatpak/remotes.d" además de "/etc/flatpak/remotes.d".
  • Se ha trabajado para separar archivos de código fuente grandes en módulos pequeños.
  • Se agregó la opción "--device=input" para acceder a los dispositivos de entrada a través de /dev/input.
  • Para aislar aplicaciones se ha utilizado una nueva rama del kit de herramientas bubblewrap 0.11. Las distribuciones que construyen Flatpak usando el ejecutable del sistema bwrap requieren al menos la versión 0.11 de bubblewrap. Protección mejorada contra la creación de espacios de nombres de usuarios anidados en entornos sandbox.
  • Configuración simplificada de idiomas adicionales. La detección de idioma se proporciona en función de la información del usuario proporcionada por el servicio AccountsService DBus.
  • Las aplicaciones que utilizan aislamiento de espacio aislado anidado, como las basadas en el motor WebKit, pueden utilizar el protocolo AT-SPI para interactuar con lectores de pantalla. Se agregó la opción "Flatpak run -a11y-own-name" para seleccionar el autobús a través del cual se accede a las instalaciones para discapacitados.
  • Al ejecutar el comando “flatpak run -vv ", se muestran todos los parámetros de aislamiento de sandbox aplicables.
  • Se agregó la opción "--device=usb", así como los parámetros "--usb" y "--no-usb" para controlar el acceso de las aplicaciones a los dispositivos USB.
  • Se agregó soporte para el marco KCompletion, utilizado para el autocompletado de claves de búsqueda en KDE.
  • Se agregaron variables de entorno "FLATPAK_DATA_DIR" y "FLATPAK_DOWNLOAD_TMPDIR" para anular los directorios con datos (/usr/share/flatpak) y archivos temporales descargados (/var/tmp).
  • Se agregó salida de secuencia de escape para mostrar el progreso de las operaciones en emuladores de terminal.

Como recordatorio, Flatpak simplifica la distribución de programas no incluidos en los repositorios de distribución estándar mediante la creación de 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 dudosa en un contenedor, otorgando acceso selectivo solo a las funciones de red y archivos de usuario necesarios. Para los usuarios interesados ​​en las últimas versiones, Flatpak les permite instalar las versiones estables y de prueba más recientes de las aplicaciones sin realizar ningún cambio en el sistema. Por ejemplo, existen paquetes Flatpak para LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack y 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 46, GNOME 47). 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 generado es completamente independiente de la distribución utilizada y, con la configuración adecuada del paquete, no tiene acceso a los archivos y procesos del usuario ni al sistema principal, y no puede acceder directamente al equipo, con excepción de la salida vía DRI. La organización de la salida y la entrada de gráficos se implementa mediante el protocolo Wayland o mediante el reenvío de socket X11. La interacción con el entorno externo se construye a través del sistema de mensajería DBus y una API de Portals especial.

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 SELinuxPulseAudio o PipeWire se utilizan para la salida de audio. El aislamiento se puede desactivar al crear un paquete, lo que los desarrolladores de muchos paquetes populares utilizan para obtener acceso completo al sistema de archivos y a todos los dispositivos del sistema.

Por ejemplo, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity y VLC vienen con un modo de aislamiento limitado que deja acceso completo al directorio de inicio. Si los paquetes con acceso al directorio de inicio se ven comprometidos, a pesar de la presencia de la etiqueta "sandboxed" en la descripción del paquete, el atacante solo necesita cambiar el archivo ~/.bashrc para ejecutar su código. Un tema aparte es el control sobre los cambios en los paquetes y la confianza en los creadores de paquetes, que a menudo no están asociados con el proyecto o las distribuciones principales.

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