Формат Snap активно продвигается компанией Canonical. Несмотря на все его плюсы, есть у него и противники. Конкурирующий формат Flatpak ничем не хуже, а количество программ, доступных в нем, - гораздо больше. Благодаря проекту Unsnap в Ubuntu теперь можно осуществить миграцию со Snap на Flatpak.
Инструментарий Unsnap позволяет не только заменить пакетный менеджер Snap на Flatpak, но и автоматически установить Flatpak-аналоги вместо Snap-программ (с удалением последних). Проект развивает Алан Поуп (Alan Pope), который проработал более 10 лет в Canonical и был одним из разработчиков формата Snap.
На данный момент Unsnap позиционируется как экспериментальный (пре-альфа), однако он уже вполне рабочий. Список поддерживаемых пакетов включает 219 наименований, опытные пользователи также могут добавить поддержку дополнительных пакетов. Поддержка ОС на текущий момент ограничена следующими дистрибутивами: Ubuntu (и его деривативы), Debian, Linux Mint, Pop!_OS, Elementary OS и Zorin OS, однако в будущем планируется ее расширение для других дистрибутивов с поддержкой Snap: Manjaro, Fedora, CentOS, KDE Neon и Raspbian.
Рабочий процесс
Unsnap работает следующим образом: сначала он сканирует приложения Snap, установленные в системе, а затем генерирует следующие сценарии:
- 00-backup — скрипт для сохранения текущих приложений Snap (запускает команду snap save для бэкапа каждого приложения),
- 01-install-flatpak — скрипт для установки Flatpak (если он не установлен),
- 02-enable-flathub — скрипт для добавления репозитория Flathub (если он еще не подключен),
- 03-install-flatpaks — скрипт для установки эквивалентных Flatpak-пакетов для каждого идентифицированного Snap-пакета,
- 04-remove-snaps — скрипт для удаления всех приложений Snap,
- 99-remove-snapd — скрипт для удаления демона управления пакетами snapd.
Скрипт работает в двух режимах: default (интерактивный) и auto (полный автомат).
Запуск Unsnap
Стоит сразу предупредить, что пользовательские данные Snap-приложений не будут перемещены в соответствующие данные Flatpak!
Для запуска Unsnap понадобится клонировать репозиторий GitHub и запустить команду unsnap. Она сгенерирует набор скриптов, которые надо будет последовательно запустить. Либо воспользоваться параметром auto, и программа все сделает автоматически.
Установка репозитория:
sudo apt install git
git clone https://github.com/popey/unsnap
Переход в каталог репозитория:
cd unsnap
Запуск unsnap:
./unsnap
Если хотите, чтобы программа все сделала за вас, можно воспользоваться командой:
./unsnap auto
После чего следует перезагрузиться.
Комментарии
А ведь работает метод! Снес все snap-пакеты.
Забавно, что Поуп сначала разработал Snap, а теперь способствует избавлению от него. Типа, я тебя породил, я тебя и убью :-D
Snap - тот еще велосипед. В отличие от полностью свободного и открытого Flatpak, у Снапа закрытый код серверной архитектуры. Так что инициативу полностью поддерживаю, давно стоит отказываться от Snap. Надеюсь, когда-нибудь это допрет и до Канониклов.
Добавить комментарий