unsnap, инструмент для переноса пакетов snap в flatpak
Snap — это система пакетов, разработанная компанией Canonical для Ubuntu, которую можно установить на операционные системы, использующие ядро Linux и систему инициализации systemd.
Эта система пакетов представлена как «универсальная», и компания Canonical продвигает её настолько активно, что в новых версиях Ubuntu отказалась от поддержки Flatpak и, таким образом, сделала ставку на собственную систему пакетов.
С другой стороны, компания Canonical также решила выпустить версию Ubuntu, полностью представленную в виде Snap-пакетов. Эта новость была воспринята многими негативно и вызвала раскол в сообществе, поскольку Snap-пакеты не получили всеобщего признания.
В ответ на это возникло несколько движений, направленных на продвижение использования пакетов Flatpak. Одним из проектов, поддерживающих формат Flatpak, является unsnap, который разрабатывается как инструмент для перевода систем на базе Ubuntu с использования пакетов snap на пакеты flatpak.
Утилита не только заменяет менеджер пакетов snap на flatpak, но также выбирает и устанавливает аналоги flatpak для пакетов snap, уже установленных в системе. В идеальном случае пользователь может получить полностью аналогичный набор приложений, но установленных в формате flatpak.
об отстегивании
Миграция выполняется в несколько этапов. На первом этапе unsnap генерирует набор скриптов оболочки, описывающих операции замены. С учетом текущего состояния системы создаются отдельные скрипты для резервного копирования среды snap, установки менеджера пакетов flatpak, активации репозиториев flatpak, установки эквивалентов flatpak для пакетов snap, уже имеющихся в системе, и удаления пакетов snap и инструментария snapd из системы. Перед запуском автоматически сгенерированных скриптов пользователь может отредактировать их по мере необходимости.
Проект разрабатывается Аланом Поупом , одним из разработчиков системы Snap, который покинул Canonical в 2021 году после 10 лет работы в компании. Набор инструментов по-прежнему позиционируется как экспериментальный (пре-альфа) и ограничен поддержкой Ubuntu.
Из родственных проектов автор unsnap упоминает custom-desktop (набор скриптов для преобразования состава уже установленной среды Ubuntu) и deb-get (аналог apt-get для работы с deb-пакетами, расположенными в сторонних репозиториях или на сайтах).
В дополнение к диспетчеру пакетов проект deb-get предоставляет готовые к установке метаданные сторонних пакетов, которые можно использовать для замены пакетов snap пакетами deb.
Unsnap может автоматически запускать набор сгенерированных скриптов:
- 00-backup: Запустить моментальное сохранение для каждого установленного моментального снимка, который переносится.
- 01-install-flatpak : если он еще не установлен, он установит менеджер пакетов flatpak.
- 02-enable-flathub : если не включено, добавит удаленное местоположение flathub в flatpak.
- 03-install-flatpaks: устанавливает эквивалентные пакеты для каждого идентифицированного плагина.
- 04-remove-snaps : удаляет снэпы, для которых были установлены плоские пакеты.
- 99-remove-snapd : удаляет только snapd, что удалит все пакеты snap
Упоминается, что в будущем unsnap планирует поддерживать другие совместимые с snap дистрибутивы, такие как Manjaro, Linux Mint, Zorin, Debian, Fedora, Pop_OS!, KDE Neon, Raspbian, CentOS и Elementary OS. Пользователей также может заинтересовать список пакетов-аналогов, подготовленных проектом в форматах snap и flatpak.
Как установить unsnap на Ubuntu?
Для тех, кто заинтересован в возможности установить этот инструмент в своей системе, они должны знать, что установка довольно проста, и достаточно открыть терминал и ввести в нем следующее:
git clone https://github.com/popey/unsnap
cd unsnap
./unsnap
Unsnap работает в два этапа. На первом этапе Unsnap генерирует набор скриптов, отвечающих за фактическую миграцию Instant Packages в Flatpak. Эта функция позволяет пользователям просматривать и, при необходимости, редактировать скрипты перед выполнением, чтобы проверить или изменить их в соответствии со своими потребностями.
После создания сценариев пользователи могут запускать их последовательно, чтобы завершить процесс миграции.
Или, как упоминалось в начале, если вы предпочитаете выполнение всех скриптов, просто введите:
./unsnap auto
Наконец, стоит упомянуть, что, как и в любом процессе миграции, рекомендуется сделать резервную копию важной информации, так как это удаление и установка приложений, что также влечет за собой удаление информации.
Если вас заинтересовала более подробная информация, вы можете найти ее по следующей ссылке.