Огляд 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?
Про 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?
Про Appimage ми почули ще в 2011 році, але тоді програма не набрала популярності незважаючи на всі її плюси в порівнянні з традиційними системами упаковки програм.
Тут, також як і в snap програма упаковується з усіма своїми залежностями в один файл. Ніяких додаткових файлів, один додаток - один файл. Для запуску програми не потрібно нічого встановлювати, просто скачайте програму з інтернету, зробіть що виконується і запустіть. Усе. Ніякі файли з кореневої файлової системи не будуть змінені.
Відео: Snap Packages: Snappy or CRAPPY?
Образ Appimage вдає із себе звичайний ISO образ, в якому знаходяться всі необхідні компоненти програми, при запуску він автоматично монтується і виконується програма. Оскільки для запуску не потрібно ніякого програмного забезпечення в системі, ця технологія може використовуватися абсолютно в будь-якому дистрибутиві. Хоча для запуску програми не потрібні права root, тут вже немає такого рівня безпеки, програма може спокійно працювати з файлами користувача, як і інші звичайні програми, а якщо якихось бібліотек в образі бракує, програма завантажує їх з системи.
Для створення Appimage використовується дві утиліти AppimageDir і AppimageAssistant. Сенс в тому, що ми створюємо знімок стану системи, встановлюємо програму будь-яким способом, а потім збираємо все що змінилося в наш образ. Просто і дуже громіздко і незручно. Консольних інструментів немає, тільки графічні. Якщо робити порівняння flatpack vs appimage, то там все якось більш організовано і не потрібно засмічувати свою систему.
Що таке Flatpack?
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, вони будуть використовувати цю технологію не тільки для звичайних комп`ютерів, але і для серверних рішень і мобільних пристроїв. Що буде краще і зручніше користувачам покаже час. А ви використовуєте портативні програми?
- Установка програм через wine - winewizard
- Як запустити програми windows на linux
- Куди встановлюються програми в ubuntu
- Портативні програми в linux
- Де шукати програми для ubuntu
- Кращий linux для ноутбука 2016
- Кращі arm linux дистрибутиви
- Кращі дистрибутиви linux для новачка
- Огляд пакетних менеджерів linux
- Як встановити tar gz в ubuntu
- Установка rpm пакетів в linux
- Бібліотеки ubuntu 16.04
- Установка opensuse leap 42.1
- Установка gnome archlinux
- Форматування флешки в linux
- Новий blackarch містить понад 1500 хакерських інструментів
- Реліз ubuntu 16.10 yakkety yak beta 1
- 6 Краще не ubuntu дистрибутивів linux для початківців
- Порівняння fedora vs opensuse
- Новий дистрибутив uruk linux
- Установка libreoffice в ubuntu 16.04