Rilis sistem paket mandhiri Flatpak 1.14.0

Cabang stabil anyar saka toolkit Flatpak 1.14 wis diterbitake, sing nyedhiyakake sistem kanggo mbangun paket mandiri sing ora ana gandhengane karo distribusi Linux tartamtu lan mbukak ing wadhah khusus sing ngisolasi aplikasi saka sistem liyane. Dhukungan kanggo mbukak paket Flatpak kasedhiya kanggo Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux lan Ubuntu. Paket Flatpak kalebu ing repositori Fedora lan didhukung dening manajer aplikasi GNOME asli.

Inovasi utama ing cabang Flatpak 1.14:

  • Sampeyan bisa nggawe direktori kanggo file ing negara (.lokal / negara) lan nyetel XDG_STATE_HOME variabel lingkungan pointing menyang direktori iki.
  • Nambahake pamriksa kondisional saka wangun "duwe-kernel-module-name" kanggo nemtokake ananΓ© modul kernel (analog universal saka priksa duwe-intel-gpu sing wis diusulake sadurunge, tinimbang ekspresi "have-kernel-module-i915 "saiki bisa digunakake).
  • Printah "flatpak document-unexport β€”doc-id=..." wis dileksanakake.
  • Ekspor metadata Appstream kanggo digunakake ing lingkungan utama diwenehake.
  • Nambahake aturan completion printah flatpak kanggo cangkang Fish
  • Akses jaringan menyang layanan X11 lan PulseAudio diidini (yen ditambahake setelan sing cocog).
  • Cabang utama ing repositori Git wis diganti jeneng saka "master" dadi "utama", amarga tembung "master" bubar dianggep salah politik.
  • Skrip bukak saiki ditulis maneh yen aplikasi diganti jeneng.
  • Nambahake opsi "--include-sdk" lan "--include-debug" menyang printah instal kanggo nginstal file SDK lan debuginfo.
  • Ditambahake dhukungan kanggo parameter "DeploySideloadCollectionID" menyang file flatpakref lan flatpakrepo. Nalika disetel, ID koleksi bakal disetel nalika nambah repositori remot, lan ora sawise mbukak metadata.
  • Diijini nggawe lingkungan kothak wedhi bersarang kanggo panangan ing sesi kanthi jeneng MPRIS (Media Player Remote Interfacing Specification) sing kapisah.
  • Utilitas baris perintah saiki nyedhiyakake informasi babagan panggunaan ekstensi runtime sing wis lawas.
  • Printah instal nindakake panjalukan konfirmasi sadurunge mbusak ekstensi runtime utawa runtime sing isih digunakake.
  • Nambahake dhukungan kanggo opsi "--socket = gpg-agent" kanggo printah kaya "flatpak run".
  • Kerentanan wis didandani ing libostree sing bisa ngidini pangguna mbusak file sewenang-wenang ing sistem liwat manipulasi pawang flatpak-system-helper (ngirim panjaluk mbusak kanthi jeneng cabang sing diformat khusus). Masalah mung katon ing versi lawas saka Flatpak lan libostree dirilis sadurunge 2018 (<0.10.2) lan ora mengaruhi rilis saiki.

Ayo kita ngelingake yen Flatpak ngidini pangembang aplikasi nyederhanakake distribusi program sing ora kalebu ing repositori distribusi standar kanthi nyiapake siji wadhah universal tanpa nggawe rakitan sing kapisah kanggo saben distribusi. Kanggo pangguna sing sadar keamanan, Flatpak ngidini sampeyan mbukak aplikasi sing bisa dipertanyakan ing wadhah, mung nyedhiyakake akses menyang fungsi jaringan lan file pangguna sing ana gandhengane karo aplikasi kasebut. Kanggo pangguna sing kasengsem karo produk anyar, Flatpak ngidini sampeyan nginstal tes paling anyar lan rilis aplikasi sing stabil tanpa perlu ngganti sistem kasebut. Contone, paket Flatpak dibangun kanggo LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, lsp.

Kanggo nyuda ukuran paket, kalebu mung dependensi aplikasi-tartamtu, lan sistem dhasar lan perpustakaan grafis (GTK, Qt, GNOME lan KDE perpustakaan, etc.) dirancang minangka plug-in lingkungan runtime standar. Bentenane utama ing antarane Flatpak lan Snap yaiku Snap nggunakake komponen lingkungan sistem utama lan isolasi adhedhasar panggilan sistem nyaring, dene Flatpak nggawe wadhah sing kapisah saka sistem lan beroperasi kanthi set runtime sing gedhe, ora nyedhiyakake paket minangka dependensi, nanging standar. lingkungan sistem (contone, kabeh perpustakaan sing perlu kanggo operasi program GNOME utawa KDE).

Saliyane lingkungan sistem standar (runtime), diinstal liwat repositori khusus, dependensi tambahan (bundel) sing dibutuhake kanggo operasi aplikasi diwenehake. Secara total, runtime lan bundle mbentuk ngisi wadhah kasebut, sanajan wektu runtime dipasang kanthi kapisah lan diikat menyang pirang-pirang wadhah sekaligus, sing ngidini sampeyan ngindhari duplikat file sistem sing umum ing wadhah. Siji sistem bisa nginstal sawetara runtime (GNOME, KDE) utawa sawetara versi runtime sing padha (GNOME 3.40, GNOME 3.42). Wadhah kanthi aplikasi minangka dependensi nggunakake mung kanggo runtime tartamtu, tanpa njupuk menyang akun paket individu sing nggawe runtime. Kabeh unsur sing ilang dirangkep langsung karo aplikasi kasebut. Nalika wadhah dibentuk, isi runtime dipasang minangka partisi / usr, lan bundle dipasang ing direktori / app.

Wadah runtime lan aplikasi dibangun nggunakake teknologi OSTree, ing ngendi gambar kasebut dianyari kanthi atom saka gudang kaya Git, sing ngidini metode kontrol versi bisa ditrapake ing komponen distribusi (contone, sampeyan bisa kanthi cepet muter maneh sistem menyang a kahanan sadurunge). Paket RPM diterjemahake menyang gudang OSTree nggunakake lapisan rpm-ostree khusus. Instalasi lan nganyari paket sing kapisah ing lingkungan kerja ora didhukung; sistem dianyari ora ing tingkat komponen individu, nanging kanthi sakabehe, kanthi atom ngganti negara. Nyedhiyakake alat kanggo ngetrapake nganyari kanthi bertahap, ngilangi kabutuhan kanggo ngganti gambar kanthi saben nganyari.

Lingkungan terisolasi sing diasilake ora gumantung saka distribusi sing digunakake lan, kanthi setelan paket sing tepat, ora duwe akses menyang file lan proses pangguna utawa sistem utama, ora bisa ngakses peralatan kasebut, kajaba output liwat DRI, lan nelpon menyang subsistem jaringan. Output grafis lan organisasi input ditindakake nggunakake protokol Wayland utawa liwat penerusan soket X11. Interaksi karo lingkungan njaba adhedhasar sistem olahpesen DBus lan API Portal khusus.

Kanggo isolasi, lapisan Bubblewrap lan teknologi virtualisasi wadah Linux tradisional digunakake, adhedhasar panggunaan cgroups, namespaces, Seccomp lan SELinux. PulseAudio digunakake kanggo ngasilake swara. Ing kasus iki, isolasi bisa dipateni, sing digunakake dening pangembang akeh paket populer kanggo entuk akses lengkap menyang sistem file lan kabeh piranti ing sistem kasebut. Contone, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity, lan VLC teka karo mode isolasi winates sing ninggalake akses lengkap menyang direktori ngarep. Yen paket kanthi akses menyang direktori ngarep dikompromi, sanajan ana label "kotak pasir" ing deskripsi paket, panyerang mung kudu ngganti file ~/.bashrc kanggo nglakokake kode kasebut. Masalah sing kapisah yaiku kontrol owah-owahan ing paket lan percaya marang pembuat paket, sing asring ora ana gandhengane karo proyek utawa distribusi utama.

Source: opennet.ru

Add a comment