Wydanie systemu samodzielnych pakietów Flatpak 1.8.0

Opublikowano nową stabilną wersję narzędzia Flatpak 1.8, który zapewnia system do tworzenia samodzielnych pakietów, niezwiązanych z konkretnymi dystrybucjami Linuxa i wykonywanych w specjalnym kontenerze, izolującym aplikację od reszty systemu. Obsługa wykonywania pakietów Flatpak jest zapewniona dla Arch Linux, CentOS, 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 nowości w wersji Flatpak 1.8:

  • Uproszczono realizację instalacji w trybie P2P (pozwala to na organizację pobierania aplikacji i zestawów runtime przez pośrednie węzły lub nośniki dla systemów bez połączenia sieciowego). Zaprzestano wsparcia dla instalacji przez pośrednie hosty w lokalnej sieci. Domyślnie wyłączono automatyczne pobieranie repozytoriów (sideload) umieszczonych na lokalnych pamięciach USB. Aby aktywować pośrednie lokalne repozytoria, należy skonfigurować repozytorium poprzez utworzenie symbolicznego linku z \/var\/lib\/flatpak\/sideload-repos lub
    /run/flatpak/sideload-repos. Изменение позволило упростить внутреннюю реализацию режима P2P и повысить его эффективность.
  • Dodano opcjonalny unit systemd do automatycznego wykrywania dodatkowych repozytoriów na podłączonych zewnętrznych pamięciach USB.
  • Dla aplikacji mających dostęp do systemu plików zapewniono przekazywanie katalogu \/lib hosta do \/run\host\/lib.
  • Dodano nowe uprawnienia dostępu do FS – „host-etc” i „host-os”, pozwalające na dostęp do systemowych katalogów \/etc i \/usr.
  • Dla generowania bardziej efektywnego kodu parsowania plików GVariant z ostree wykorzystano variant-schema-compiler.
  • W skrypcie configuracyjnym dodano możliwość budowy bez
    libsystemd;
  • Zapewniono montowanie gniazd Journal w trybie tylko do odczytu.
  • W document-export dodano wsparcie dla eksportu katalogów.
  • Zezwolono na bezpośredni dostęp do urządzeń dźwiękowych ALSA dla aplikacji korzystających z Pulseaudio.
  • W API FlatpakTransaction dodano sygnał „install-authenticator”, który może być używany przez klientów do instalacji autentykatorów, potrzebnych do przeprowadzenia transakcji.
  • Zapewniono wykorzystanie danych o strefie czasowej na podstawie \/etc\/localtime z systemu hosta, co rozwiązało związane z strefami czasowymi problemy w niektórych aplikacjach.
  • Zaniechano instalacji pliku env.d z gdm, ponieważ generatory systemd lepiej radzą sobie z tym zadaniem.
  • W narzędziu create-usb domyślnie włączono eksport częściowych commitów.
  • Zrealizowano dostarczenie pliku sysusers.d do tworzenia wymaganych użytkowników przez systemd.
  • W poleceniach „flatpak remote-add” i „flatpak modify” dodano opcję „—[no-]follow-redirect” do zabrania/dozwolenia przekierowania do innego repozytorium.
  • Do systemu
    portalów dodano API Spawn do uzyskiwania rzeczywistego identyfikatora procesu (PID) uruchomionej aplikacji.
  • Wszystkie repozytoria OCI (Open Container Initiative) zostały przetłumaczone na korzystanie z uwierzytelniającego flatpak-oci-authenticator.
  • W poleceniach „flatpak remote-info” i „flatpak update” dodano opcję „—commit=” do określenia konkretnej wersji repozytoriów OCI.
  • Dodano wstępne wsparcie dla aktualizacji delta dla repozytoriów OCI.
  • Dodano polecenie „flatpak upgrade”, które jest aliasem polecenia „flatpak update”.
  • Zrealizowano scenariusze dopełnienia wejścia dla powłoki fish.

Przypominamy, że dla deweloperów aplikacji Flatpak umożliwia uproszczenie dystrybucji swoich programów, które nie znajdują się w standardowych repozytoriach dystrybucji poprzez przygotowanie 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ż kompilowane dla LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio itd.

Aby zmniejszyć rozmiar pakietu, zawiera on tylko zależności specyficzne dla aplikacji, a podstawowe systemowe i graficzne biblioteki (Gtk+, Qt, biblioteki GNOME i KDE itd.) są przedstawione jako wtyczkowe typowe środowiska uruchomieniowe. Kluczowa różnica między Flatpak a Snap polega na tym, że Snap wykorzystuje komponenty środowiska głównego systemu oraz izolację opartą na filtrowaniu wywołań systemowych, podczas gdy Flatpak tworzy kontener oddzielony od systemu i operuje na dużych zestawach runtime, dostarczając jako zależności nie pakiety, ale typowe środowiska systemowe (na przykład wszystkie biblioteki niezbędne do działania programów GNOME lub KDE).

Oprócz typowego środowiska systemowego (runtime), które jest instalowane za pomocą specjalnego repozytorium, 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 OSTree, w której obraz atomowo aktualizuje się z repozytorium podobnego do Git, co pozwala stosować metody kontroli wersji do komponentów dystrybucji (na przykład szybko można przywrócić system do poprzedniego stanu). Pakiety RPM są transponowane do repozytorium OSTree za pomocą specjalnej warstwy rpm-ostree. 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 i przy odpowiednich ustawieniach pakietu nie ma dostępu do plików i procesów użytkownika ani głównego systemu, nie może bezpośrednio komunikować się z sprzętem, z wyjątkiem wyjścia przez DRI oraz podsystemu sieciowego. Wyjście grafiki i organizacja wejścia wdrożono 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 jest używane warstwa Bubblewrap 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

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster