Сегодня речь пойдёт о контейнерных технологиях, Flatpak, AppImage и Snap
Экскурс в историю
Первым появившимся из вышеперечисленных был Appimage, прообраз которой был создан командой Саймона Питера в 2004 году.
В iso-образ с файловой системой SquashFS "зашиты" все необходимые для работы библиотеки и сам бинарный файл. Это плохо сказывается на отзывчивости, однако запуск приложения происходит практически без дополнительных манипуляций. Из минусов такого подхода:
- Отсутствуют источники распространения — нет единого репозитория.
- Минимальная интеграция в рабочий стол (например, нет ярлыка рабочего стола).
- Отсутствует механизм обновлений.
На основе концепции AppImage, Александром Ларссоном был создан Flatpak (изначально называлась xdg-app). Такая концепция предполагала меньшее использование дискового пространства за счёт использования "сред выполнения" — базовых библиотек, необходимых для запуска всем приложениям.
Вместо образов SquashFS Flatpak использует git-подобную файловую систему OSTree, что позволяет более гибко управлять версиями.
У Flathub есть свой центральный репозиторий, также есть возможность создавать дополнительные репозитории, как это, например, делают разработчики дистрибутива elementary.
Snap — технология, придуманная в недрах компании Canonical, разработчика популярного дистрибутива Ubuntu. Также, как и AppImage, snap-пакет является образом диска с файловой системой SquashFS. Однако, за появление в системе такого пакета отвечает демон snapd тесно связанный с системой инициализации systemD и модулем ядра AppArmor.
Статистика распространения пакетов
- Snap: ~6900 пакетов
- AppImage: ~1320 пакетов
- FlatHub: ~1618 пакетов
Примечание:
- Некоторые из пакетов отсутствуют на сайте AppImagHub. Например, IDE Theia Blueprint на официальном сайте https://theia-ide.org/docs/blueprint_download/ запакована в AppImage, при этом не добавлена на сайт AppImagHub.
- Ввиду большого количества пользовательских репозиториев таких как, Beta, kdeapps, Elementary, Fedora не представляется возможным узнать точное количество Flatpak-пакетов.
- Некоторые пакеты snap, отсутствующие в репозитории Snapcraft не учитываются. Например: серверный медиаплеер Diffuse: https://github.com/icidasset/diffuse/releases/
- Предположительно, статистика Snap охватывает каналы -edge, -beta, -candidate и другие. К примеру, у Nextcloud https://snapcraft.io/nextcloud таких каналов 22.
Скорость использования
https://cstan.io/?p=13084&lang=en
Дистрибутив: Ubuntu 21.10
Пакет: Firefox 94
Холодный старт:
* Нативный пакет: 8 секунд
* AppImage: 10,5 секунд
* Flatpak: 7,5 секунд
* Snap: 21 секунда
Горячий старт:
* Нативный пакет: 2,9 секунд, 207 МБ RAM
* AppImage: 4,9 секунд, 249 МБ RAM
* Flatpak: 2,9 секунд, 233 МБ RAM
* Snap: 8,5 секунд, 261 МБ RAM
https://distrowatch.com/weekly.php?issue=20220131#qa
Дистрибутив: Manjaro
Пакет: Firefox
Холодный старт:
* Нативный пакет: 5 секунд
* Flatpak: 6 секунд
* Snap: 18 секунд
Горячий старт:
* Нативный пакет: 2 секунды
* Flatpak: 3 секунды
* Snap: 3 секунды
https://snapcraft.io/blog/snap-speed-improvements-with-new-compression-algorithm
Тестовая машина 1
* Kubuntu 18.04
* Kernel 4.15.0-118-generic
* Snapd 2.46.1+18.04
* Пакет: Chromium Stable 85.X
* Сжатие snap-пакета: LZO
Холодный старт:
* Нативный пакет: 1,7 секунд
* Snap: 3,1 секунд
Горячий старт:
* Нативный пакет: 0,6 секунда
* Snap: 0,6 секунд
Тестовая машина 2
* Fedora 32 Workstation.
* Kernel 5.8.13-200.fc32
* Snapd version 2.45.3.1-1.fc32
* Пакет: Chromium Stable
* Сжатие snap-пакета: LZO
Холодный старт:
* Нативный пакет: 15,3 секунд
* Snap: 10,1 секунд
Горячий старт:
* Нативный пакет: 1,3 секунды
* Snap: 1,3 секунды
Исходя из тестирования выше можно отметить, следующие тенденции:
а) Flatpak по скорости запуска подбирается к нативным пакетам, Appimage проигрывает по скорости использованию ресурсов нативным пакетам и Flatpak (можно сказать, что не очень существенно учитывая, объём среды выполнения и самого пакета у Flatpak), скорость запуска snap сильно отстаёт от скорости запуска Flatpak и AppImage:
Нативный пакет (Flatpak) < AppImage < snap
б) Скорость запуска snap сильно зависит от используемого алгоритма сжатия (более быстрым и предпочтительным считается LZO). В пользу этого также говорит и ещё одно тестирование, проведенное по пакетам snap: https://snapcraft.io/blog/kde-snaps-performance-revving-up
Использование и недостатки
Управление snap и flatpak осуществляется через консольную утилиту.
Среди недостатков в snap и flatpak пользователи часто отмечают "засорение" системы.
В Flatpak это происходит следующим образом: после удаления пакета среда выполнения привязанная только к нему не удаляется. Также при удалении не удаляются данные.
Для удаления неиспользуемых сред выполнения воспользуйтесь командой:
flatpak remove --unused
Для очистки данных уже удалённых приложений воспользуйтесь командой:
flatpak remove --delete-data
У snap "засорение" происходит другим образом: При обновлении пакета snap сохраняет резервную копию предыдущего пакета, с предыдущими настройками, однако отключает его, делает неактивным.
Для полного просмотра всех пакетов установленных в системе:
snap list --all
Для удаление неактивных воспользуйтесь скриптом отсюда: https://superuser.com/a/1330590
Про AppImage давно нет новостей и на это есть причина: Саймон Питер, основной разработчик AppImage, сейчас работает над helloSystem, системой повторяющей логику macOS, но на ядре и с окружением BSD (используется FreeBSD).
Последнее, что мне удалось найти — небольшой скрипт, который изменяет AppImage или собирает AppDir (структура каталогов) в готовый образ с файловой системой с более высокой степенью сжатия, чем SquashFS - dwarfs.
Сам скрипт находится здесь: https://github.com/Phantop/appdwarf
Вместо постскриптума, я бы хотел поблагодарить всех пользователей способствующих распространению контейнерных технологий.
Пара вещей про которые стоит упомянуть:
Новый сайт: https://beta.flathub.org/ru/statistics
Дополнительные репозитории flatpak:
kdeapps https://distribute.kde.org/kdeapps.flatpakrepo
fedora oci+https://registry.fedoraproject.org
Комментарии
09:04
Я по возможности, если уж приходится, использую AppImage, у них по крайней мере второго недостатка нет, не оставляют хвостов. Жаль, что на этом формате не остановились как на окончательном.
10:30
15:39
12:41
17:34
09:08
10:26
10:27
flatpak install chrome
(например)
12:42
09:17
Вполне информативно и очень полезно!
10:23
Пример из жизни.
Я люблю ковыряться и разбираться что где когда в линуксе. Почитать/попробовать. Получить проблемы и затем перелопатить гугел в поисках решения. (Разработчик)
Пересадил брата (доктора) с винды на убунту 20.04 полгода назад. Все нравится, но с установкой чего нибудь проблемсы, типа надо копать, разбираться - долго. Чтобы не дергаться лишний раз к нему, просто дал ссылку на снапкрафт и сказал - "скопируй это сюда и вставь туда".
Потиху учится работать с терминалом)
Иногда, чтобы расширить сообщество нужно пойти на некоторые жертвы)
10:33
Gui-приложения использую не так часто, хотя, то что нет нормального графического менеджера пакетов в Fedora считаю серьёзным упущением.
10:40
В большинстве своём то, что можно сделать из терминала, тоже делаю из него. Особенно работа с git, сколько гуёв не было бы, в терминале он отточенный и отшлифованный.
Единственное changes не очень удобно смотреть, когда ревьювишь чей то код.
В убунте Ubuntu Software, такое ощущение, намеренно убогий, чтобы переходили на вышеперечисленные менеджеры.
10:55
По сути Ubuntu Software переписанный GNOME Software (тот что как раз по умолчанию используется в Fedora), по идее в 22.04 должен быть уже обновлённый
Есть конечно dnfdragora которая использует libyui от openSUSE и неимоверно глючная, но есть также и вполне адекватный yumex-dnf. Правда, есть нюанс: чтобы его поставить нужно включить репозиторий с актуальной версией yumex-dnf — такой только один: репозиторий от Nobara Project (проект Томаса Кридера a.k.a. GloriousEggroll по игровой Fedora). При установке из этого репо ваша система будет обновлять все пакеты в соответствии с ним (репозитории Fedora без ядра и Mesa, xaw, libusb и т.д.)
11:28
14:20
1-Прошу Плиз, подскажите, что лучше из систем- openSUSE, Nobara Project или Fedora-KDE-36
и только ваше мнение.
2-Все эти системы стоят у меня на SSD и все красиво работали-НО-как обновилась Лиса до версии 100 и полезла РЕКЛАМА и притом Местных Уродов, а я любитель с внуками играть в Шашки и Шахматы-
НО любые защиты просто не помогают,
как Убить Этих ОПГ !
3-Просто Инфо-на Виндус-11 Ентер этих ОПГ НЕТ !
С Уважением !
СК-73 !
15:34
Если рекомендация, то зависит от ваших потребностей. Nobara только в том случае если вы (или внуки) играете в видеоигры из steam/gog/epic. Очень узкоспециализированный дистрибутив
2. Firefox нужно настраивать, но как именно не подскажу, сам давно пользуюсь Brave + DuckDuckGo, по некоторым тестам - лучшим браузером по скорости
Возможно, вам поможет чистка истории и cookie
17:01
Спасибо Вам за быстрый ответ ! Понял Вас !
1-Brave + DuckDuckGo эту связку сею минуту попробую на Федора-КДЕ-36.
2-Просто Инфо-пишут СМИ и по факту, а именно:
https://www.opennet.ru/opennews/art.shtml?num=52444
Оказывается РосТелеком и Маил ру организовали ОПГ и заключили договора и теперь имеют ПРАВО всем Юзерам давать Любую рекламу и обходят все блокировщики-
Все для Народа ! )))
3-Я полагаю, что личный состав Этих ОПГ ни разу не заполняли бланки
...С моих слов записано верно и мной прочитано...
...и в Шашки и Шахматы Эти Существа...! )))
Спасибо Вам и СК-73 !
18:49
21:25
Brave + DuckDuckGo установил пока на КДЕ-Неон, но в приложении Шашки и Шахматы все равно ПРЕТ ХАМСКАЯ РЕКЛАМА !!!
Шахматная доска по центру монитора, а справа на весь монитор Местные ОПГ !!! )))
С Уважением !
СК-73 !
21:48
23:47
Попробуйте установить на фох adguard---
1-устанавливал ВСЕ и остальное по списку и именно в Шашках и Шахматах на Маил ру не блокируется реклама ОПГ !
2-Установил для Опытов Гогле DEV и на Манджаро-КДЕ,
Федора-КДЕ-36
и вот получилось так-ОРИГИН блокирует рекламу Автоматом и без участия Юзера на Отлично !
Сайт для проверки всяких гадостей Это Талантливый Юзер вот-https://ovgorskiy.ru/
3-Просто Инфо
-Манджаро-КДЕ не захотела удалять Лису и Хромиум-кричит много зависимостей....
...не смей Юзер это делать !
4-Федора-КДЕ-36 идеально выполнила приказ Юзера и удалила Лису-версии 100 и Хромиум и остался установленный мной ГОГЛЕ DEV
и Нет Местной ОПГ ! )))
Пишу уже с Федора-КДЕ-36
и не надо никаких дров Нвидия ! )))
Спасибо Всем !
СК-73 !
01:04
Заглянул бы в "Параметры системы"->"Привязки файлов" и выгрыз вручную. ... Тут действительно есть такие свинячие приколы.
11:29
А так, запустил Ваш проверочный сайт на Vivaldi со средней фильтрацией и расширением Adguard - чисто. И на FF с тем же расширением - чисто.
18:22
21:27
Спасибо Вам !
Прямо сейчас буду пробовать на Федора-КДЕ-36 !
Ушел на Опыты ! )))
21:30
Меня до сих пор ломает от отсутствия терминала, хотя больше полугода прошло. После того, как даже перезагружаешь по alt+f2 -> shutdown -r now, даже не задумываясь об этом, жить тяжело. А запускать через меню приложения... Какой ужас
Хорошо, нашёл себе в power toys утилиту для быстрого поиска по приложениям и документам - power toys run. Рекомендую, если придётся сидеть на винде
22:41
Вот уж дичь!...
А назначить хотккей на команду перезагрузки религия не позволяет?
22:42
13:05
10:28
10:40
1. В центральном репо слишком мало пакетов
2. Не отмечено какие пакеты собираются разработчиками (в snap у таких есть галочка верификации)
3. Про хорошую интеграцию я бы не сказал: плохо подхватывают темы, на Qt5-приложения нельзя перераспределить тему
4. Засорение: даже при --delete-data не удаляет все файлы уже удалённого пакета
В остальном — отличная вещь
12:13
2. Для конечного пользователя не так важно.
3. Да. На mint, я поставил Mint-Y-Dark для gtk (идеально) и adwaita для qt (не очень, но хоть что то).
4. Только в папке flatpak, а не по всей системе.
Меня только волнует то, что плохо работают темы - остальное нормально, например, программы запускаются быстро.
15:45
2. Индикатор насколько интересен разработчикам flatpak, какие flatpak будут работать так как этого хочет сам разработчик и т.д.
12:55
10:30
15:46
11:22
Они прокакали своЁ время.
Нечего было в коцмас летать и бабки прокакивать.
Нужно было заключить договор с какой-нибудь китайской фабрикой, которая бы им штамповала миллионами в день смартфоны с ихней убунтой.
Пусть бы этот смарт стоил 1$ но они бы просто заполонили рынок.
Типа - позвонил и выбросил, но все бы знали про эту вашу ubuntu.
А потом просто повышали бы качество, как это делал в своё время Китай с этим вашим Тайванем.
Вот тогда бы Canonical взлетела бы.
А сейчас что?
Пытаются делать прошивки для телефончиков...
Ну и бред...
Нужно выпускать дешманские смартики с убунтой, миллионными тиражами.
Вот тогда и развитие будет.
В общем дураки эти ваши южноафриканские убутоиды.
Такой бизнес прокакать...................
11:40
16:04
2. В космос Марк Шаттлворт полетел в 2002 году (закат Ubuntu - прекращение поддержки Unity в 2016)
3. Ubuntu Touch поставлялась на телефоны Meizu, но тогда рынок был перенасыщен: ещё была BlackBerry OS, Microsoft Mobile, Asha, Bada и т.д. Скажем, год назад было, возможно, лучшее время для запуска
4. Не взлетела и не взлетит пока не продолжит все начинания (upstart, unity, LightDM, не доведёт snap до адекватного состояния: сжатие zstd, монтаж пакета не в начале системы а по щелчку и т.д.)
5. Позвонил и выбросил - деньги на ветер, если хотите создать что-то инновационное начинается с ультимативной сборки: только последние комплектующие, система без единого бага, без java-языков и с фреймворком для быстрой разработки)
6. Бизнес как был так и остался, на телефонах они не зарабатывали, а потеряли и очень-очень много
11:44
Аргумент про загаживание актуален для тех, кто прям очень много софта перебирает, но ленится потом почистить систему. Так-то просто иногда надо взять себя в руки и потратить пару минут на чистку. Это так-то проще, чем на смартфоне ненужные фотки удалить.
13:03
Время выполнения заметно, когда нет параллельных задач.
13:08
18:12
13:13
https://ibb.co/mqC3t31
18:10
18:13
18:14
flatpak --columns=name,size list # Позволяет увидеть размер установленных flatpak
sudo rm -rfv /var/tmp/flatpak-cache-* # позволяет очистить кэш
18:48
01:15
2. Если претензия всё же в непрозрачности, то тут я полностью согласен, но как я понимаю, это касается а) deb-зависимых дистрибутивов б) ubuntu исправляется
https://www.reddit.com/r/Ubuntu/comments/tjwsza/firefox_now_only_available_via_snap/
15:33
16:49
20:41
https://www.opennet.ru/opennews/art.shtml?num=57262
21:22
10:31
19:05
Snap / Flat -- постоянно сыпался, очень на психовал тогда
Из минусов:
Минимальная интеграция в рабочий стол (например, нет ярлыка рабочего стола). -- не совсем так, у некоторых иконки сами добавляются куда надо.
Отсутствует механизм обновлений. -- обновляется спокойно. Telegram например, ну понятно что не как в apt, но и не заменой файла
20:32
03:09
17:37
19:16
20:33
10:29
02:52
А так то удобно что сразу все зависимости)
09:45
Этот метериал проработан, видно, что автор подошел с этузиазмом. Ещё плюс в копилку про подобные вещи.
15:45
17:41
17:46
16:36
У меня на debian/devuan потребности в них всё ещё нет, ибо доступные репозитории, родные и сторонние покрывают практически любые потребности. Остальной мизер собирается из сорцов.
10:06
10:20
16:28
11:17
Чего это процесс snapd шурудит по системе, отжирая 200мб ОЗУ и 2% ЦПУ?
Ни одного snap-пакета нетути, сам демон предустановлен в Манжаре по дефолту.
11:30
Или удалите, если всё равно не используете!
17:35
22:21
Концепция загонять все в "контейнер" отличная, реализация так себе во всех вариантах.
Вообще на мой взгляд главная проблема линя - это отсутствие унитарной дистрибуции софта.
20:56
Так вот сквош - это файловая система и просто монтируется влёт т.е. моментально (после этого я закатал себе большие проги /opt в один файл и теперь просто монтирую при старте ) НО !! AppImage распаковывает весь сквош перед запуском и это занимает ВРЕМЯ всегда. И еще сквош не пакует сам , а использует системные пакеры lzo lzohc lzip lzma xz lz4 zstd от версии. Я запаковал скош так xz с такими параметрами что запуск хрома (opera) из appimage занимает около минуты, а из примонтированного сквоша на холодную 5 сек. Еще раз не монтирует, а распаковывает. Что морщит мне моск а глаза смотрят на slax, porteus, knoppix и др , которые используют сквош для всей системы.
13:59
18:10
Для Flatpak приходилось постоянно вводить две команды:
flatpak uninstall --unused
и
sudo flatpak repair
И после этого у меня лично освобождалось из системного и домашнего раздела 60 и 43 гб соответственно.
Так что я вообще отказался от этих изолированных версий софта в пользу натива + AppImage(если нужно). Сам пользуюсь Manjaro KDE. Устанавливаю всё что нужно из оф репозиториев Manjaro + AUR + Chaotic-AUR + AppImage. Лично я не заметил чтобы чего-то не было в репах что нужно установить. А периодически много чего бывает нужно для разработки, звука, видео и прочего.