Реліз системи самодостатніх пакетів Flatpak 1.8.0

Опубліковано нова стабільна гілка інструментарію 1.8, який надає систему для збирання самодостатніх пакетів, не прив'язаних до конкретних дистрибутивів Linux і виконуються у спеціальному контейнері, що ізолює додаток від решти системи. Підтримка виконання Flatpak-пакетів забезпечена для Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint та Ubuntu. Пакети з Flatpak включені до репозиторій Fedora і підтримуються в штатній програмі керування програмами GNOME.

Ключові нововведення у гілці Flatpak 1.8:

  • Спрощено реалізацію установки в режимі P2P (дозволяє організувати завантаження додатків та runtime-наборів через проміжні вузли або накопичувачі для систем без мережного підключення). Припинено підтримку встановлення через проміжні хости в локальній мережі. За замовчуванням відключено автоматичне завантаження репозиторіїв (sideload), розміщених на локальних USB-накопичувачах. Для активації проміжних локальних репозиторіїв слід налаштувати репозиторій через створення символічного посилання з /var/lib/flatpak/sideload-repos або
    /run/flatpak/sideload-repos. Зміна дозволила спростити внутрішню реалізацію режиму P2P та підвищити його ефективність.

  • Додано опціональний systemd unit для автоматичного визначення додаткових репозиторіїв на підключених зовнішніх USB-накопичувачах.
  • Для додатків, що мають доступ до файлової системи, забезпечено прокидання каталогу /lib хост-оточення /run/host/lib.
  • Додано нові повноваження доступу до ФС - "host-etc" і "host-os", що дозволяють отримати доступ до системних каталогів /etc і /usr.
  • Для створення більш ефективного коду аналізу файлів GVariant з ostreee задіяний компілятор варіантів-схем.
  • У складальному крипті configure надано можливість складання без
    libsystemd;

  • Забезпечено монтування сокетів Journal у режимі лише для читання.
  • У document-export додано підтримку експорту каталогів.
  • Дозволено прямий доступ до звукових пристроїв ALSA для програм, які мають доступ до Pulseaudio.
  • В API FlatpakTransaction додано сигнал "install-authenticator", який може використовуватися клієнтами для встановлення аутентифікаторів, необхідних для здійснення транзакції.
  • Забезпечено використання даних про часовий пояс на основі /etc/localtime з хост-системи, що вирішило пов'язані з часовими поясами проблеми в деяких додатках.
  • Припинено встановлення файлу env.d з gdm, тому що генератори systemd краще справляються з цим завданням.
  • В утиліті create-usb за замовчуванням включено експорт часткових коммітів.
  • Забезпечено постачання файлу sysusers.d для створення через systemd необхідних користувачів.
  • У команди «flatpak remote-add» та «flatpak modify» додано опцію «—[no-]follow-redirect» для заборони/дозволення перенаправлення на інший репозиторій.
  • У систему
    порталів додано API Spawn для отримання реального ідентифікатора процесу (PID) запущеної програми.

  • Всі репозиторії OCI (Open Container Initiative) переведені на використання автентифікатора flatpak-oci-authenticator.
  • У команди "flatpak remote-info" і "flatpak update" додана опція "-commit=" для завдання певної версії репозиторіїв OCI.
  • Додано початкову підтримку delta-оновлень для репозиторіїв OCI.
  • Додано команду "flatpak upgrade", яка є псевдонімом команди "flatpak update".
  • Реалізовано сценарії доповнення введення для командної оболонки рішень.

Нагадаємо, що розробникам додатків Flatpak дає можливість спростити поширення своїх програм, які не входять до штатних репозиторій дистрибутивів за рахунок підготовки одного універсального контейнера без формування окремих складання для кожного дистрибутива. Користувачам, які піклуються про безпеку, Flatpak дозволяє виконати додаток у контейнері, що викликає сумнів, надавши доступ тільки до мережевих функцій і файлів користувача, пов'язаних з додатком. Користувачам, які цікавляться новинками, Flatpak дозволяє встановити найсвіжіші тестові та стабільні випуски програм без необхідності внесення змін до системи. Наприклад, в даний час Flatpak-пакети вже збираються для LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio і т.д.

Для зменшення розміру пакета він включає лише специфічні додатки залежності, а базові системні та графічні бібліотеки (Gtk+, Qt, бібліотеки GNOME і KDE тощо) оформлені у вигляді типових runtime-оточень, що підключаються. Ключова відмінність Flatpak від Snap полягає в тому, що Snap використовує компоненти оточення основної системи та ізоляцію на основі фільтрації системних викликів, у той час як Flatpak створює окремий від системи контейнер і оперує великими runtime-наборами, надаючи як залежність не пакети, а типові системні оточення (наприклад, усі бібліотеки, необхідні для роботи програм GNOME або KDE).

Крім типового системного оточення (runtime), що встановлюється через спеціальний репозиторій, поставляються додаткові залежності (bundle), необхідні роботи програми. У сумі runtime і bundle утворюють начинку контейнера, при тому, що runtime встановлюється окремо і прив'язується відразу до кількох контейнерів, що дозволяє обійтися без дублювання загальних контейнерних системних файлів. В одній системі може бути встановлена ​​кілька різних runtime (GNOME, KDE) або кілька версій одного runtime (GNOME 3.26, GNOME 3.28). Контейнер із додатком як залежність використовує прив'язку лише до певного runtime, не враховуючи окремих пакетів, у тому числі складається runtime. Всі елементи, що відсутні, упаковуються безпосередньо разом з додатком. При формуванні контейнера вміст runtime монтується як розділ /usr, а bundle монтується в директорію /app.

Начинка runtime та контейнерів додатків формується за допомогою технології OSTree, коли образ атомарно оновлюється з Git-подібного сховища, що дозволяє застосовувати методи версійного контролю до компонентів дистрибутива (наприклад, можна швидко відкотити систему до минулого стану). RPM-пакети транслюються в репозиторій OSTree за допомогою спеціального прошарку rpm-ostree. Окрема установка та оновлення пакетів усередині робочого оточення не підтримується, система оновлюється не лише на рівні окремих компонентів, а повністю, атомарно змінюючи свій стан. Надаються засоби для інкрементального застосування оновлень, що позбавляють необхідності повної заміни образу при кожному оновленні.

Формоване ізольоване оточення повністю незалежно від дистрибутива, що використовується, і при належних налаштуваннях пакета не має доступу до файлів і процесів користувача або основної системи, не може безпосередньо звертатися до обладнання, за винятком виведення через DRI, і мережевої підсистеми. Виведення графіки та організація введення реалізовані за допомогою протоколу Wayland або через прокидання сокету X11. Взаємодія із зовнішнім середовищем побудована на основі системи обміну повідомленнями DBus та спеціального API Portals. Для ізоляції використовується прошарок Бульбашкова плівка і традиційні для Linux технології контейнерної віртуалізації, що ґрунтуються на використанні cgroups, просторів імен (namespaces), Seccomp та SELinux. Для виведення звуку використовується PulseAudio.

Джерело: opennet.ru

Додати коментар або відгук