Frigivelse af Flatpak 1.6.0 selvstændigt pakkesystem

Udgivet ny stabil gren af ​​værktøjskassen Flatpack 1.6, som giver et system til at bygge selvstændige pakker, der ikke er bundet til specifikke Linux-distributioner og kører i en speciel container, der isolerer applikationen fra resten af ​​systemet. Support til at køre Flatpak-pakker er givet til Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint og Ubuntu. Flatpak-pakker er inkluderet i Fedora-lageret og understøttes af den oprindelige GNOME-applikationsadministrator.

Nøgle innovationer i Flatpak 1.6-grenen:

  • В API-portal metoden CreateUpdateMonitor er blevet tilføjet, hvilket giver applikationer mulighed for at overvåge udseendet af opdateringer og anmode om installation af den opdaterede opdatering.
    For at nægte tilladelse til, at et program installerer opdateringer uafhængigt, kan du bruge kommandoen "flatpak permission-set flatpak updates $APPID no" (hvis du angiver "spørg" i stedet for "nej", vil en dialog blive vist hver gang for at bekræfte opdatering);


  • For at forenkle oprettelsen af ​​handlere foreslås et bibliotek
    libportal, som gør det muligt at behandle hændelser uden direkte at bruge Portal API og parse signaler, der kommer gennem D-Bus.
    Libportal giver enkle asynkrone lag til de fleste "portaler";

  • Tilføjet ny tilladelse "--socket=cups" for at give direkte adgang til CUPS-printserveren;
  • Ændrede protokollen og API til håndtering af godkendelse. Tilføjet autentificering til OCI (Open Container Initiative). Implementeret support til automatisk installation af autentificeringer fra det eksterne flatpak-lager. En tilbagekaldshåndtering er blevet tilføjet til FlatpakTransaction for at bruge login- og adgangskodegodkendelse, svarende til den grundlæggende HTTP-godkendelsesmetode;
  • Tilføjet understøttelse af beskyttede applikationer og systemer, der kræver godkendelse ved opstart;
  • Bobleplastlaget, der bruges til isolering, er blevet opdateret til frigivelse 0.4.0;
  • Tilføjet valgfri understøttelse af forældrekontrol via biblioteksapplikation libmalt indhold, som giver dig mulighed for at begrænse adgangen til visse typer indhold;
  • Udvidelser er nu installeret før programmet, hvilket giver dig mulighed for at få et fungerende program umiddelbart efter dets installation er fuldført;
  • Manipulationer med midlertidige filer er blevet omarbejdet, hvilket har forbedret ydeevnen, når der er mangel på ledig diskplads;
  • For at udføre kommandoen "flatpak ind"Det er ikke længere nødvendigt at bruge sudo;
  • Muligheden for at starte indlejrede isolerede miljøer (sub-sandbox) til underordnede processer er blevet tilføjet til portaler;
  • Tilføjet nye kommandoer "flatpak permission-set" og "permission-remove" for at kontrollere tilladelsesindstillingen;
  • Tilføjet mulighed "flatpak install --or-update", som udfører en opdatering, hvis applikationen allerede er installeret;
  • Tilføjet kommandoen "flatpak mask" for at rette versionen og forbyde installation af opdateringer;
  • For billeder i OCI-formatet (Open Container Initiative) er der tilføjet understøttelse af binding af etiketter, generering af en historik over ændringer i billedet og aktivering af docker-mime-typer ud over OCI-mime-typer;
  • Standard-sprog-nøglen er blevet tilføjet til indstillingerne for at definere listen over brugte sprog ud over systemlisten.

Lad os minde dig om, at Flatpak gør det muligt for applikationsudviklere at forenkle distributionen af ​​deres programmer, der ikke er inkluderet i standard distributionslagrene ved at forberedelse én universalbeholder uden at oprette separate samlinger for hver distribution. For sikkerhedsbevidste brugere giver Flatpak dig mulighed for at køre en tvivlsom applikation i en container, der kun giver adgang til netværksfunktioner og brugerfiler, der er knyttet til applikationen. For brugere, der er interesseret i nye produkter, giver Flatpak dig mulighed for at installere de seneste test- og stabile udgivelser af applikationer uden at skulle foretage ændringer i systemet. For eksempel er Flatpak-pakker allerede i øjeblikket går til LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio osv.

For at reducere størrelsen af ​​pakken inkluderer den kun applikationsspecifikke afhængigheder, og de grundlæggende system- og grafikbiblioteker (Gtk+, Qt, GNOME og KDE biblioteker osv.) er designet som plug-in standard runtime miljøer. Den vigtigste forskel mellem Flatpak og Snap er, at Snap bruger komponenterne i hovedsystemmiljøet og isolation baseret på filtrering af systemkald, mens Flatpak opretter en container adskilt fra systemet og opererer med store runtime-sæt, der ikke leverer pakker som afhængigheder, men standard sine systemmiljøer (for eksempel alle biblioteker, der er nødvendige for driften af ​​GNOME- eller KDE-programmer).

Ud over standard systemmiljø (runtime), installeret gennem en speciel depot, yderligere afhængigheder (bundt), der kræves for, at applikationen fungerer, leveres. I alt udgør runtime og bundle fyldningen af ​​containeren, på trods af at runtime er installeret separat og bundet til flere containere på én gang, hvilket giver dig mulighed for at undgå duplikering af systemfiler, der er fælles for containere. Et system kan have flere forskellige kørselstider installeret (GNOME, KDE) eller flere versioner af samme kørselstid (GNOME 3.26, GNOME 3.28). En container med en applikation som afhængighed bruger kun en binding til en bestemt runtime, uden at tage højde for de individuelle pakker, der udgør runtime. Alle manglende elementer pakkes direkte sammen med applikationen. Når en container dannes, monteres runtime-indholdet som /usr-partitionen, og bundtet monteres i /app-mappen.

Fyldningen af ​​runtime og applikationsbeholdere dannes ved hjælp af teknologi OSTree, hvor billedet er atomært opdateret fra et Git-lignende depot, som giver dig mulighed for at anvende versionskontrolmetoder til komponenterne i distributionen (f.eks. kan du hurtigt rulle systemet tilbage til en tidligere tilstand). RPM-pakker oversættes til OSTree-lageret ved hjælp af et specielt lag rpm-otree. Separat installation og opdatering af pakker i arbejdsmiljøet er ikke understøttet; systemet opdateres ikke på niveau med individuelle komponenter, men som helhed, ændrer dets tilstand atomisk. Giver værktøjer til at anvende opdateringer trinvist, hvilket eliminerer behovet for helt at erstatte billedet med hver opdatering.

Det genererede isolerede miljø er fuldstændig uafhængigt af den anvendte distribution og har med korrekte pakkeindstillinger ikke adgang til filer og processer for brugeren eller hovedsystemet, kan ikke få direkte adgang til udstyret, med undtagelse af output via DRI, og netværks undersystem. Grafik output og input organisation implementeret ved hjælp af Wayland-protokollen eller via X11 socket forwarding. Interaktion med det eksterne miljø er baseret på DBus-meddelelsessystemet og en særlig Portals API. Til isolering brugt mellemlag Bobleplast og traditionelle Linux-containervirtualiseringsteknologier baseret på brugen af ​​cgroups, namespaces, Seccomp og SELinux. PulseAudio bruges til at udsende lyd.

Kilde: opennet.ru

Tilføj en kommentar