nową stabilną wersję narzędzia , która dostarcza system do budowy samodzielnych pakietów, niezwiązanych z konkretnymi dystrybucjami Linux i uruchamianych w specjalnym kontenerze, izolującym aplikację od reszty systemu. Wsparcie dla uruchamiania pakietów Flatpak jest zapewnione dla Arch Linux, , Debian, Fedora, Gentoo, Mageia, Linux Mint i Ubuntu. Pakiety Flatpak są dołączone do repozytorium Fedory i są wspierane w standardowym programie zarządzania aplikacjami GNOME.
Kluczowe w gałęzi Flatpak 1.6:
- W dodana metoda CreateUpdateMonitor, która umożliwia aplikacjom śledzenie występowania aktualizacji i żądanie ich instalacji.
Aby zakazać aplikacji samodzielnej instalacji aktualizacji, można użyć komendy „flatpak permission-set flatpak updates $APPID no” (jeśli zamiast „no” podano „ask”, to za każdym razem pojawi się okno dialogowe do potwierdzenia aktualizacji); - Aby uprościć tworzenie handlerów, zaproponowano bibliotekę
libportal, która umożliwia przetwarzanie zdarzeń bez bezpośredniego użycia API Portal i analizowania sygnałów przychodzących przez D-Bus.
Libportal zapewnia proste, asynchronicznie działające warstwy dla większości „«; - Dodano nowe uprawnienie „—socket=cups” do zapewnienia bezpośredniego dostępu do serwera druku CUPS;
- Zmieniono protokół i API do obsługi uwierzytelniania. Dodano uwierzytelniający dla OCI (Open Container Initiative). Zrealizowano wsparcie dla automatycznej instalacji uwierzytelniaczy z zewnętrznego repozytorium flatpak. W FlatpakTransaction dodano callback-handler do używania uwierzytelniania za pomocą loginu i hasła analogicznie do metody uwierzytelniania HTTP basic;
- Dodano wsparcie dla zabezpieczonych aplikacji i systemów wymagających uwierzytelnienia przy ładowaniu;
- Warstwa izolacji używana do izolacji została zaktualizowana do wersji ;
- Dodano opcjonalne wsparcie dla kontroli rodzicielskiej poprzez zastosowanie biblioteki , umożliwiającej ograniczenie dostępu do określonych rodzajów treści;
- Rozszerzenia są teraz instalowane przed aplikacją, co pozwala uzyskać działającą aplikację natychmiast po zakończeniu jej instalacji;
- Przebudowano manipulacje z plikami tymczasowymi, co poprawiło działanie w warunkach niedoboru wolnego miejsca na dysku;
- Aby wykonać polecenie „” nie jest już wymagane użycie sudo;
- W portalach dodano możliwość uruchamiania zagnieżdżonych izolowanych środowisk (sub-sandbox) dla procesów podrzędnych;
- Dodano nowe polecenia „flatpak permission-set” i „permission-remove” do zarządzania uprawnieniami instalacji;
- Dodano opcję „flatpak install —or-update”, która wykonuje aktualizację, jeśli aplikacja jest już zainstalowana;
- Dodano polecenie „flatpak mask” do blokowania wersji i zakazu instalacji aktualizacji;
- Dla obrazów w formacie OCI (Open Container Initiative) dodano wsparcie dla przypinania etykiet, generowania historii zmian w obrazie oraz uwzględniania typów mime dockera, poza typami mime OCI;
- Dodano klucz default-languages do ustawień w celu określenia listy używanych języków, obok systemowej listy.
Przypominamy, że Flatpak umożliwia deweloperom aplikacji uproszczenie dystrybucji swoich programów, które nie są zawarte w standardowych repozytoriach dystrybucji, dzięki jednego uniwersalnego kontenera bez tworzenia oddzielnych kompilacji dla każdej dystrybucji. Użytkownikom dbającym o bezpieczeństwo, Flatpak pozwala uruchomić budzące wątpliwości aplikacje w kontenerze, zapewniając dostęp jedynie do funkcji sieciowych i plików użytkownika powiązanych z aplikacją. Użytkownikom interesującym się nowinkami, Flatpak pozwala na instalowanie najnowszych wersji testowych i stabilnych aplikacji bez konieczności dokonywania zmian w systemie. Na przykład w tej chwili pakiety Flatpak są już dla LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio itd.
Aby zmniejszyć rozmiar pakietu, zawiera jedynie specyficzne dla danej aplikacji zależności, a podstawowe biblioteki systemowe i graficzne (Gtk+, Qt, biblioteki GNOME i KDE itp.) są dostarczane jako standardowe runtime’y. Kluczowa różnica między Flatpak a Snap polega na tym, że Snap wykorzystuje komponenty środowiska podstawowego systemu oraz izolację na podstawie filtracji wywołań systemowych, podczas gdy Flatpak tworzy oddzielny kontener od systemu i korzysta z dużych zestawów runtime, oferując nie pakiety, a standardowe środowiska systemowe (na przykład wszystkie biblioteki wymagane do działania aplikacji GNOME lub KDE).
Oprócz typowego środowiska systemowego (runtime), które jest instalowane za pomocą specjalnego , dostarczane są dodatkowe zależności (bundle) wymagane do działania aplikacji. W sumie runtime i bundle tworzą zawartość kontenera, przy czym runtime jest instalowany osobno i jest powiązany z wieloma kontenerami, co pozwala uniknąć duplikacji wspólnych dla kontenerów plików systemowych. W jednym systemie może być zainstalowanych kilka różnych runtime (GNOME, KDE) lub kilka wersji jednego runtime (GNOME 3.26, GNOME 3.28). Kontener aplikacji jako zależność korzysta z powiązania tylko z określonym runtime, bez uwzględniania poszczególnych pakietów, z których składa się runtime. Wszystkie brakujące elementy są pakowane bezpośrednio z aplikacją. Podczas tworzenia kontenera zawartość runtime jest montowana jako partycja /usr, a bundle jest montowane w katalogu /app.
Zawartość runtime i kontenerów aplikacji jest tworzona z wykorzystaniem technologii , w którym obraz atomowo aktualizuje się z repozytorium przypominającego Git, co pozwala na stosowanie metod kontroli wersji do komponentów dystrybucji (na przykład można szybko cofnąć system do poprzedniego stanu). Pakiety RPM są translowane do repozytorium OSTree za pomocą specjalnej warstwy . Oddzielna instalacja i aktualizacja pakietów wewnątrz środowiska roboczego nie jest obsługiwana, system jest aktualizowany nie na poziomie poszczególnych komponentów, ale całościowo, atomowo zmieniając swoje właściwości. Udostępniane są narzędzia do inkrementalnego stosowania aktualizacji, eliminujące konieczność pełnej wymiany obrazu przy każdej aktualizacji.
Tworzone izolowane środowisko jest całkowicie niezależne od używanej dystrybucji, a przy odpowiednich ustawieniach pakietu, nie ma dostępu do plików i procesów użytkownika ani systemu głównego, nie może bezpośrednio uzyskiwać dostępu do sprzętu, z wyjątkiem wyjścia przez DRI oraz subsystemu sieciowego. Wyjście grafiki i organizacja wejścia są realizowane za pomocą protokołu Wayland lub przez przekazywanie gniazda X11. Interakcja z otoczeniem oparta jest na systemie wymiany komunikatów DBus i specjalnym API Portals. W celu izolacji warstwa i tradycyjne technologie wirtualizacji kontenerowej dla systemu Linux, oparte na wykorzystaniu cgroups, przestrzeni nazw (namespaces), Seccomp oraz SELinux. Do odtwarzania dźwięku używany jest PulseAudio.
Źródło: opennet.ru
