Flatpak 1.18.0 sisteminin müstəqil paketlərinin buraxılışı.

Bir buçuk ildən sonra Flatpak 1.18 alət dəstinin yeni sabit şaxəsi dərc edildi. Bu sistem özündə müstəqil paketlərin yığılmasını təmin edir və xüsusi konteynerdə icra olunur, bu da tətbiqi sistemdən izolyasiya edir. Flatpak paketlərinin icrası üçün Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Mint, Alt Linux və Ubuntu dəstəklənir. Flatpak paketləri Fedora deposuna daxil edilib və GNOME və KDE-nin standart tətbiq idarəetmə proqramlarında dəstəklənir.

Flatpak 1.18-dəki əsas yeniliklər:

  • Şərti icazələrin (conditional permission) dəstəyi tətbiq edildi; bu o deməkdir ki, icazə tələb olunduqda sistemdə və ya runtime-da müəyyən imkanların olub olmamasını yoxlamaq olar. Məsələn, giriş cihazına giriş əldə etmək üçün «—device=all» yerinə «—device-if=all:!has-input-device —device=input» icazəsini tələb edə bilərsiniz, bu da yalnız giriş cihazlarına giriş imkanı verəcək və əgər seçməklə giriş təminatı runtime-da dəstəklənmirsə, bütün cihazlara girişə geri dönəcək. Eyni şəkildə USB cihazlarına giriş tələb oluna bilər (״has-usb-device״ və ״has-usb-portal״) və ya bölüşdürülən alt sistemlərə.
  • Cihazın /dev/ntsync-ə daxil olmağa icazə verildi,
    bu, Windows NT-nin nüvəsinin tətbiq etdiyi sinxronizasiya primitivləri üçün bir modul olan NTSYNC-ə müraciət edir və Windows oyunlarının Wine vasitəsilə icra olunması zamanı əhəmiyyətli dərəcədə performansı artırmağa imkan tanıyır.
  • Intel Xe GPU üçün video dekodlaşdırma üçün aparat sürətlənməsi dəstəyi olan VA-API aktiv edildi.
  • /dev/kfd (Kernel Fusion Driver) cihazına DRI cihazları üçün verilmiş icazələr ilə giriş əldə etmək imkanı təqdim edildi. Kfd sürücüsü AMD ROCm, HIP və OpenCL istifadə edən tətbiqlərdə GPU AMD-də birbaşa hesablamalar üçün bir interfeys təqdim edir.
  • İzolyasiya olunmuş tətbiqlərə kataloq keçidinə icazə vermək üçün komanda xətti seçkilərinin istifadəsi dəstəyi əlavə edildi.
  • Flatpak tətbiqlərinin operativ sistemin tərkibində daxil edilməsi üçün «preinstall.d» kataloquna dəstək əlavə edildi, burada əvvəlcədən quraşdırılacaq Flatpak tətbiqlərinin siyahısı müəyyən edilir.
  • OCI formatında konteyner görüntülərindən birbaşa tətbiqlərin quraşdırılmasına icazə verildi, bunlar öz OCI depozitlərindən və yerli arxivlərdən yüklənə bilər.
  • «flatpak install —from» komandasında «flatpak+https://» URI dəstəyi əlavə edildi.
  • «flatpak run» komandasında tətbiqin işə salınmasından əvvəl mühit dəyişənlərini silmək üçün «—clear-env» seçimi əlavə edildi.
  • İzolyasiya olunmuş tətbiq mühitinə /run/host/root kataloqu vasitəsilə giriş imkanı təqdim edildi.
  • İcra edilən komandaların nəticələrinin JSON formatında çıxarılması imkanı əlavə edildi.
  • Yığma mühitinin izolyasiyası gücləndirildi — «flatpak build» komandası artıq default olaraq ev sahibinə giriş imkanı vermir.
  • «reinstall» əmri asılılıqları (bundle) yenidən quraşdırmaq üçün əlavə edildi.
  • D-Bus-un standart konfiqurasiyaları /etc-qovluğundan /usr-qovluğuna köçürüldü.
  • Fish əmrlər interpreterindən istifadə edərkən işə salma müddəti azaldıldı.
  • Libflatpak-da konfiqurasiyanın yaradılma vaxtı haqqında məlumat əldə etməyə imkan verən funksiya əlavə edildi, bu da GNOME Software kimi proqramların keşlədikləri məlumatların yenilənməsini tələb etdiyini müəyyən etməyə kömək edir.
  • Http_backend qurma seçimi ləğv edildi, HTTP/HTTPS yükləməsi üçün libsoup2 əvəzinə libcurl kitabxanası istifadə edilir.
  • İşləmə zamanı irəliləyişin göstərilməsi üçün escape ardıcıllıqlarının istifadəsi standart olaraq aktiv edildi.
  • Flatpak portalı vasitəsilə yaradılanində istifadə olunan sandbox mühitlərinə cihaz hüquqlarının keçirilməsinə icazə verildi.
  • OCI görüntüləri şəklində təqdim olunan proqramlar üçün «extra-data» mexanizmi həyata keçirildi, məsələn, Fedora Linux-un Flatpak paketlərində h.265 video reproduksiyasını təşkil etməyə imkan verir.
  • Zstd algoritmasından istifadə edərək asılılıqların (OCI bundle) sıxılmasını dəstəkləmə əlavə edildi, bu da məlumatları daha səmərəli sıxır. Sıxılma üçün standart olaraq gzip istifadəsi davam edir, bu da maksimum uyğunluğu təmin edir.

Flatpak, proqramların paylanmasını sadələşdirir, çünki ayrı-ayrı distribütorlar üçün ayrıca paketin hazırlanması ehtiyacını aradan qaldıraraq bir universal konteyner hazırlayır. Təhlükəsizlikdən narahat olan istifadəçilər Flatpak-a mübahisəli proqramları konteynerdə icra etməyə imkan verir, yalnız zəruri şəbəkə funksiyalarına və istifadəçi fayllarına seçici giriş verərək. Yenilikləri sevən istifadəçilər Flatpak-dan sistemdə dəyişiklik etmədən ən yeni sınaq və sabit proqram versiyalarını quraşdıra bilərlər. Məsələn, Flatpak paketləri LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Telegram Desktop, Android Studio və s. üçün tərtib olunur.

Paketin ölçüsünü azaltmaq üçün yalnız proqram üçün spesifik asılılıqlar daxil edilir. Əsas sistem və qrafik kitabxanalar (GTK, Qt, GNOME və KDE kitabxanaları və s.) standart runtime mühitləri şəklində təqdim edilir. Flatpak-in Snap-dan əsas fərqi odur ki, Snap əsas sistem mühitinin komponentlərindən istifadə edir və sistem çağırışlarının filtrasiyası əsasında izolyasiya edir, Flatpak isə sistemdən müstəqil konteyner yaradır və geniş runtime dəstləri ilə işləyir, asılılıqlar kimi paketi deyil, standart sistem mühitlərini təqdim edir (məsələn, GNOME və ya KDE proqramlarının işləməsi üçün tələb olunan bütün kitabxanalar).

Sistem mühiti (runtime) üçün xüsusi bir depo vasitəsilə quraşdırılan tipik bir sistem mühitinə əlavə olaraq, tətbiqin işləməsi üçün tələb olunan əlavə asılılıqlar (bundle) təqdim olunur. Cəmi "runtime" və "bundle" konteynerin tərkibini təşkil edir, burada "runtime" ayrıca quraşdırılır və birdən çox konteynerə bağlanır, bu da konteynerlərin paylaşdığı sistem fayllarını təkrarlamadan istifadə etməyə imkan tanıyır.

Bir sistemdə bir neçə fərqli "runtime" (GNOME, KDE) və ya bir "runtime" (GNOME 50, GNOME 49) üçün bir neçə versiya quraşdırıla bilər. Tətbiq konteyneri asılılıq kimi yalnız müəyyən bir "runtime" ilə bağlıdır, seçilmiş "runtime"-i formalaşdıran ayrı paketləri nəzərə almır. Bütün əskik elementlər tətbiqlə birbaşa paketlənir. Konteyner yaradılarkən, "runtime"-ın məzmunu /usr bölməsi olaraq montaj edilir, "bundle" isə /app kataloquna montaj edilir.

"Runtime"-ın tərkibi və tətbiq konteynerləri OSTree texnologiyası ilə formalaşır; burada obraz atomik şəkildə Git-bənzər bir depodan yenilənir ki, bu da distrübyutun komponentlərinə versiya nəzarət metodlarını tətbiq etməyə imkan tanıyır (məsələn, sistemin keçmiş vəziyyətinə tez bir zamanda qayıtmaq mümkündür). RPM paketləri, rpm-ostree qatqısı vasitəsilə OSTree depoasında translyasiya olunur.

İş mühitində paketlərin seçmə quraşdırılması və yenilənməsi dəstəklənmir — sistem ayrı-ayrı komponentlər səviyyəsində deyil, tam şəkildə yenilənir, atomik olaraq öz vəziyyətini dəyişir. Tam yeniləmə tələb etmədən inkremental yeniləmələri tətbiq etmək üçün vasitələr təqdim olunur.

Təklif olunan izolyasiya edilmiş mühit istifadə olunan distrübyutdan asılı deyil və müvafiq paket tənzimləmələri ilə istifadəçinin və ya əsas sistemin fayllarına və proseslərinə giriş imkanı yoxdur, eləcə də birbaşa avadanlığa müraciət edə bilmir, yalnız DRI vasitəsilə çıxış mümkün olur. Qrafika çıxışı və giriş təşkilatı Wayland protokolu və ya X11 soketinin proyeksiyasında reallaşır. Xarici mühitlə əlaqə DBus mesajlaşma sistemi və xüsusi API Portals vasitəsi ilə qurulur.

İzolasiya üçün Bubblewrap qatqısı və Linux üçün ənənəvi konteyner virtualizasiya texnologiyaları istifadəsi ilə, cgroups, adlar sahələri (namespaces), Seccomp və SELinux əsasında həyata keçirilir. Paket yaradılarkən, izolasiya deaktiv edilə bilər, bu da bəzi paketlərin tərtibçiləri üçün sistemdəki bütün cihazlara tam girişi təmin etməyə imkan tanıyır.

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster