Огляд snap vs flatpack vs appimage

Відео: [Libre Office 5.2.3] Flatpak installation from GNOME Software

За останні кілька років Linux дуже сильно просунувся на шляху до звичайних користувачів. Змінювався і спрощувався інтерфейс, додавалися графічні утиліти, відшліфовували помилки і недоробки, дистрибутиви ставали кращими. Але тепер зміни дісталися до системи установки пакетів. Традиційний спосіб встановлювати програми - завантаження та встановлення з репозиторіїв вашого дистрибутива. Причому формати пакетів, способи розгортання і навіть версії бібліотек між збірками дуже відрізняються. Це не дозволяло завантажити програму з інтернету і запускати її на будь-якому linux дистрибутиві.

Але за останні пару років був зроблений крок і в цьому напрямку. Були створені портативні програми, які встановлюються одним файлом, разом з усіма своїми залежностями і тому можуть працювати абсолютно в будь-якому дистрибутиві, незалежно від встановлених там програм і бібліотек. Спочатку ентузіастами був розроблений формат Appimage, який представляє з себе ISO образ з усіма файлами програми, потім розробники Gnome перейменували і взялися за розвиток своєї платформи контейнерного запуску додатків Flatpack, і вже в цьому році Canonical в Ubuntu 16.04 реалізувала систему установки пакетів без залежностей - snap , яка, як і всі попередні, може використовуватися в будь-якому дистрибутиві.

Як бачите, останнім часом було створено дуже багато рішень портативних програм Linux і пора розібратися що краще і що все-таки використовувати. У цій статті ми порівняємо snap vs flatpack vs appimage. Це найпопулярніші і відомі технології, хоча були інші. Спробуємо з`ясувати у кого більше перспектив для розвитку, але спочатку з`ясуємо, що вдає із себе кожна з цих технологій.

Що таке Snap?

snappy-ubuntu

Про Snap пакетах ми чули ще в минулому році, вони використовувалися для вбудованих пристроїв і як механізм поновлення Ubuntu для смартфонів. Як заявляють розробники з Canonical ця технологія була створена спочатку для того, щоб надати максимальну зручність поновлення користувачам Ubuntu і підняти на новий рівень безпеку мобільних додатків. Основне завдання - вирішити проблеми, нерозв`язні для deb і rpm пакетів і забезпечити надійне оновлення.

Всі файли програми і її залежностей упаковуються в один файл, включаючи виконувані файли, файли конфігурації і потрібні бібліотеки. В цьому плані snap vs flatpack мало чим відрізняються. Пакет встановлюється в окремому каталозі, в домашній папці користувача і програма може мати доступ тільки до тієї папки. Тому програма не може створити проблем у вашій системі, замінивши важливі файли інших пакетів.




Програма, упакована в snap, виконується в ізольованому оточенні, їй недоступні ніякі бібліотеки з системи і навіть конфігураційні файли. Це реалізується за допомогою профілів AppArmor. Вона може працювати тільки з тим, що встановлено в пакеті. Домашня папка програми теж в її директорії. Для спілкування з X сервером, файлової системою, оточенням робочого столу і іншими компонентами використовуються інтерфейси, що надаються головним пакетом - ubuntu-core. Якщо програмі не дозволити доступ до цих інтерфейсів вона не зможе працювати. Щоб надати доступ програмою до файлів користувача теж потрібно використовувати відповідний інтерфейс - home.

На даний момент Snap пакети працюють крім Ubuntu, на Arch, Debian і Fedora. Також виконується підготовка образів для Red Hat, CentOS, Elementary, LinuxMint, Gentoo, OpenSUSE.

для створення snap пакетів використовується спеціальний інструмент - snapcraft. Він дозволяє відносно легко створити пакет для будь-якої платформи. Для складання програми потрібно описати її і необхідні залежності у файлі snapcraft.yaml і цей процес трохи складний. Якщо порівнювати snap vs appimage, то там все робиться в пару кліків і без редагування файлів. Але в цілому це досить цікава технологія, завдяки можливостям безпеки.

Що таке Appimage?

1appimage




Про Appimage ми почули ще в 2011 році, але тоді програма не набрала популярності незважаючи на всі її плюси в порівнянні з традиційними системами упаковки програм.

Тут, також як і в snap програма упаковується з усіма своїми залежностями в один файл. Ніяких додаткових файлів, один додаток - один файл. Для запуску програми не потрібно нічого встановлювати, просто скачайте програму з інтернету, зробіть що виконується і запустіть. Усе. Ніякі файли з кореневої файлової системи не будуть змінені.

Відео: Snap Packages: Snappy or CRAPPY?

Образ Appimage вдає із себе звичайний ISO образ, в якому знаходяться всі необхідні компоненти програми, при запуску він автоматично монтується і виконується програма. Оскільки для запуску не потрібно ніякого програмного забезпечення в системі, ця технологія може використовуватися абсолютно в будь-якому дистрибутиві. Хоча для запуску програми не потрібні права root, тут вже немає такого рівня безпеки, програма може спокійно працювати з файлами користувача, як і інші звичайні програми, а якщо якихось бібліотек в образі бракує, програма завантажує їх з системи.

Для створення Appimage використовується дві утиліти AppimageDir і AppimageAssistant. Сенс в тому, що ми створюємо знімок стану системи, встановлюємо програму будь-яким способом, а потім збираємо все що змінилося в наш образ. Просто і дуже громіздко і незручно. Консольних інструментів немає, тільки графічні. Якщо робити порівняння flatpack vs appimage, то там все якось більш організовано і не потрібно засмічувати свою систему.

Що таке Flatpack?

1flatpack

Flatpack - це теж відносно нова система технологія портативних додатків, підтримуваних в будь-якому дистрибутиві, створена командою розробників GNOME. Раніше цей формат пакетів називався XDG, але потім був перейменований щоб уникнути конфліктів. Вона розроблена, щоб ізолювати додатки від вашої системи і один від іншого. Працює все більше схоже на Snap ніж на Appimage. Додаток також виконується в ізольованому контейнері, що забезпечує максимальну безпеку. Але підхід до бібліотек тут трохи відрізняється. Вони можуть знаходитися в одному пакеті разом з додатком, або ж знаходиться в середовищах, загальних для декількох пакетів, такий підхід гнучкіше ніж snap, і дозволяє програмі займати не так багато місця.

На відміну від snap, flatpack орієнтований більше на відкритий вихідний код. Тут немає одного центрального сховища або контролюючого органу. Snap пакети контролюються Canonical, і щоб додати свій пакет в репозиторій потрібно підписати угоду. Flatpack працює подібно до того, як ppa в Ubuntu. Ви знаходите репозиторій, підключаєте в систему і можете встановлювати звідти програми.

Flatpack можна використовувати в більшості дистрибутивів, так само як і Snap. Створювати Flatpack пакети можна подібним чином, як і snap. Теж потрібно відредагувати файл конфігурації, правда тут все трохи простіше.

висновки

Ми розглянули snap vs flatpack vs appimage. Вже зараз можна, сказати, що AppImage відходить на задній план і гонка за лідерство відбувається між Snap і Flatpack. Appimage надає простоту запуску програм, але тут немає таких важливих можливостей, як безпека, а без цього зараз нікуди. Flatpack розробляється командою Gnome, і у них цікава затія, але за Snap взялася компанія Canonical, вони будуть використовувати цю технологію не тільки для звичайних комп`ютерів, але і для серверних рішень і мобільних пристроїв. Що буде краще і зручніше користувачам покаже час. А ви використовуєте портативні програми?

Поділися в соціальних мережах:

Схожі
6 Краще не ubuntu дистрибутивів linux для початківців6 Краще не ubuntu дистрибутивів linux для початківців
Установка gnome archlinuxУстановка gnome archlinux
Портативні програми в linuxПортативні програми в linux
Новий blackarch містить понад 1500 хакерських інструментівНовий blackarch містить понад 1500 хакерських інструментів
Кращий linux для ноутбука 2016Кращий linux для ноутбука 2016
Порівняння fedora vs opensuseПорівняння fedora vs opensuse
Реліз ubuntu 16.10 yakkety yak beta 1Реліз ubuntu 16.10 yakkety yak beta 1
Установка snap пакетів ubuntuУстановка snap пакетів ubuntu
Форматування флешки в linuxФорматування флешки в linux
Установка програм через wine - winewizardУстановка програм через wine - winewizard
» » Огляд snap vs flatpack vs appimage