en ny stabil gren af værktøjet , som tilbyder et system til opbygning af selvstændige pakker, der ikke er bundet til specifikke Linux-distributioner og køres i en speciel container, der isolerer applikationen fra resten af systemet. Understøttelse af eksekvering af Flatpak-pakker er sikret for Arch Linux, , Debian, Fedora, Gentoo, Mageia, Linux Mint og Ubuntu. Pakker med Flatpak er inkluderet i Fedora-repositoriet og understøttes i standard applikationshåndteringsprogrammet GNOME.
Nøglepunkter i grenen Flatpak 1.6:
- I metoden CreateUpdateMonitor er blevet tilføjet, hvilket gør det muligt for applikationer at overvåge ankomsten af opdateringer og anmode om installation af de tilgængelige opdateringer.
For at forhindre applikationen i at installere opdateringer automatisk, kan kommandoen «flatpak permission-set flatpak updates $APPID no» anvendes (hvis du angiver «ask» i stedet for «no», vises der en dialog for hver gang, der kræves bekræftelse af opdateringen); - For at forenkle oprettelsen af håndteringsprogrammer er der blevet foreslået et bibliotek
libportal, som muliggør behandling af begivenheder uden direkte at bruge API Portal og håndtering af signaler, der kommer via D-Bus.
Libportal leverer enkle asynkrone lag til de fleste ««; - Et nyt privilegium «—socket=cups» er blevet tilføjet for at give direkte adgang til CUPS printerserveren;
- Protokol og API til håndtering af godkendelse er blevet ændret. En godkender for OCI (Open Container Initiative) er blevet tilføjet. Implementeret støtte til automatisk installation af godkendere fra et eksternt flatpak-repository. I FlatpakTransaction er der blevet tilføjet en callback-handler til brug af godkendelse via login og kodeord, svarende til metoden for HTTP basic-godkendelse;
- Support for beskyttede applikationer og systemer, der kræver godkendelse ved opstart, er blevet tilføjet;
- Det lag, der anvendes til isolation, bubblewrap, er opdateret til udgivelsen ;
- Valgfri støtte til forældrekontrol er tilføjet gennem brugen af biblioteket , som gør det muligt at begrænse adgangen til bestemte typer indhold;
- Udvidelser er nu installeret før applikationen, hvilket gør det muligt at få en fungerende applikation lige efter installationen er afsluttet;
- Håndteringen af midlertidige filer er blevet revideret, hvilket har forbedret ydeevnen under forhold med begrænset ledig diskplads;
- For at udføre kommandoen «» kræves der ikke længere brug af sudo;
- Der er tilføjet mulighed for at starte indlejrede isolerede miljøer (sub-sandbox) for underprocesser i portaler;
- Nye kommandoer «flatpak permission-set» og «permission-remove» er blevet tilføjet for at administrere installationen af tilladelser;
- Der er tilføjet en option «flatpak install —or-update», der udfører en opdatering, hvis applikationen allerede er installeret;
- Der er tilføjet en kommando «flatpak mask» for at låse versionen og forhindre installation af opdateringer;
- For images in OCI (Open Container Initiative) format, support has been added for binding labels, generating change history in the image, and including Docker mime types, in addition to OCI mime types.
- A default-languages key has been added to the settings to determine the list of used languages, in addition to the system list.
Vi minder om, at Flatpak giver appudviklere mulighed for at forenkle distributionen af deres programmer, der ikke er inkluderet i de officielle repositoryer af distributioner, ved hjælp af en universel container uden at skulle lave separate builds for hver distribution. For brugere, der værdsætter sikkerhed, tillader Flatpak at køre et tvivlsomt program i en container og giver kun adgang til netværksfunktioner og filer, der er relateret til programmet. For brugere, der er interesseret i nyheder, tillader Flatpak at installere de nyeste test- og stabilversioner af applikationer uden behov for at ændre systemet. For eksempel bliver Flatpak-pakker allerede tilgængelige for LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio osv.
For at reducere pakkestørrelsen inkluderer den kun applikationsspecifikke afhængigheder, mens de grundlæggende system- og grafiske biblioteker (Gtk+, Qt, GNOME- og KDE-biblioteker osv.) præsenteres som plug-in standard runtime-miljøer. Den væsentligste forskel mellem Flatpak og Snap er, at Snap bruger komponenter fra hovedsystemets miljø og isolering baseret på filtrering af systemopkald, mens Flatpak opretter en container adskilt fra systemet og opererer med store runtime-sæt, der leverer standard systemmiljøer som afhængigheder (f.eks. alle biblioteker, der kræves for at køre GNOME- eller KDE-programmer).
Ud over det typiske systemmiljø (runtime), der installeres via en speciel , leveres der yderligere afhængigheder (bundle), der kræves for at køre applikationen. Tilsammen danner runtime og bundle fyldet i containeren, idet runtime installeres separat og knyttes til flere containere, hvilket gør det muligt at undgå duplikering af fælles systemfiler for containerne. Der kan installeres flere forskellige runtime-miljøer (GNOME, KDE) eller flere versioner af det samme runtime (GNOME 3.26, GNOME 3.28) på et enkelt system. En container med en applikation som afhængighed bruger kun binding til et specifikt runtime, uden hensyn til de enkelte pakker, som runtime består af. Alle manglende elementer pakkes direkte sammen med applikationen. Når containeren dannes, monteres indholdet af runtime som partitionen /usr, mens bundle monteres i mappen /app.
Fyldet af runtime og applikationscontainere dannes ved hjælp af teknologien , where the image is atomically updated from a Git-like repository, allowing version control methods to be applied to the distribution components (for example, quickly reverting the system to a previous state). RPM packages are translated into the OSTree repository using a special layer. . Separat installation og opdatering af pakker inden for arbejdsmiljøet understøttes ikke, systemet opdateres ikke på niveauet af enkeltkomponenter, men som helhed, atomisk ændrer sin tilstand. Der stilles redskaber til rådighed for inkrementel anvendelse af opdateringer, hvilket fjerner behovet for at udskifte billedet helt ved hver opdatering.
The created isolated environment is completely independent of the distribution used, and with the proper package settings, it has no access to the user's files and processes or the main system, cannot directly access the hardware, except for output through DRI, and the network subsystem. Graphics output and input organization foregår via Wayland-protokollen eller ved at videresende X11-socketen. Interaktionen med det eksterne miljø er bygget på et DBus-baseret meddelelsessystem og et special-API kaldet Portals. For at isolere laget og traditionelle Linux-teknologier til containervirtualisering, baseret på brugen af cgroups, navnerum (namespaces), Seccomp og SELinux. PulseAudio anvendes til lydudgang.
Kilde: opennet.ru
