Wydanie samodzielnego systemu pakietów Flatpak 1.6.0

Opublikowany nowa stabilna gałąź zestawu narzędzi Płaskie opakowanie 1.6, który zapewnia system do budowania samodzielnych pakietów, które nie są powiązane z konkretnymi dystrybucjami Linuksa i działają w specjalnym kontenerze izolującym aplikację od reszty systemu. Wsparcie dla uruchamiania pakietów Flatpak jest zapewnione dla Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint i Ubuntu. Pakiety Flatpak znajdują się w repozytorium Fedory i są obsługiwane przez natywnego menedżera aplikacji GNOME.

Klucz innowacje w gałęzi Flatpak 1.6:

  • В Portal API dodana została metoda CreateUpdateMonitor, umożliwiająca aplikacjom monitorowanie wyglądu aktualizacji i żądanie instalacji zaktualizowanej aktualizacji.
    Aby odmówić aplikacji pozwolenia na niezależną instalację aktualizacji, możesz użyć polecenia „flatpak zestaw uprawnień flatpak aktualizacje $APPID no” (jeśli podasz „zapytaj” zamiast „nie”, za każdym razem wyświetli się okno dialogowe z potwierdzeniem aktualizacja);


  • Aby uprościć tworzenie procedur obsługi, zaproponowano bibliotekę
    libportal, który umożliwia przetwarzanie zdarzeń bez bezpośredniego korzystania z Portal API i analizowania sygnałów przychodzących przez D-Bus.
    Libportal zapewnia proste warstwy asynchroniczne dla większości „portale";

  • Dodano nowe uprawnienie „--socket=cups”, aby zapewnić bezpośredni dostęp do serwera druku CUPS;
  • Zmieniono protokół i API do obsługi uwierzytelniania. Dodano uwierzytelnianie dla OCI (Inicjatywa Open Container). Zaimplementowano obsługę automatycznej instalacji uwierzytelniaczy z zewnętrznego repozytorium flatpak. Do FlatpakTransaction dodano procedurę obsługi wywołania zwrotnego, która umożliwia uwierzytelnianie za pomocą loginu i hasła, podobnie jak w przypadku podstawowej metody uwierzytelniania HTTP;
  • Dodano obsługę chronionych aplikacji i systemów wymagających uwierzytelnienia przy uruchomieniu;
  • Warstwa folii bąbelkowej używana do izolacji została zaktualizowana do wydania 0.4.0;
  • Dodano opcjonalną obsługę kontroli rodzicielskiej za pośrednictwem aplikacji bibliotecznej zawartość biblioteki, która umożliwia ograniczenie dostępu do niektórych rodzajów treści;
  • Rozszerzenia są teraz instalowane przed aplikacją, co pozwala uzyskać działającą aplikację natychmiast po zakończeniu jej instalacji;
  • Przerobiono manipulacje plikami tymczasowymi, co poprawiło wydajność w przypadku braku wolnego miejsca na dysku;
  • Aby wykonać polecenie „wejdź płaskopaku„Nie jest już wymagane używanie sudo;
  • Do portali dodano możliwość uruchamiania zagnieżdżonych izolowanych środowisk (podpiaskownicy) dla procesów potomnych;
  • Dodano nowe polecenia „zestaw uprawnień flatpak” i „usuń uprawnienia” w celu kontrolowania ustawień uprawnień;
  • Dodano opcję „instalacja flatpak --or-update”, która wykonuje aktualizację, jeśli aplikacja jest już zainstalowana;
  • Dodano polecenie „flatpak mask”, aby naprawić wersję i zabronić instalacji aktualizacji;
  • W przypadku obrazów w formacie OCI (Open Container Initiative) dodano obsługę wiązania etykiet, generowania historii zmian w obrazie i włączania typów MIME dockera, oprócz typów MIME OCI;
  • Do ustawień dodano klawisz języków domyślnych umożliwiający zdefiniowanie listy używanych języków, oprócz listy systemowej.

Przypomnijmy, że Flatpak umożliwia twórcom aplikacji uproszczenie dystrybucji ich programów, które nie znajdują się w standardowych repozytoriach dystrybucji poprzez przygotowanie jeden uniwersalny kontener bez tworzenia oddzielnych zestawów dla każdej dystrybucji. Użytkownikom dbającym o bezpieczeństwo Flatpak umożliwia uruchomienie podejrzanej aplikacji w kontenerze, zapewniając dostęp tylko do funkcji sieciowych i plików użytkownika powiązanych z aplikacją. Użytkownikom zainteresowanym nowościami Flatpak umożliwia instalację najnowszych wersji testowych i stabilnych aplikacji bez konieczności wprowadzania zmian w systemie. Na przykład obecnie pakiety Flatpak już są idą dla LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio itp.

Aby zmniejszyć rozmiar pakietu, zawiera on tylko zależności specyficzne dla aplikacji, a podstawowe biblioteki systemowe i graficzne (biblioteki Gtk+, Qt, GNOME i KDE itp.) zaprojektowano jako standardowe środowiska uruchomieniowe typu plug-in. Kluczowa różnica między Flatpakiem a Snapem polega na tym, że Snap wykorzystuje komponenty głównego środowiska systemowego i izolację w oparciu o filtrowanie wywołań systemowych, podczas gdy Flatpak tworzy kontener oddzielony od systemu i działa z dużymi zestawami wykonawczymi, udostępniając nie pakiety jako zależności, ale standardowe środowiska systemowe (na przykład wszystkie biblioteki niezbędne do działania programów GNOME lub KDE).

Oprócz standardowego środowiska systemowego (runtime), instalowanego poprzez specjalny magazyn, dostarczane są dodatkowe zależności (pakiet) wymagane do działania aplikacji. W sumie runtime i package stanowią wypełnienie kontenera, pomimo tego, że runtime jest instalowane oddzielnie i powiązane z kilkoma kontenerami jednocześnie, co pozwala uniknąć duplikowania plików systemowych typowych dla kontenerów. W jednym systemie może być zainstalowanych kilka różnych środowisk wykonawczych (GNOME, KDE) lub kilka wersji tego samego środowiska wykonawczego (GNOME 3.26, GNOME 3.28). Kontener z aplikacją jako zależnością używa powiązania tylko z określonym środowiskiem wykonawczym, bez uwzględnienia poszczególnych pakietów tworzących środowisko wykonawcze. Wszystkie brakujące elementy są spakowane bezpośrednio z aplikacją. Po utworzeniu kontenera zawartość środowiska wykonawczego jest montowana jako partycja /usr, a pakiet jest montowany w katalogu /app.

Napełnianie pojemników runtime i aplikacji odbywa się przy użyciu technologii OSTree, w którym obraz jest aktualizowany atomowo z repozytorium przypominającego Git, co pozwala zastosować metody kontroli wersji do komponentów dystrybucji (można na przykład szybko przywrócić system do poprzedniego stanu). Pakiety RPM są tłumaczone do repozytorium OSTree przy użyciu specjalnej warstwy obr/min-ostree. Oddzielna instalacja i aktualizacja pakietów w obrębie środowiska pracy nie jest obsługiwana; system jest aktualizowany nie na poziomie poszczególnych komponentów, ale jako całości, atomowo zmieniając swój stan. Zapewnia narzędzia do stopniowego stosowania aktualizacji, eliminując potrzebę całkowitego zastępowania obrazu przy każdej aktualizacji.

Wygenerowane izolowane środowisko jest całkowicie niezależne od używanej dystrybucji i przy odpowiednich ustawieniach pakietu nie ma dostępu do plików i procesów użytkownika ani systemu głównego, nie ma bezpośredniego dostępu do sprzętu, z wyjątkiem wyjścia poprzez DRI i podsystem sieciowy. Organizacja wyjścia i wejścia grafiki wdrożony za pomocą protokołu Wayland lub poprzez przekierowanie gniazda X11. Interakcja ze środowiskiem zewnętrznym opiera się na systemie przesyłania wiadomości DBus i specjalnym API Portals. Do izolacji używany międzywarstwa folia bąbelkowa oraz tradycyjne technologie wirtualizacji kontenerów Linuksa oparte na wykorzystaniu grup cgroup, przestrzeni nazw, Seccomp i SELinux. PulseAudio służy do odtwarzania dźwięku.

Źródło: opennet.ru

Dodaj komentarz