A Вы хотите перейти от использования snap-пакетов к flatpak? Если да, то вы попали по адресу! В этой статье мы познакомим вас с фантастическим инструментом под названием Unsnap, который упрощает процесс перехода от Snap-пакетов к Flatpak в Ubuntu.
Что такое Unsnap?
Unsnap – это сценарий оболочки, который позволяет быстро и легко перейти от использования snap-пакетов для приложений к flatpak. Как следует из названия, Unsnap помогает пользователям «отвязаться» от snap-пакетов и перейти к использованию flatpak.
Разработанный бывшим соразработчиком Snap Аланом Поупом, Unsnap позволяет пользователям плавно перейти от использования snap для приложений к flatpak в Ubuntu и системах на базе Ubuntu.
Unsnap лицензирован по лицензии MIT, что означает, что он бесплатный и с открытым исходным кодом.
Как работает Unsnap?
Unsnap работает как двухэтапный процесс. Сначала Unsnap генерирует набор скриптов, которые отвечают за выполнение фактического перехода от snap-пакетов к flatpak. Эта функция позволяет пользователям просматривать и, при необходимости, редактировать скрипты перед выполнением, чтобы проверить или изменить их в соответствии со своими потребностями.
После генерации скриптов пользователи могут запускать их в последовательности, чтобы завершить процесс миграции. Процедура довольно проста: клонируйте репозиторий Unsnap, перейдите в каталог Unsnap и выполните команду Unsnap. Для пользователей, предпочитающих не выполнять шаги вручную, есть опция „auto“, которая автоматически генерирует и запускает скрипты.
Как перейти с Snap на Flatpak с помощью Unsnap
Запуск Unsnap – это простой процесс. Все, что вам нужно сделать, это клонировать репозиторий GitHub и выполнить команду unsnap
. Это действие сгенерирует набор скриптов. Затем вы запускаете эти сгенерированные скрипты в последовательности. В качестве альтернативы вы можете выполнить команду unsnap
с опцией auto
, чтобы сгенерировать и запустить скрипты немедленно.
Вот пошаговый процесс замены пакетов Snap на Flatpaks с помощью Unsnap:
- Сначала клонируйте репозиторий:
git clone https://github.com/popey/unsnap
- Смените каталог на клонированный репозиторий:
cd unsnap
- Запустите команду
unsnap
:
sudo ./unsnap
- Или запустите unsnap с опцией
auto
:
sudo ./unsnap auto
Это займет некоторое время в зависимости от количества установленных Snap в вашей системе. Пожалуйста, будьте терпеливы!
После успешной миграции с flatpak вы увидите результат, подобный следующему:
[...] INFO: flatpaks installed INFO: These flatpaks are now installed: Freedesktop Platform org.freedesktop.Platform 22.08.12.1 22.08 system Mesa org.freedesktop.Platform.GL.default 23.1.1 22.08 system Mesa (Extra) org.freedesktop.Platform.GL.default 23.1.1 22.08-extra system openh264 org.freedesktop.Platform.openh264 2.1.0 2.2.0 system Firefox org.mozilla.firefox 114.0.2 stable system INFO: Removing snaps firefox removed INFO: Snaps removed WARNING: These snaps are still installed: Name Version Rev Tracking Publisher Notes bare 1.0 5 latest/stable canonical** base core20 20230613 1950 latest/stable canonical** base core22 20230612 766 latest/stable canonical** base gnome-3-38-2004 0+git.6f39565 140 latest/stable/… canonical** - gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical** - snap-store 41.3-71-g709398e 959 latest/stable/… canonical** - snapd 2.59.5 19457 latest/stable canonical** snapd snapd-desktop-integration 0.9 83 latest/stable/… canonical** -
Приведенный выше результат показывает, что приложение Firefox Snap было деинсталлировано и впоследствии заменено на его версию Flatpak.
Здесь приведен список установленных Snap перед запуском Unsnap в моей системе Ubuntu 22.04 LTS:
snap list Name Version Rev Tracking Publisher Notes bare 1.0 5 latest/stable canonical** base core20 20230613 1950 latest/stable canonical** base core22 20230612 766 latest/stable canonical** base firefox 103.0-1 1589 latest/stable/… mozilla** - gnome-3-38-2004 0+git.6f39565 140 latest/stable/… canonical** - gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical** - snap-store 41.3-71-g709398e 959 latest/stable/… canonical** - snapd 2.59.5 19457 latest/stable canonical** snapd snapd-desktop-integration 0.9 83 latest/stable/… canonical** -
А вот вывод команды snap list
после миграции Snaps на Flatpaks.
snap list Name Version Rev Tracking Publisher Notes bare 1.0 5 latest/stable canonical** base core20 20230613 1950 latest/stable canonical** base core22 20230612 766 latest/stable canonical** base gnome-3-38-2004 0+git.6f39565 140 latest/stable/… canonical** - gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical** - snap-store 41.3-71-g709398e 959 latest/stable/… canonical** - snapd 2.59.5 19457 latest/stable canonical** snapd snapd-desktop-integration 0.9 83 latest/stable/… canonical** -
Смотрите? Snap-версия Firefox удалена.
Какие скрипты генерирует Unsnap?
Как уже говорилось, Unsnap генерирует ряд скриптов для облегчения процесса миграции. Каждый сценарий выполняет определенную функцию.
Вот краткий обзор сценариев, генерируемых Unsnap, и их функций:
00-backup
: Этот сценарий запускает командуsnap save
для каждого установленного снэпа, который переносится. Это гарантирует, что у вас есть резервная копия всех ваших данных, прежде чем приступить к миграции.01-install-flatpak
: Если он еще не установлен, этот сценарий устанавливает менеджер пакетов flatpak в вашей системе.02-enable-flathub
: Этот скрипт добавляет удаленное расположение flathub в flatpak, если оно еще не включено.03-install-flatpaks
: Этот скрипт устанавливает эквивалентные flatpaks для каждого идентифицированного пакета snap.04-remove-snaps
: После успешной установки flatpaks, этот скрипт удаляет соответствующие привязки.99-remove-snapd
: Этот скрипт удаляет самsnapd
, который в свою очередь удаляет все пакеты snap из вашей системы.
Сопоставление пакетов
Одной из ключевых особенностей Unsnap является возможность «сопоставления пакетов». Unsnap поставляется с файлом под названием applist.csv
, который содержит отображение имен пакетов snap на имена пакетов flatpak. Это отображение один к одному, хотя и не совсем полное, охватывает значительное подмножество приложений, доступных в snap store и flathub.
Режим проверки
Для облегчения проверки имен snap и flatpak в файле applist.csv
, Unsnap имеет „Режим проверки“. Этот режим позволяет пользователям проверить точность сопоставления между пакетами snap и flatpak, обеспечивая плавный процесс миграции.
Обратите внимание, что в режиме «Проверка» программа Unsnap не генерирует никаких скриптов, не изменяет никаких данных и не устанавливает никаких Flatpak. Вместо этого она создает unsnap.logfile
для справки и отслеживания.
Данные приложения
В настоящее время Unsnap выполняет операцию snap save
для каждого переносимого снэпа. Эта операция использует внутренний механизм snapd для создания резервных копий данных приложения. Очень важно обеспечить достаточное дисковое пространство и время для этого процесса, учитывая, что некоторые приложения могут иметь значительные данные для резервного копирования.
Если вы предпочитаете пропустить резервное копирование, просто не запускайте скрипты резервного копирования до начала фактической миграции.
По умолчанию резервные копии, созданные с помощью snap save
, хранятся в виде zip-файлов в каталоге /var/lib/snapd/snapshots
.
В настоящее время задача восстановления данных, при необходимости, остается за пользователем.
Ведение журнала
Unsnap обеспечивает вывод данных как на консоль, так и в файл журнала. Лог-файл с именем unsnap.log
находится в подкаталоге ./log-YYYY-MM-DD.HH.MM.SS
текущего каталога, в котором запущен Unsnap.
Исключенные привязки
Файл excluded_snaps.txt
содержит список привязок, которые не имеют прямых аналогов на Flathub. В этот список входят такие привязки, как bare
, core18
и core20
. Поэтому не стоит предлагать пользователям переходить с этих конкретных привязок на другой Flatpak.
Следует отметить, что хотя на Flathub доступны похожие пакеты, они автоматически включаются при установке соответствующих приложений и не требуют обработки Unsnap.
Роль excluded_snaps.txt
заключается не в каталогизации пакетов, которые еще не были доступны в виде Flatpak, а в определении пакетов, которые, скорее всего, никогда не будут преобразованы в Flatpak.
Следующий список исключенных Snaps в моей системе Ubuntu 22.04 LTS:
bare canonical-livepatch core core18 core20 core22 gnome-3-28-1804 gnome-3-34-1804 gnome-3-38-2004 godot-runtime gtk-common-themes gtk2-common-themes kde-frameworks-5 qt513 qt551 snapd wine-platform-3-stable wine-platform-5-stable wine-platform-6-stable wine-platform-runtime
Статус проекта
На данный момент Unsnap находится на стадии пре-альфа. Это означает, что она была протестирована и показала многообещающие результаты на компьютере разработчика. Однако, если вы не планируете вносить свой вклад в проект, он, вероятно, еще не готов для вас. Это незавершенная работа, и вклад в улучшение его функциональности и универсальности только приветствуется!
Заключение
Unsnnap – отличный инструмент для пользователей, желающих перейти от snap-пакетов к flatpak. Он все еще находится на стадии пре-альфа, что означает, что он находится на ранних стадиях разработки и может быть не полностью готов для всех пользователей. Используйте его с осторожностью!
Комментарии (0)