Loading AI tools
З Вікіпедії, вільної енциклопедії
Flatpak (раніше відомий як xdg-app)[4] — система для збирання самодостатніх пакунків, не прив'язаних до конкретних дистрибутивів Linux і виконуваних в спеціальному контейнері, що ізолює застосунок від решти системи. Підтримка виконання Flatpak-пакунків забезпечена для Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint і Ubuntu. Пакунки з Flatpak включені в репозиторій Fedora і підтримуються в штатній програмі управління застосунками GNOME.
![]() | |
![]() | |
Тип | вільне та відкрите програмне забезпечення і система керування пакунками |
---|---|
Автор | Alex Larsson |
Розробник | Flatpak Team |
Перший випуск | вересень 2015[1] |
Стабільний випуск | 1.4.1 (13 червня, 2019[2]) |
Операційна система | Linux |
Мова програмування | C |
Ліцензія | LGPL[3] |
Онлайн-документація | docs.flatpak.org/en/latest/ |
Репозиторій | github.com/flatpak/flatpak |
Вебсайт | flatpak.org |
Розробникам застосунків Flatpak дає можливість спростити поширення своїх програм, що не входять у штатні репозиторії дистрибутивів, за рахунок підготовки одного універсального контейнера без формування окремих складань для кожного дистрибутиву. Для користувачів, що піклуються про безпеку, Flatpak дозволяє виконати застосунок, що викликає сумнів, у контейнері, надавши доступ тільки до мережевих функцій та файлів користувача, пов'язаних із застосунком. Для користувачів, які цікавляться новинками, Flatpak дозволяє встановити найсвіжіші тестові і стабільні випуски програм, без необхідності внесення змін до системи. Наприклад, Flatpak-пакунки вже збираються для LibreOffice, Firefox, 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.
Flathub [Архівовано 23 грудня 2019 у Wayback Machine.] — це магазин застосунків Flatpak. У ньому присутні складання GIMP, VS Code, Steam[5] та інших популярних програм[6] До деякого часу застосунки перебували в репозиторії програм GNOME.[7]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.