Buenas noticias el lunes,% username%. Recientemente, se publicó la rama estable del kit de herramientas Flatpak 1.10. Está diseñado para crear paquetes autónomos que no están vinculados a distribuciones específicas de Linux y se ejecutan en un contenedor especial que aísla la aplicación del sistema.
Se garantiza que los Flatpacks funcionan para Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux y Ubuntu. También forman parte del repositorio de Fedora y son compatibles con el software de gestión de aplicaciones GNOME. Bajo el corte: más sobre el nuevo producto y sus capacidades.
¿Qué es Flatpak?
Este kit de herramientas permite a los desarrolladores simplificar la distribución de sus propios programas que no están incluidos en los repositorios de distribución estándar. ¿Cómo se implementa esto? Se está preparando un contenedor universal sin formar conjuntos separados para cada kit de distribución.
El kit de herramientas también proporciona un alto nivel de seguridad de la información, lo que permite que una aplicación cuestionable se ejecute en un contenedor aislado. En este caso, solo se concede acceso a las funciones de red y archivos de usuario asociados a la aplicación. Además, con Flatpak, puede instalar las últimas versiones de aplicaciones sin la necesidad de realizar cambios en el sistema. Por lo tanto, se están preparando paquetes Flatpak para LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio y docenas de otras aplicaciones.
Para reducir el tamaño del paquete, los desarrolladores han incluido solo dependencias específicas de la aplicación. Pero todas las bibliotecas principales están diseñadas como aplicaciones de tiempo de ejecución de complemento. Flatpack tiene una diferencia clave con Snap: este último utiliza componentes del entorno del sistema y aislamiento basado en el filtrado de llamadas al sistema. Pero Flatpack crea un contenedor separado del sistema, que opera con grandes conjuntos de tiempo de ejecución, de modo que no se proporcionan paquetes como dependencias, sino entornos de sistema típicos. Estas pueden ser cualquier biblioteca que los programas GNOME / KDE necesiten para ejecutar.
En cuanto al entorno de sistema típico, además del tiempo de ejecución, se instalan dependencias adicionales que son necesarias para que la aplicación funcione correctamente. El entorno del sistema principal y estas dependencias forman el núcleo del contenedor. En consecuencia, el tiempo de ejecución se instala por separado y se une a varios contenedores a la vez. Esto permite prescindir de la duplicación de archivos de sistema comunes a los contenedores.
Se pueden instalar varios runtime diferentes o varias versiones del mismo runtime en el mismo sistema. El contenedor con la aplicación como dependencia usa el enlace a un tiempo de ejecución específico sin tener en cuenta los paquetes individuales que componen el tiempo de ejecución. Los elementos que faltan están empaquetados con la aplicación. Cuando se forma el contenedor, el contenido en tiempo de ejecución se monta como la sección / usr y el paquete se monta en el directorio / app.
El relleno de contenedores de tiempo de ejecución y aplicaciones se forma utilizando tecnología OSTree. En este caso, la imagen se actualiza desde un repositorio similar a Git. Esto se hace para que los métodos de control de versiones se puedan aplicar a los componentes de distribución. Por ejemplo, un usuario puede hacer retroceder el sistema a un estado anterior. Cabe destacar que los paquetes RPM se traducen al repositorio OSTree mediante una capa especial rpm-ostree.
No se admite la instalación y actualización separadas de paquetes dentro del entorno de trabajo, por lo que el sistema se actualiza como un todo y no a nivel de componentes individuales. También hay herramientas para la aplicación incremental de actualizaciones, lo que elimina la necesidad de reemplazar completamente la imagen con cada actualización.
El entorno de espacio aislado es independiente de la distribución que esté utilizando. Por lo tanto, con la configuración de paquete adecuada, el entorno no tiene acceso a los archivos y procesos del usuario o del sistema host. Además, el entorno no puede acceder directamente al equipo y al subsistema de red. El protocolo Wayland y el reenvío de conectores X11 se utilizan para la salida y entrada de gráficos. La interacción con el entorno externo se basa en el sistema de mensajería DBus y la API especial de Portals.
Para el aislamiento, se utilizan la capa Bubblewrap y las tecnologías de virtualización de contenedores estándar. Están basados en cgroups, namespaces, Seccomp y SELinux. El sonido se emite mediante PulseAudio. El aislamiento se puede apagar si es necesario.
¿Qué hay de nuevo?
- , , . OSTree. , . , . , , , 100 . , Flatpack . , 6.6 (1.8 ), x86-64 — 2.7 (554 ). 20 .
- «flatpak pin» runtime. runtime, , .
- runtime ( ).
- , , "/org/gnome/sound-juicer", «org.gnome.SoundJuicer».
- os-release .
- tcsh.
- , .
- .
- API, flatpak_installation_list_pinned_refs, flatpak_transaction_set_disable_auto_pin, flatpak_transaction_set_include_unused_uninstall_ops, flatpak_transaction_operation_get_subpaths, flatpak_transaction_operation_get_requires_authentication.
- GCC 11.
- PulseAudio .
- , . , - , .
- root .