Unsnap – инструментарий для миграции Ubuntu со Snap на Flatpak

Проект unsnap развивает утилиту для перевода систем на базе Ubuntu с использования пакетов snap на пакеты в формате flatpak. Утилита не только заменяет пакетный менеджер snap на flatpak, но также подбирает и устанавливает flatpak-аналоги для уже установленных в системе snap-пакетов. В идеальном случае пользователь может получить полностью аналогичный набор приложений, но установленный в формате flatpak. Код написан на shell и распространяется под лицензией MIT.

Миграция выполняется в несколько шагов. На первом шаге unsnap генерирует набор shell-скриптов в которых расписаны операции замены. C учётом текущего состояния системы создаются отдельные скрипты для резервного копирования окружения snap, установки пакетного менеджера flatpak, активации репозиториев flatpak, установки аналогов пакетов в формате flatpak для уже имеющихся в системе пакетов snap, удаления из системы пакетов в формате snap и инструментария snapd. Перед запуском автоматически созданных скриптов пользователь может отредактировать их на свой вкус.

Проект развивает Алан Поуп (Alan Pope), один из разработчиков системы Snap, в 2021 году уволившийся из Canonical, после 10 лет работы в данной компании. Инструментарий пока позиционируется как экспериментальный (пре-альфа) и ограничен поддержкой Ubuntu. В будущем в unsnap планируют реализовать поддержку и других дистрибутивов, в которых поддерживается использование snap, таких как Manjaro, Linux Mint, Zorin, Debian, Fedora, Pop_OS!, KDE Neon, Raspbian, CentOS и elementary OS. Для пользователей также может представлять интересе подготовленный проектом список аналогов пакетов в форматах snap и flatpak.

Из проектов близкого назначения автором unsnap упоминаются custom-desktop (набор скриптов для преобразование состава уже установленного окружения Ubuntu) и deb-get (аналог apt-get для работы с deb-пакетами, размещёнными в сторонних репозиториях или на web-сайтах). Кроме пакетного менеджера проект deb-get предоставляет готовые метаданные для установки сторонних пакетов, которые могут быть использованы для замены пакетов snap на deb (например, для установки размещённого на сайте Google deb-пакета Chrome достаточно выполнить “deb-get install google-chrome-stable”).

Release. Ссылка here.