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

Реліз системи самодостатніх пакетів Flatpak 1.8.0
6 хв. читання
26 червня 2020

Опублікована нова стабільна гілка інструментарію Flatpak 1.8, який являється системою для збирання самодостатніх пакетів, не прив'язаних до конкретних дистрибутивів Linux і виконуються в спеціальному контейнері, що ізолює застосунок від решти системи. Підтримка виконання Flatpak-пакетів забезпечена для Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux та 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 залучений variant-schema-compiler.
  • У скрипті для збірки configure надана можливість складання без libsystemd;
  • Забезпечено монтування сокетів Journal в режимі тільки для читання.
  • document-export додана підтримка експорту каталогів.
  • Дозволений прямий доступ до звукових пристроїв ALSA для додатків, що мають доступ до Pulseaudio.
  • API FlatpakTransaction додано сигнал "install-кодів", який може використовуватися клієнтами для установки автентифікаторів, необхідних для здійснення транзакції.
  • Забезпечено використання даних про часовий пояс на основі /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-кодів.
  • У команди "flatpak remote-info" і "flatpak update" додана опція "--commit=" завдання для певної версії репозиторіїв OCI.
  • Додана початкова підтримка delta-оновлення репозиторіїв OCI.
  • Додана команда "flatpak upgrade", яка є псевдонімом команди "flatpak update".
  • Реалізовані сценарії доповнення введення для командної оболонки fish.

Нагадаємо, що розробникам додатків Flatpak дає можливість спростити розповсюдження своїх програм, що не входять в штатні репозиторії дистрибутивів шляхом підготовки одного універсального контейнера без формування окремих збірок для кожного дистрибутива. Користувачам, які піклуються про безпеку, Flatpak дозволяє виконати  застосунок який викликає сумніви в контейнері, надавши доступ до мережевих функцій і файлів користувача, пов'язаним з додатком. Користувачам, які цікавляться новинками, Flatpak дозволяє встановити найсвіжіші тестові та стабільні версії програм без необхідності внесення змін у систему. Наприклад, зараз Flatpak-пакети вже збираються для LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A. D., 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. Для ізоляції використовується прошарок Bubblewrap і традиційні для Linux контейнерної технології віртуалізації, засновані на використанні cgroups, просторів імен (namespaces), Seccomp і SELinux. Для виводу звуку застосовується PulseAudio.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація