Операционка Linux приобретает все большую популярность. Но установка программ пока еще остаётся проблемным местом. Разнообразие пакетов и их систем с точки зрения установки, использования и механизмов апдейта вызывает лёгкую оторопь даже у бывалого юзера, а новичка нередко вгоняет в тоску. И это несмотря на тот бесспорный факт, что Linux в целом стала гораздо доступней и проще в работе. На помощь пользователям спешат так называемые независимые менеджеры под названиями Snap, AppImage и Flatpak — программы, которые могут работать из под любой версии Linux.
Ниже мы попробуем сравнить эти трех «помощников».
Форматы пакетов
Прежде всего определимся с терминами. Что такое формат пакета? По сути это архив, в который упакованы программный код и необходимая метадата. Linux поддерживает несколько форматов, и выбор среди них — исключительно вопрос предпочтения разработчиков. Юзеру же нужно скачать необходимый пакет и установить программу при помощи встроенного менеджера.
Как уже говорилось выше, преимущество AppImage, Flatpak и Snap в их независимости или, иными словами, готовности работать с любой версией Linux. Давайте посмотрим на них поближе.
Snap
Это система пакетирования, разработанная Canonical и имеющая серьёзную корпоративную поддержку. Когда юзер устанавливает программу через Snap, он получает все необходимые компоненты, в том числе зависимости и библиотеки. А это значит, что софт не будет требовать дополнительного внимания и «заведётся» сразу на любом дистро. Программы, упакованные соответствующим образом, что называется под ключ, можно скачать непосредственно через Snap Store или командную строку. Многие популярные версии Linux, например, такие как Ubuntu, Manjaro, Linux Mint, Debian, Kali и RHEL адаптировали Snap. Интересная особенность: Snap приложения спокойно идут на IoT и Cloud системах без всякой модификации.
Еще одна приятная черта программ Snap заключается в том, что юзерам предлагается софт, представленный как минимум в нескольких различных версиях. Таким образом пользователям не нужно беспокоится о том, чтобы обновлять нужный софт вручную.
Однако у Snap есть и очевидные недостатки. Так как в пакеты «завёрнуты» все зависимости, они становятся довольно громоздкими. И действительно, их объем больше, чем у пакетов deb. или rpm. Кроме того, программное обеспечение версии Snap «бегает» по дефолту медленнее, чем версии AppImages и Flatpaks.
AppImage
Главным хранилищем софта является AppImageHub. Соответствующие программы предоставляются также на некоторых сайтах. Однако эксперты советуют тщательно подбирать источник, с которого предлагается скачать пакеты, работая со сторонними хранилищами. Короче говоря, знакомая песня, много раз исполненная для нас Google.
AppImageHub привлекает популярными приложениями, которые обычно работают быстрее, чем у конкурентов. Кроме того софт занимает довольно мало места. Концепт AppImage выражается в простой формуле: один файл — одно приложение. Разработчики сделали все для удобства пользователя, обеспечив ему возможность попробовать неизвестное, но заманчивое приложение, не устанавливая его на свой девайс. И, конечно, одним из бесспорных преимуществ AppImage является отсутствие необходимости в sudo разрешениях от LInux.
Flatpak
Еще один не менее популярный среди «линуксоидов» способ обеспечить доставку и установку софта со всеми зависимостями. Распространенные версии Linux предлагают скачать специальные пакеты. Их можно также «забрать» через интерфейс командной строки.
Flatpak представляет собой децентрализованную систему. Это означает, что пакеты могут быть скачаны через несколько проверенных источников, самым популярным из которых считается Flathub. Нужно отметить, что по дефолту приложения Flatpak работают «в песочнице». Иными словами, программы изолированы от системной среды, а значит являются безопасными для машины пользователя. Все специальные случаи, когда софт все же нуждается в разрешении для непосредственного контакта с системными ресурсами, подробно «обговариваются» отдельно, чтобы избежать ошибочного решения со стороны самого неопытного юзера.
Отрицательная сторона Flatpak — его объёмы. Пакеты обычно занимают места больше, чем софт Snaps или AppImages. По скорости же они где-то посередине: медленнее AppImages, но быстрее Snap.
Snap vs. AppImage vs. Flatpak
В принципе, это три равных и независимых формата, которые с одинаковым успехом смогут обеспечить пользователя качественным софтом без дополнительной головной боли. Однако существуют сценарии, когда один оказывается предпочтительнее другого. Так, например, если скорость софта и размер программного обеспечения для вас критичен, то выбор очевиден — это AppImage. Однако если вы хотите, чтобы программа спокойно и без приключений пережила путешествие через разные платформы, имеет смысл выбрать Snap. В то же время для разработчика именно Flatpack предлагает гораздо больше инструментов контроля. И это не говоря о том, что программы, которые требуется юзеру, может просто не быть, к примеру, в Snap, но оказаться в наличии у AppImagе или Flatpak. И наоборот.
Так что окончательный выбор юзер может сделать на основе объективных впечатлений и субъективных пристрастий к определённому программному обеспечению.
р
ать Snaps. В то же время в том случае, если вы разработчик, то именно Flatpack предлагает гораздо больше инструментов контроля для «девов». Это не говоря о том, что программы, которая требуется юзеру, может просто не найтись, к примеру, в Snaps, но оказаться на видном месте у AppImagе или Flatpak и наоборот.
Так что окончательный выбор юзер может сделать на основе объективных впечатлений и субъективных пристрастиях к определённому программному обеспечению.