Lanzamento do sistema de paquetes autónomos Flatpak 1.14.0

Publicouse unha nova rama estable do kit de ferramentas Flatpak 1.14, que proporciona un sistema para construír paquetes autónomos que non estean vinculados a distribucións específicas de Linux e que se executan nun contedor especial que illa a aplicación do resto do sistema. O soporte para executar paquetes Flatpak ofrécese para Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux e Ubuntu. Os paquetes Flatpak están incluídos no repositorio de Fedora e son compatibles co xestor de aplicacións nativo de GNOME.

Innovacións clave na rama Flatpak 1.14:

  • É posible crear un directorio para ficheiros en estado (.local/state) e establecer a variable de ambiente XDG_STATE_HOME apuntando a este directorio.
  • Engadíronse verificacións condicionais da forma "have-kernel-module-name" para determinar a presenza de módulos do núcleo (un análogo universal da comprobación have-intel-gpu proposta anteriormente, no canto de que a expresión "have-kernel-module-i915 ” agora pódese usar).
  • Implementouse o comando "flatpak document-unexport —doc-id=...".
  • Ofrécese a exportación de metadatos de Appstream para usar no ambiente principal.
  • Engadíronse regras de finalización de comandos flatpak para o Fish shell
  • Permítese o acceso á rede aos servizos X11 e PulseAudio (se se engaden a configuración adecuada).
  • A rama principal do repositorio de Git foi renomeada de "mestre" a "principal", xa que a palabra "mestre" foi recentemente considerada políticamente incorrecta.
  • Os scripts de lanzamento agora reescríbense se se cambia o nome da aplicación.
  • Engadíronse opcións "--include-sdk" e "--include-debug" ao comando de instalación para instalar o SDK e os ficheiros debuginfo.
  • Engadiuse compatibilidade co parámetro "DeploySideloadCollectionID" aos ficheiros flatpakref e flatpakrepo. Cando se estableza, o ID da colección establecerase ao engadir un repositorio remoto e non despois de cargar os metadatos.
  • Permitiuse a creación de ambientes sandbox anidados para os controladores en sesións con nomes separados MPRIS (Media Player Remote Interfacing Specification).
  • As utilidades da liña de comandos agora ofrecen información sobre o uso de extensións de tempo de execución obsoletas.
  • O comando de desinstalación implementa unha solicitude de confirmación antes de eliminar as extensións de tempo de execución ou de execución que aínda están en uso.
  • Engadido soporte para a opción "--socket=gpg-agent" a comandos como "flatpak run".
  • Solucionouse unha vulnerabilidade en libostree que podería permitir que un usuario borrase ficheiros arbitrarios do sistema mediante a manipulación do controlador flatpak-system-helper (enviando unha solicitude de eliminación cun nome de rama con formato especial). O problema só aparece nas versións antigas de Flatpak e libostree lanzadas antes de 2018 (< 0.10.2) e non afecta ás versións actuais.

Lembrámosche que Flatpak permite aos desenvolvedores de aplicacións simplificar a distribución dos seus programas que non están incluídos nos repositorios de distribución estándar preparando un contedor universal sen crear conxuntos separados para cada distribución. Para usuarios conscientes da seguridade, Flatpak permítelle executar unha aplicación cuestionable nun contedor, proporcionando acceso só ás funcións de rede e aos ficheiros de usuario asociados á aplicación. Para os usuarios interesados ​​en novos produtos, Flatpak permítelle instalar as versións de proba máis recentes e as versións estables de aplicacións sen necesidade de facer cambios no sistema. Por exemplo, os paquetes Flatpak están creados para LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, etc.

Para reducir o tamaño do paquete, inclúe só dependencias específicas da aplicación, e as bibliotecas básicas do sistema e de gráficos (librerías GTK, Qt, GNOME e KDE, etc.) están deseñadas como entornos de execución estándar de complementos. A diferenza fundamental entre Flatpak e Snap é que Snap usa os compoñentes do ambiente principal do sistema e o illamento baseado no filtrado de chamadas ao sistema, mentres que Flatpak crea un contedor separado do sistema e opera con grandes conxuntos de tempo de execución, proporcionando non paquetes como dependencias, senón estándar. os contornos do sistema (por exemplo, todas as bibliotecas necesarias para o funcionamento dos programas GNOME ou KDE).

Ademais do ambiente estándar do sistema (tempo de execución), instalado a través dun repositorio especial, ofrécense dependencias adicionais (paquete) necesarias para o funcionamento da aplicación. En total, o tempo de execución e o paquete forman o recheo do contedor, a pesar de que o tempo de execución está instalado por separado e está ligado a varios contedores á vez, o que permite evitar duplicar ficheiros do sistema comúns aos contedores. Un sistema pode ter instalados varios tempos de execución diferentes (GNOME, KDE) ou varias versións do mesmo tempo de execución (GNOME 3.40, GNOME 3.42). Un contedor cunha aplicación como dependencia só utiliza unha ligazón a un tempo de execución específico, sen ter en conta os paquetes individuais que constitúen o tempo de execución. Todos os elementos que faltan empaquetanse directamente coa aplicación. Cando se forma un contenedor, o contido do tempo de execución móntase como a partición /usr e o paquete móstrase no directorio /app.

O tempo de execución e os contedores das aplicacións constrúense mediante a tecnoloxía OSTree, na que a imaxe se actualiza atómicamente desde un repositorio tipo Git, o que permite aplicar métodos de control de versións aos compoñentes da distribución (por exemplo, podes revertir rapidamente o sistema a un estado anterior). Os paquetes RPM tradúcense ao repositorio OSTree mediante unha capa especial rpm-ostree. Non se admite a instalación e actualización separada de paquetes dentro do contorno de traballo; o sistema non se actualiza a nivel de compoñentes individuais, senón no seu conxunto, cambiando atómicamente o seu estado. Ofrece ferramentas para aplicar actualizacións de forma incremental, eliminando a necesidade de substituír completamente a imaxe con cada actualización.

O contorno illado xerado é completamente independente da distribución utilizada e, cunha configuración adecuada do paquete, non ten acceso aos ficheiros e procesos do usuario ou do sistema principal, non pode acceder directamente ao equipo, a excepción da saída a través de DRI, e chamadas ao subsistema de rede. A organización de saída e entrada de gráficos impléntanse mediante o protocolo Wayland ou mediante o reenvío de socket X11. A interacción co entorno externo baséase no sistema de mensaxería DBus e nunha API de portais especial.

Para o illamento, utilízanse a capa Bubblewrap e as tecnoloxías tradicionais de virtualización de contedores Linux, baseadas no uso de cgroups, espazos de nomes, Seccomp e SELinux. PulseAudio úsase para emitir son. Neste caso, pódese desactivar o illamento, que é usado polos desenvolvedores de moitos paquetes populares para ter acceso total ao sistema de ficheiros e a todos os dispositivos do sistema. Por exemplo, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity e VLC inclúen un modo de illamento limitado que deixa acceso total ao directorio de inicio. Se os paquetes con acceso ao directorio de inicio están comprometidos, a pesar da presenza da etiqueta "sandbox" na descrición do paquete, o atacante só necesita cambiar o ficheiro ~/.bashrc para executar o seu código. Unha cuestión aparte é o control dos cambios nos paquetes e a confianza nos creadores de paquetes, que moitas veces non están asociados co proxecto ou distribucións principais.

Fonte: opennet.ru

Engadir un comentario