een nieuwe stabiele tak van de toolkit , dat een systeem biedt voor het bouwen van zelfvoorzienende pakketten die niet aan specifieke Linux-distributies zijn gebonden en draaien in een speciale container, die de applicatie van de rest van het systeem isoleert. De ondersteuning voor het uitvoeren van Flatpak-pakketten is gegarandeerd voor Arch Linux, , Debian, Fedora, Gentoo, Mageia, Linux Mint en Ubuntu. Flatpak-pakketten zijn opgenomen in het Fedora-repository en worden ondersteund in de standaardapplicatiebeheerder van GNOME.
Belangrijkste in de Flatpak 1.8-tak:
- De implementatie van installatie in P2P-modus is vereenvoudigd (dit maakt het mogelijk om applicaties en runtime-sets te downloaden via tussenliggende knooppunten of opslagmiddelen voor systemen zonder netwerkaansluiting). De ondersteuning voor installatie via tussenliggende hosts in het lokale netwerk is beëindigd. Automatisch downloaden van repositoriums (sideload) op lokale USB-opslagapparaten is standaard uitgeschakeld. Om tussenliggende lokale repositoriums te activeren, moet de repository worden ingesteld door een symbolische link te maken van /var/lib/flatpak/sideload-repos of
/run/flatpak/sideload-repos. Изменение позволило упростить внутреннюю реализацию режима P2P и повысить его эффективность. - Een optionele systemd-eenheid is toegevoegd voor automatische detectie van aanvullende repositories op aangesloten externe USB-opslagapparaten.
- Voor applicaties met toegang tot het bestandssysteem is de doorgifte van de map /lib van de hostomgeving naar /run/host/lib verzekerd.
- Nieuwe bestandstoegang machtigingen 'host-etc' en 'host-os' zijn toegevoegd, waarmee toegang kan worden verkregen tot de systeemmappen /etc en /usr.
- Voor het genereren van efficiëntere parsers voor GVariant-bestanden uit ostree is ingezet .
- In de bouwcryptconfigure is de mogelijkheid geboden om zonder
libsystemd; te bouwen - De sockets van de Journal zijn gemonteerd in alleen-lezen modus.
- De ondersteuning voor het exporteren van mappen is toegevoegd aan document-export.
- Directe toegang tot ALSA-geluidsapparaten is toegestaan voor applicaties met toegang tot Pulseaudio.
- In de API er is een signaal 'install-authenticator' toegevoegd, dat door klanten kan worden gebruikt om authenticators in te stellen die nodig zijn voor het uitvoeren van transacties.
- Het gebruik van tijdzonegegevens op basis van /etc/localtime van het hostsysteem is verzekerd, wat gerelateerde tijdzoneproblemen in sommige applicaties heeft opgelost.
- De installatie van het env.d-bestand van gdm is beëindigd, omdat systemd-generators deze taak beter kunnen uitvoeren.
- In de create-usb utility is de export van gedeeltelijke commits standaard ingeschakeld.
- Een sysusers.d-bestand is meegeleverd voor het creëren van noodzakelijke gebruikers via systemd.
- Bij de commando's «flatpak remote-add» en «flatpak modify» is de optie «—[no-]follow-redirect» toegevoegd om omleiding naar een andere repository te verbieden/toestaan.
- Aan het systeem
is een Spawn API toegevoegd voor het verkrijgen van de werkelijke proces-id (PID) van de gestartte applicatie. - Alle OCI (Open Container Initiative) repositories zijn overgezet naar het gebruik van de flatpak-oci-authenticator.
- Bij de commando's «flatpak remote-info» en «flatpak update» is de optie «—commit=» toegevoegd om een specifieke versie van OCI repositories op te geven.
- Initiële ondersteuning voor delta-updates voor OCI repositories is toegevoegd.
- De «flatpak upgrade» commando is toegevoegd, wat een alias is voor de «flatpak update» commando.
- Invoer aanvulling scripts voor de fish shell zijn geïmplementeerd.
Houd er rekening mee dat Flatpak ontwikkelaars de mogelijkheid biedt om de distributie van hun programma's te vereenvoudigen, die niet in de standaard repositories van distributies zijn opgenomen, dankzij van één universele container zonder aparte builds voor elke distributie te hoeven maken. Voor gebruikers die zich zorgen maken over veiligheid, laat Flatpak twijfelachtige applicaties uitvoeren in een container, met alleen toegang tot netwerksfuncties en bestanden van de gebruiker die met de applicatie zijn verbonden. Voor gebruikers die geïnteresseerd zijn in nieuwigheden, stelt Flatpak hen in staat om de nieuwste test- en stabiele versies van applicaties te installeren zonder dat wijzigingen in het systeem vereist zijn. Bijvoorbeeld, op dit moment worden Flatpak-pakketten al voor LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, enz.
Om de pakketgrootte te verminderen, omvat het alleen applicatiespecifieke afhankelijkheden, terwijl de basis systeem- en grafische bibliotheken (Gtk+, Qt, GNOME en KDE bibliotheken, enz.) worden gepresenteerd als verwijderbare standaard runtime-omgevingen. Het belangrijkste verschil tussen Flatpak en Snap is dat Snap gebruik maakt van componenten van de hoofdsysteemomgeving en isolatie op basis van systeemaanroepfiltering, terwijl Flatpak een afzonderlijke container van het systeem creëert en werkt met grote sets runtime, waarbij standaard systeemomgevingen worden geleverd als afhankelijkheden (bijvoorbeeld alle bibliotheken die nodig zijn voor GNOME of KDE programma's).
Naast de typische systeemomgeving (runtime), die via een speciale , worden aanvullende afhankelijkheden (bundle) geleverd die nodig zijn voor de werking van de applicatie. Samen vormen runtime en bundle de inhoud van de container, waarbij runtime apart wordt geïnstalleerd en aan meerdere containers kan worden gekoppeld, zodat duplicatie van gemeenschappelijke systeembestanden voor de containers wordt vermeden. Binnen één systeem kunnen verschillende runtime-versies (GNOME, KDE) of meerdere versies van één runtime (GNOME 3.26, GNOME 3.28) geïnstalleerd zijn. De container met de applicatie als afhankelijkheid gebruikt alleen de koppeling naar een specifieke runtime, zonder rekening te houden met de afzonderlijke pakketten waaruit runtime bestaat. Alle ontbrekende elementen worden direct samen met de applicatie verpakt. Bij de vorming van de container wordt de inhoud van runtime gemonteerd als onderdeel van /usr, terwijl de bundle in de map /app wordt gemonteerd.
De inhoud van runtime en applicatiecontainers wordt gevormd met behulp van technologie , waarbij het beeld atomisch wordt bijgewerkt vanuit een Git-achtig opslagplaats, wat het mogelijk maakt om versiebeheer methoden op de componenten van de distributie toe te passen (bijvoorbeeld, het is mogelijk om het systeem snel terug te zetten naar een vorige staat). RPM-pakketten worden via een speciale laag naar de OSTree-repository vertaald. . Het apart installeren en bijwerken van pakketten binnen de werkomgeving wordt niet ondersteund; het systeem wordt niet op componentniveau bijgewerkt, maar geheel, atomair zijn status verandert. Er zijn middelen beschikbaar voor incrementele toepassing van updates, waardoor een volledige vervanging van het image bij elke update niet nodig is.
Het gevormde geïsoleerde omgeving is volledig onafhankelijk van de gebruikte distributie en heeft bij de juiste instellingen van het pakket geen toegang tot de bestanden en processen van de gebruiker of het hoofdsysteem, kan niet rechtstreeks communiceren met de hardware, behalve via DRI, en het netwerk systeem. De grafische uitvoer en invoerorganisatie met behulp van het Wayland-protocol of via doorsturen van de X11-socket. Interactie met de externe omgeving is gebaseerd op een DBus-berichtenuitwisselingssysteem en een speciale API Portals. Voor isolatie laag en traditionele Linux-technologieën voor containervirtualisatie, gebaseerd op het gebruik van cgroups, namespaces, Seccomp en SELinux. Voor geluidsuitvoer wordt PulseAudio gebruikt.
Bron: opennet.ru
