Как перейти от Snap-пакетов к Flatpak с помощью Unsnap в Ubuntu

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:

  1. Сначала клонируйте репозиторий:
    git clone https://github.com/popey/unsnap
  2. Смените каталог на клонированный репозиторий:
    cd unsnap
  3. Запустите команду unsnap:
    sudo ./unsnap
  4. Или запустите 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, и их функций:

  1. 00-backup: Этот сценарий запускает команду snap save для каждого установленного снэпа, который переносится. Это гарантирует, что у вас есть резервная копия всех ваших данных, прежде чем приступить к миграции.
  2. 01-install-flatpak: Если он еще не установлен, этот сценарий устанавливает менеджер пакетов flatpak в вашей системе.
  3. 02-enable-flathub: Этот скрипт добавляет удаленное расположение flathub в flatpak, если оно еще не включено.
  4. 03-install-flatpaks: Этот скрипт устанавливает эквивалентные flatpaks для каждого идентифицированного пакета snap.
  5. 04-remove-snaps: После успешной установки flatpaks, этот скрипт удаляет соответствующие привязки.
  6. 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. Он все еще находится на стадии пре-альфа, что означает, что он находится на ранних стадиях разработки и может быть не полностью готов для всех пользователей. Используйте его с осторожностью!

Часто задаваемые вопросы

Что такое Unsnap?

Unsnap – это инструмент, разработанный для того, чтобы помочь пользователям перейти от использования пакетов Snap к Flatpak. Он работает путем создания скриптов, которые обрабатывают процесс миграции, и которые пользователи могут просматривать и изменять перед выполнением.

Кто является разработчиком Unsnap?

Unsnap был разработан Аланом Поупом, бывшим соразработчиком Snap. Поуп работал в компании Canonical, материнской компании Ubuntu, в течение 10 лет, прежде чем уйти в 2021 году. После своего ухода он создал Unsnap, чтобы помочь пользователям перейти с пакетов Snap на Flatpak.

Как использовать Unsnap?

Чтобы использовать Unsnap, необходимо клонировать репозиторий GitHub и выполнить команду unsnap. Это действие сгенерирует набор сценариев. Затем вы последовательно запустите эти сгенерированные скрипты для миграции с Snap на Flatpak.

Что такое сгенерированные скрипты?

Unsnap генерирует ряд скриптов для облегчения процесса миграции. Они включают сценарии для резервного копирования данных Snap, установки Flatpak, включения Flathub, установки эквивалентных Flatpak и удаления оригинальных Snap и snapd

Что такое режим check?

Режим check – это функция Unsnap, которая позволяет вам проверить имена Snap и Flatpak в файле applist.csv без внесения каких-либо изменений в систему или установки Flatpak. Он также генерирует unsnap.logfile.

Что такое файл applist.csv?

Файл applist.csv в Unsnap содержит отображение имен пакетов Snap на имена пакетов Flatpak. Это облегчает сопоставление один к одному между двумя пакетами, помогая процессу миграции.

Что такое файл excluded_snaps.txt?

В файле excluded_snaps.txt перечислены пакеты Snap, не имеющие прямых аналогов на Flathub, такие как bare, core18 и core20. Unsnap не будет предлагать пользователям перенести эти пакеты.

Готов ли Unsnap к использованию?

На данный момент Unsnap находится на стадии пре-альфа. Хотя он показал многообещающие результаты на компьютере разработчика, он еще не готов для общего использования, если только вы не планируете внести свой вклад в проект.

Unsnap имеет открытый исходный код?

Да, Unsnap имеет открытый исходный код и лицензируется по лицензии MIT. Это позволяет любому использовать, изменять и распространять его под той же лицензией.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен ostechnix.com

Похожие статьи

Комментарии (0)