Lanzamiento del sistema de paquetes independientes Flatpak 1.16.0

Después de dos años y medio de desarrollo, se ha publicado una nueva rama estable de la herramienta Flatpak 1.16, que proporciona un sistema para compilar paquetes autónomos, no vinculados a distribuciones específicas de Linux y que se ejecutan en un contenedor especial que aísla la aplicación del resto del sistema. Se garantiza la compatibilidad para ejecutar paquetes Flatpak en Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Mint, Alt Linux y Ubuntu. Los paquetes de Flatpak están incluidos en el repositorio de Fedora y son compatibles con los administradores de aplicaciones GNOME y KDE.

Novedades clave en la rama Flatpak 1.16:

  • Se ha realizado la transición al uso del sistema de compilación Meson. Se ha dejado de ofrecer soporte para la compilación con la herramienta Autotools. Ahora se requiere tener Python en el sistema, al menos en la versión 3.5, para compilar Flatpak.
  • Se ha implementado el acceso compartido al socket gssproxy, lo que permite utilizar la autenticación a través de Kerberos en aplicaciones que se ejecutan en modo de aislamiento sandbox.
  • Al crear un socket para Wayland se ha utilizado la extensión security-context, mediante la cual el compositor puede identificar y restringir aplicaciones que se ejecutan en modo de aislamiento sandbox. Se ha añadido la opción "—socket=inherit-wayland-socket" para heredar un socket existente para Wayland. servidor Después de instalar o actualizar aplicaciones, se garantiza la recarga automática de la configuración del bus de sesión D-Bus para recoger los nuevos servicios exportados por las aplicaciones.
  • Se ha brindado a las distribuciones la capacidad de definir los repositorios con paquetes Flatpak utilizando el directorio "/usr/share/flatpak/remotes.d", además de "/etc/flatpak/remotes.d".
  • Se ha trabajado en la separación de grandes archivos de código fuente en módulos más pequeños.
  • Se ha añadido la opción "—device=input" para acceder a dispositivos de entrada a través de /dev/input.
  • Para aislar aplicaciones se ha empleado una nueva rama de la herramienta bubblewrap 0.11. En las distribuciones que compilan Flatpak utilizando el ejecutable del sistema bwrap, se requiere al menos la versión 0.11 de bubblewrap. Se ha mejorado la protección contra la creación de espacios de identificación de usuario (user namespace) anidados en entornos sandbox.
  • Se ha simplificado la configuración de idiomas adicionales. Se ha asegurado la identificación de idiomas basada en información de usuarios proporcionada por el servicio D-Bus AccountsService.
  • Se ha mejorado la configuración de idiomas adicionales. Se ha garantizado la identificación de idiomas en función de la información de los usuarios proporcionada por el servicio D-Bus AccountsService.
  • Se permite a las aplicaciones que utilizan aislamiento de sandbox anidado, por ejemplo, basadas en el motor WebKit, el uso del protocolo AT-SPI para interactuar con lectores de pantalla. Se agregó la opción «flatpak run —a11y-own-name» para seleccionar el bus a través del cual se accede a los recursos para personas con discapacidades.
  • Al ejecutar el comando «flatpak run -vv », se muestra todas las configuraciones aplicables de aislamiento de sandbox.
  • Se agregó la opción «—device=usb», así como los parámetros «—usb» y «—no-usb» para gestionar el acceso de la aplicación a dispositivos USB.
  • Se añadió soporte para el marco KCompletion, que se utiliza para autocompletar claves de búsqueda en KDE.
  • Se añadieron las variables de entorno «FLATPAK_DATA_DIR» y «FLATPAK_DOWNLOAD_TMPDIR» para redefinir los directorios de datos (\/usr\/share\/flatpak) y archivos temporales descargados (\/var\/tmp).
  • Se agregó la salida de secuencias de escape para mostrar el progreso de las operaciones en emuladores de terminal.

Recordemos que Flatpak facilita la distribución de programas que no están en los repositorios estándar de las distribuciones, al preparar un único contenedor universal, liberando a los desarrolladores de tener que crear versiones separadas para cada distribución. A los usuarios preocupados por la seguridad, Flatpak les permite ejecutar una aplicación cuestionable en un contenedor, proporcionando acceso selectivo solo a las funciones de red y archivos necesarios del usuario. A los usuarios interesados en novedades, Flatpak les permite instalar las versiones de prueba y estables más recientes de las aplicaciones sin necesidad de hacer cambios en el sistema. Por ejemplo, los paquetes Flatpak se construyen para LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Telegram Desktop, Android Studio, etc.

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

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

En un sistema pueden instalarse múltiples «runtime» diferentes (GNOME, KDE) o varias versiones de un mismo «runtime» (GNOME 46, GNOME 47). Un contenedor con una aplicación como dependencia solo utiliza un vínculo a un «runtime» específico, sin tener en cuenta los paquetes individuales que forman el «runtime» seleccionado. Todos los elementos faltantes se empaquetan directamente junto con la aplicación. Al crear un contenedor, el contenido del «runtime» se monta como la partición \/usr, y el «bundle» se monta en el directorio \/app.

La composición del «runtime» y los contenedores de aplicaciones se forma utilizando la tecnología OSTree, en la que la imagen se actualiza de manera atómica desde un repositorio similar a Git, permitiendo aplicar métodos de control de versiones a los componentes de la distribución (por ejemplo, se puede revertir rápidamente el sistema a un estado anterior). Los paquetes RPM se trasladan al repositorio OSTree mediante una capa llamada rpm-ostree.

La instalación selectiva y la actualización de paquetes dentro del entorno de trabajo no son compatibles: el sistema se actualiza no a nivel de componentes individuales, sino en su totalidad, cambiando de estado de manera atómica. Se proporcionan herramientas para la aplicación incremental de actualizaciones, evitando la necesidad de reemplazar completamente la imagen en cada actualización.

El entorno aislado formado 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 o del sistema principal, ni puede acceder directamente al hardware, excepto a través de la salida DRI. La salida gráfica y la organización de la entrada se realizan mediante el protocolo Wayland o a través del desvío del socket X11. La interacción con el entorno externo se basa en el sistema de intercambio de mensajes DBus y en una API especial de Portals.

Para el aislamiento se utiliza la capa Bubblewrap y las tecnologías de virtualización de contenedores tradicionales de Linux, que se basan en el uso de cgroups, espacios de nombres (namespaces), Seccomp y SELinux. Para la salida de audio se utiliza PulseAudio o PipeWire. Al crear un paquete, puede deshabilitarse el aislamiento, lo cual aprovechan los desarrolladores de muchos paquetes populares para obtener acceso completo al sistema de archivos y a todos los dispositivos del sistema.

Por ejemplo, se suministran paquetes como GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity y VLC con un modo de aislamiento limitado que deja acceso completo al directorio de inicio. En caso de comprometer paquetes con acceso al directorio de inicio, a pesar de que el paquete tenga la etiqueta 'sandboxed', para que el atacante ejecute su código, solo necesita modificar el archivo ~/ .bashrc. Una cuestión aparte es el control sobre los cambios en los paquetes y la confianza en los creadores de paquetes, que a menudo no están relacionados con el proyecto principal o las distribuciones.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster