Lanzamiento del sistema de paquetes autónomos Flatpak 1.6.0

Publicado nueva rama estable de la herramienta Flatpak 1.6, que ofrece un sistema para construir paquetes autosuficientes, no vinculados a distribuciones específicas de Linux y ejecutados en un contenedor especial que aísla la aplicación del resto del sistema. La compatibilidad para la ejecución de paquetes Flatpak está garantizada para Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint y Ubuntu. Los paquetes Flatpak se incluyen en el repositorio de Fedora y son soportados por la aplicación de gestión de paquetes GNOME.

Mejoras clave novedades en la rama Flatpak 1.6:

  • En Portal API se agregó el método CreateUpdateMonitor, que permite a las aplicaciones rastrear la disponibilidad de actualizaciones y solicitar la instalación de la actualización disponible.
    Para prohibir los permisos de instalación automática de actualizaciones por parte de la aplicación, se puede usar el comando «flatpak permission-set flatpak updates $APPID no» (si se indica «ask» en lugar de «no», aparecerá un diálogo para confirmar la actualización cada vez);


  • Para simplificar la creación de controladores, se propuso la biblioteca
    libportal, que permite manejar eventos sin utilizar directamente el API Portal y analizar señales que llegan a través de D-Bus.
    Libportal proporciona capas de trabajo asincrónicas simples para la mayoría de los «de portales«;
  • se agregó un nuevo permiso «--socket=cups» para proporcionar acceso directo al servidor de impresión CUPS;
  • se modificó el protocolo y el API para manejar la autenticación. Se agregó un autenticador para OCI (Open Container Initiative). Se implementó el soporte para la instalación automática de autenticadores desde un repositorio externo de flatpak. Se agregó un manejador de callback en FlatpakTransaction para utilizar la autenticación por nombre de usuario y contraseña, similar al método de autenticación HTTP basic;
  • se agregó soporte para aplicaciones seguras y sistemas que requieren autenticación al inicio;
  • la capa utilizada para el aislamiento bubblewrap se actualizó a la versión 0.4.0;
  • se agregó soporte opcional para control parental a través de la biblioteca libmalcontent, que permite restringir el acceso a ciertos tipos de contenido;
  • las extensiones ahora se instalan antes de la aplicación, lo que permite tener una aplicación funcional inmediatamente después de completar su instalación;
  • se han revisado las manipulaciones de archivos temporales, lo que ha mejorado el funcionamiento en condiciones de escasez de espacio en disco;
  • para ejecutar el comando «flatpak enter» ya no se requiere el uso de sudo;
  • en los portales se agregó la capacidad de iniciar entornos aislados anidados (sub-sandbox) para procesos secundarios;
  • se agregaron nuevos comandos «flatpak permission-set» y «permission-remove» para gestionar la instalación de permisos;
  • se agregó la opción «flatpak install --or-update», que realiza la actualización si la aplicación ya está instalada;
  • se agregó el comando «flatpak mask» para bloquear la versión y prohibir la instalación de actualizaciones;
  • Se ha añadido soporte para la vinculación de etiquetas, la generación de un historial de cambios en la imagen y la inclusión de tipos MIME de Docker, además de los tipos MIME de OCI, para imágenes en formato OCI (Open Container Initiative).
  • Se ha añadido la clave default-languages en la configuración para definir la lista de idiomas utilizados, además de la lista del sistema.

Recordemos que Flatpak permite a los desarrolladores de aplicaciones simplificar la distribución de sus programas, que no forman parte de los repositorios oficiales de las distribuciones, gracias a la preparación de un único contenedor universal sin necesidad de crear compilaciones separadas para cada distribución. A los usuarios preocupados por la seguridad, Flatpak les permite ejecutar aplicaciones cuestionables en un contenedor, proporcionando acceso solo a funciones de red y archivos del usuario relacionados con la aplicación. A los usuarios interesados en novedades, Flatpak les permite instalar las versiones de prueba y estables más recientes de aplicaciones sin necesidad de hacer cambios en el sistema. Por ejemplo, actualmente los paquetes Flatpak ya se compilan LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, etc.

Para reducir el tamaño del paquete, este solo incluye las dependencias específicas de la aplicación, mientras que las bibliotecas gráficas y del sistema base (Gtk+, Qt, bibliotecas GNOME y KDE, etc.) están estructuradas como entornos de ejecución estándar. La principal diferencia entre Flatpak y Snap es que Snap utiliza componentes del entorno del sistema base y el aislamiento basado en la filtración de llamadas del sistema, mientras que Flatpak crea un contenedor separado del sistema y opera con grandes conjuntos de runtime, proporcionando como dependencias no paquetes, sino entornos de sistema estándar (por ejemplo, todas las bibliotecas necesarias para el funcionamiento de programas GNOME o KDE).

Además del entorno de sistema típico (runtime) que se instala a través de un especial principal, se suministran dependencias adicionales (bundle) necesarias para el funcionamiento de la aplicación. En conjunto, el runtime y el bundle forman el contenido del contenedor, dado que el runtime se instala por separado y se vincula a múltiples contenedores, lo que permite evitar la duplicación de los archivos de sistema que son comunes a los contenedores. En un sistema pueden instalarse diferentes runtimes (GNOME, KDE) o varias versiones de un mismo runtime (GNOME 3.26, GNOME 3.28). Un contenedor con una aplicación como dependencia utiliza solo un runtime específico, sin tener en cuenta los paquetes individuales que componen el runtime. Todos los elementos faltantes se empaquetan directamente con la aplicación. Al formar el contenedor, el contenido del runtime se monta como la partición /usr, y el bundle se monta en el directorio /app.

El contenido de los runtimes y contenedores de aplicaciones se forma utilizando la 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, se puede revertir rápidamente el sistema a un estado anterior). Los paquetes RPM se traducen en el repositorio OSTree mediante una capa especial. rpm-ostree. La instalación y actualización de paquetes dentro del entorno de trabajo no es compatible, el sistema se actualiza no a nivel de componentes individuales, sino en su conjunto, cambiando atómicamente su estado. Se proporcionan herramientas para aplicar actualizaciones de manera incremental, lo que elimina la necesidad de reemplazar completamente la imagen en cada actualización.

El entorno aislado creado 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, no puede acceder directamente al hardware, excepto a través de DRI y el subsistema de red. La salida gráfica y la organización de la entrada se han implementado se realizan mediante el protocolo Wayland o a través de la redirección de socket X11. La interacción con el entorno externo se basa en un sistema de mensajería DBus y una API especial de Portals. Para la aislamiento se utiliza una capa Bubblewrap y las tecnologías tradicionales de virtualización de contenedores en Linux, basadas en el uso de cgroups, espacios de nombres (namespaces), Seccomp y SELinux. Para la salida de sonido se utiliza PulseAudio.

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