Flatpak 1.14.0 bağımsız paket sisteminin piyasaya sürülmesi

Flatpak 1.14 araç setinin, belirli Linux dağıtımlarına bağlı olmayan ve uygulamayı sistemin geri kalanından izole eden özel bir kapta çalışan bağımsız paketler oluşturmak için bir sistem sağlayan yeni bir kararlı dalı yayınlandı. Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux ve Ubuntu için Flatpak paketlerini çalıştırma desteği sağlanmaktadır. Flatpak paketleri Fedora deposunda bulunur ve yerel GNOME uygulama yöneticisi tarafından desteklenir.

Flatpak 1.14 dalındaki önemli yenilikler:

  • Durumdaki (.local/state) dosyalar için bir dizin oluşturmak ve bu dizine işaret eden XDG_STATE_HOME ortam değişkenini ayarlamak mümkündür.
  • Çekirdek modüllerinin varlığını belirlemek için "have-kernel-module-name" formunun koşullu kontrolleri eklendi (bunun yerine "have-kernel-module-i915" ifadesi yerine önceden önerilen have-intel-gpu kontrolünün evrensel bir benzeri) ” artık kullanılabilir).
  • “flatpak document-unexport —doc-id=…” komutu uygulandı.
  • Ana ortamda kullanılmak üzere Appstream meta verilerinin dışa aktarımı sağlanır.
  • Balık kabuğu için düzpak komut tamamlama kuralları eklendi
  • X11 ve PulseAudio hizmetlerine ağ erişimine izin verilir (eğer uygun ayarlar eklenirse).
  • Git deposundaki ana dalın adı "ana" yerine "ana" olarak değiştirildi, çünkü "ana" kelimesi yakın zamanda politik olarak yanlış kabul edildi.
  • Uygulamanın yeniden adlandırılması durumunda başlatma komut dosyaları artık yeniden yazılmaktadır.
  • SDK ve debuginfo dosyalarını yüklemek için install komutuna "--include-sdk" ve "--include-debug" seçenekleri eklendi.
  • Flatpakref ve flatpakrepo dosyalarına "DeploySideloadCollectionID" parametresi için destek eklendi. Ayarlandığında, koleksiyon kimliği meta veriler yüklendikten sonra değil, uzak bir depo eklenirken ayarlanacaktır.
  • Ayrı MPRIS (Medya Oynatıcı Uzaktan Arayüz Belirtimi) adlarına sahip oturumlardaki işleyiciler için iç içe sanal alan ortamlarının oluşturulmasına izin verildi.
  • Komut satırı yardımcı programları artık güncel olmayan çalışma zamanı uzantılarının kullanımı hakkında bilgi sağlıyor.
  • Kaldırma komutu, halen kullanımda olan çalışma zamanı veya çalışma zamanı uzantılarını kaldırmadan önce bir onay isteği uygular.
  • "flatpak run" gibi komutlar artık "--socket=gpg-agent" seçeneğini desteklemektedir.
  • Libostree'de, kullanıcının düzpak-sistem yardımcı işleyicisinin manipülasyonu yoluyla (özel olarak biçimlendirilmiş bir dal adıyla bir silme isteği göndererek) sistemdeki rastgele dosyaları silmesine olanak verebilecek bir güvenlik açığı düzeltildi. Sorun yalnızca Flatpak ve libostree'nin 2018'den önce yayımlanan eski sürümlerinde (< 0.10.2) ortaya çıkıyor ve mevcut sürümleri etkilemiyor.

Flatpak'in, uygulama geliştiricilerine, standart dağıtım depolarında yer almayan programlarının dağıtımını, her dağıtım için ayrı derlemeler oluşturmadan tek bir evrensel konteyner hazırlayarak basitleştirmelerine olanak sağladığını hatırlatalım. Güvenlik bilincine sahip kullanıcılar için Flatpak, şüpheli bir uygulamayı bir kapta çalıştırmanıza olanak tanır ve yalnızca uygulamayla ilişkili ağ işlevlerine ve kullanıcı dosyalarına erişim sağlar. Yeni ürünlerle ilgilenen kullanıcılar için Flatpak, sistemde değişiklik yapmaya gerek kalmadan uygulamaların en son test ve kararlı sürümlerini kurmanıza olanak tanır. Örneğin, Flatpak paketleri LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio vb. için oluşturulmuştur.

Paket boyutunu azaltmak için yalnızca uygulamaya özel bağımlılıklar içerir ve temel sistem ve grafik kitaplıkları (GTK, Qt, GNOME ve KDE kitaplıkları vb.) eklenti standart çalışma zamanı ortamları olarak tasarlanmıştır. Flatpak ve Snap arasındaki temel fark, Snap'in ana sistem ortamının bileşenlerini ve sistem çağrılarını filtrelemeye dayalı izolasyonu kullanması, Flatpak ise sistemden ayrı bir konteyner oluşturup büyük çalışma zamanı setleriyle çalışarak paketleri bağımlılık olarak değil standart olarak sunmasıdır. sistem ortamları (örneğin, GNOME veya KDE programlarının çalışması için gerekli tüm kütüphaneler).

Özel bir depo aracılığıyla kurulan standart sistem ortamına (çalışma zamanı) ek olarak, uygulamanın çalışması için gereken ek bağımlılıklar (paket) sağlanır. Çalışma zamanının ayrı ayrı kurulmasına ve aynı anda birkaç konteynere bağlanmasına rağmen, toplamda, çalışma zamanı ve paket konteynerin dolgusunu oluşturur; bu, konteynerlerde ortak olan sistem dosyalarının çoğaltılmasını önlemenizi sağlar. Bir sistemde birkaç farklı çalışma zamanı (GNOME, KDE) veya aynı çalışma zamanının birkaç sürümü (GNOME 3.40, GNOME 3.42) kurulu olabilir. Bağımlılık olarak bir uygulamaya sahip bir kapsayıcı, çalışma zamanını oluşturan bireysel paketleri hesaba katmadan yalnızca belirli bir çalışma zamanına yönelik bir bağlama kullanır. Tüm eksik öğeler doğrudan uygulamayla birlikte paketlenir. Bir kapsayıcı oluşturulduğunda, çalışma zamanı içerikleri /usr bölümü olarak bağlanır ve paket /app dizinine bağlanır.

Çalışma zamanı ve uygulama kapsayıcıları, görüntünün Git benzeri bir depodan atomik olarak güncellendiği ve sürüm kontrol yöntemlerinin dağıtım bileşenlerine uygulanmasına izin veren OSTree teknolojisi kullanılarak oluşturulur (örneğin, sistemi hızla bir sürüme geri alabilirsiniz). önceki devlet). RPM paketleri, özel bir rpm-ostree katmanı kullanılarak OSTree deposuna çevrilir. Paketlerin çalışma ortamında ayrı kurulumu ve güncellenmesi desteklenmez; sistem, bireysel bileşenler düzeyinde değil, bir bütün olarak durumunu atomik olarak değiştirerek güncellenir. Güncellemelerin aşamalı olarak uygulanmasına yönelik araçlar sağlayarak her güncellemede görüntünün tamamen değiştirilmesi ihtiyacını ortadan kaldırır.

Oluşturulan izole ortam, kullanılan dağıtımdan tamamen bağımsızdır ve uygun paket ayarlarıyla, kullanıcının veya ana sistemin dosya ve işlemlerine erişimi yoktur ve DRI aracılığıyla çıktı ve çağrılar haricinde ekipmana doğrudan erişemez. ağ alt sistemine. Grafik çıkışı ve giriş organizasyonu, Wayland protokolü veya X11 soket yönlendirmesi kullanılarak gerçekleştirilir. Dış ortamla etkileşim, DBus mesajlaşma sistemine ve özel bir Portal API'sine dayanmaktadır.

Yalıtım için, gruplar, ad alanları, Seccomp ve SELinux kullanımına dayalı Bubblewrap katmanı ve geleneksel Linux konteyner sanallaştırma teknolojileri kullanılır. PulseAudio ses çıkışı sağlamak için kullanılır. Bu durumda, birçok popüler paketin geliştiricileri tarafından dosya sistemine ve sistemdeki tüm cihazlara tam erişim sağlamak için kullanılan izolasyon devre dışı bırakılabilir. Örneğin GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ve VLC, ana dizine tam erişim sağlayan sınırlı bir izolasyon moduyla birlikte gelir. Paket açıklamasında "sandboxed" etiketinin bulunmasına rağmen, ana dizine erişimi olan paketlerin güvenliği ihlal edilirse, saldırganın kodunu yürütmek için yalnızca ~/.bashrc dosyasını değiştirmesi gerekir. Ayrı bir konu, paketlerde yapılan değişikliklerin kontrolü ve genellikle ana proje veya dağıtımlarla ilişkili olmayan paket oluşturuculara duyulan güvendir.

Kaynak: opennet.ru

Yorum ekle